Skip to content

Commit

Permalink
Revert "remove parser pre/post transforms (not used)"
Browse files Browse the repository at this point in the history
This reverts commit 2e7a792.
  • Loading branch information
yyx990803 committed Jul 27, 2016
1 parent 74f8b98 commit bee95f8
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/compiler/parser/index.js
Expand Up @@ -30,7 +30,9 @@ const decodeHTMLCached = cached(decodeHTML)
let warn
let platformGetTagNamespace
let platformMustUseProp
let preTransforms
let transforms
let postTransforms
let delimiters

/**
Expand All @@ -43,7 +45,9 @@ export function parse (
warn = options.warn || baseWarn
platformGetTagNamespace = options.getTagNamespace || no
platformMustUseProp = options.mustUseProp || no
preTransforms = pluckModuleFunction(options.modules, 'preTransformNode')
transforms = pluckModuleFunction(options.modules, 'transformNode')
postTransforms = pluckModuleFunction(options.modules, 'postTransformNode')
delimiters = options.delimiters
const stack = []
const preserveWhitespace = options.preserveWhitespace !== false
Expand Down Expand Up @@ -88,6 +92,11 @@ export function parse (
)
}

// apply pre-transforms
for (let i = 0; i < preTransforms.length; i++) {
preTransforms[i](element, options)
}

if (!inPre) {
processPre(element)
if (element.pre) {
Expand Down Expand Up @@ -151,6 +160,10 @@ export function parse (
currentParent = element
stack.push(element)
}
// apply post-transforms
for (let i = 0; i < postTransforms.length; i++) {
postTransforms[i](element, options)
}
},

end () {
Expand Down
18 changes: 18 additions & 0 deletions test/unit/modules/compiler/parser.spec.js
Expand Up @@ -292,4 +292,22 @@ describe('parser', () => {
const ast = parse('<input type="text" name="field1" :value="msg">', options)
expect(ast.props).toBeUndefined()
})

it('pre/post transforms', () => {
const options = extend({}, baseOptions)
const spy1 = jasmine.createSpy('preTransform')
const spy2 = jasmine.createSpy('postTransform')
options.modules = options.modules.concat([{
preTransformNode (el) {
spy1(el.tag)
},
postTransformNode (el) {
expect(el.staticAttrs.length).toBe(1)
spy2(el.tag)
}
}])
parse('<img v-pre src="hi">', options)
expect(spy1).toHaveBeenCalledWith('img')
expect(spy2).toHaveBeenCalledWith('img')
})
})

0 comments on commit bee95f8

Please sign in to comment.