@@ -3,6 +3,7 @@ var config = require('../config')
33var textParser = require ( '../parsers/text' )
44var dirParser = require ( '../parsers/directive' )
55var templateParser = require ( '../parsers/template' )
6+ var resolveAsset = _ . resolveAsset
67
78// internal directives
89var propDef = require ( '../directives/prop' )
@@ -278,7 +279,7 @@ function processTextToken (token, options) {
278279 }
279280 function setTokenType ( type ) {
280281 token . type = type
281- token . def = options . directives [ type ]
282+ token . def = resolveAsset ( options , ' directives' , type )
282283 token . descriptor = dirParser . parse ( token . value ) [ 0 ]
283284 }
284285 return el
@@ -469,7 +470,7 @@ function makePropsLinkFn (props) {
469470
470471function checkElementDirectives ( el , options ) {
471472 var tag = el . tagName . toLowerCase ( )
472- var def = options . elementDirectives [ tag ]
473+ var def = resolveAsset ( options , ' elementDirectives' , tag )
473474 if ( def ) {
474475 return makeTerminalNodeLinkFn ( el , tag , '' , options , def )
475476 }
@@ -539,6 +540,8 @@ skip.terminal = true
539540
540541function makeTerminalNodeLinkFn ( el , dirName , value , options , def ) {
541542 var descriptor = dirParser . parse ( value ) [ 0 ]
543+ // no need to call resolveAsset since terminal directives
544+ // are always internal
542545 def = def || options . directives [ dirName ]
543546 var fn = function terminalNodeLinkFn ( vm , el , host ) {
544547 vm . _bindDir ( dirName , el , descriptor , def , host )
@@ -571,7 +574,7 @@ function compileDirectives (elOrAttrs, options) {
571574 if ( value === null ) continue
572575 if ( name . indexOf ( config . prefix ) === 0 ) {
573576 dirName = name . slice ( config . prefix . length )
574- dirDef = options . directives [ dirName ]
577+ dirDef = resolveAsset ( options , ' directives' , dirName )
575578 _ . assertAsset ( dirDef , 'directive' , dirName )
576579 if ( dirDef ) {
577580 dirs . push ( {
0 commit comments