Merge pull request #6 from sebmck/patch-1

Fix spread attributes within elements inside expression containers.
This commit is contained in:
Ingvar Stepanyan 2014-11-20 12:22:15 +02:00
commit 46c95f5aee
2 changed files with 80 additions and 2 deletions

View File

@ -3169,13 +3169,14 @@
if (tokType === _braceL) {
var tokStart1 = tokStart, tokStartLoc1 = tokStartLoc;
var origInXJSTag = inXJSTag;
inXJSTag = false;
var origInXJSTag = inXJSTag, origInXJSChildExpression = inXJSChildExpression;
inXJSTag = inXJSChildExpression = false;
next();
if (tokType !== _ellipsis) unexpected();
var node = parseMaybeUnary();
inXJSChildExpression = origInXJSChildExpression;
inXJSTag = origInXJSTag;
expect(_braceR);

View File

@ -3303,6 +3303,83 @@ var fbTestFixture = {
}
]
}
},
'<div>{<div {...test} />}</div>': {
type: 'Program',
start: 0,
end: 30,
body: [{
type: 'ExpressionStatement',
start: 0,
end: 30,
expression: {
type: 'XJSElement',
start: 0,
end: 30,
openingElement: {
type: 'XJSOpeningElement',
start: 0,
end: 5,
attributes: [],
name: {
type: 'XJSIdentifier',
start: 1,
end: 4,
name: 'div'
},
selfClosing: false
},
closingElement: {
type: 'XJSClosingElement',
start: 24,
end: 30,
name: {
type: 'XJSIdentifier',
start: 26,
end: 29,
name: 'div'
}
},
children: [{
type: 'XJSExpressionContainer',
start: 5,
end: 24,
expression: {
type: 'XJSElement',
start: 6,
end: 23,
openingElement: {
type: 'XJSOpeningElement',
start: 6,
end: 23,
attributes: [
{
type: 'XJSSpreadAttribute',
start: 11,
end: 20,
argument: {
type: 'Identifier',
start: 15,
end: 19,
name: 'test'
}
}
],
name: {
type: 'XJSIdentifier',
start: 7,
end: 10,
name: 'div'
},
selfClosing: true
},
closingElement: null,
children: []
}
}]
}
}]
}
}
};