Quellcode durchsuchen

use loop for resolveAsset instead of recursion

Evan You vor 11 Jahren
Ursprung
Commit
1c02f8c3b7
2 geänderte Dateien mit 7 neuen und 6 gelöschten Zeilen
  1. 6 5
      src/util/options.js
  2. 1 1
      test/unit/specs/directives/transition_spec.js

+ 6 - 5
src/util/options.js

@@ -257,9 +257,10 @@ exports.mergeOptions = function merge (parent, child, vm) {
  */
 
 exports.resolveAsset = function resolve (options, type, id) {
-  return options[type][id] || (
-    options._parent
-      ? resolve(options._parent.$options, type, id)
-      : null
-  )
+  var asset = options[type][id]
+  while (!asset && options._parent) {
+    options = options._parent.$options
+    asset = options[type][id]
+  }
+  return asset
 }

+ 1 - 1
test/unit/specs/directives/transition_spec.js

@@ -26,7 +26,7 @@ if (_.inBrowser) {
       expect(dir.el.className === 'test-transition')
       dir.update('lol', 'test')
       expect(dir.el.__v_trans.id).toBe('lol')
-      expect(dir.el.__v_trans.fns).toBeNull()
+      expect(dir.el.__v_trans.fns).toBeUndefined()
       expect(dir.el.className === 'lol-transition')
     })