special case literals

pull/434/head
Rich-Harris 9 years ago
parent 1a49c2f344
commit 6c754c2a3d

@ -1,8 +1,36 @@
import { parseExpressionAt } from 'acorn';
const literals = {
true: true,
false: false,
null: null
};
export default function readExpression ( parser ) {
const start = parser.index;
const name = parser.readUntil( /\s*}}/ );
if ( name && /^[a-z]+$/.test( name ) ) {
const end = start + name.length;
if ( name in literals ) {
return {
type: 'Literal',
start,
end,
value: literals[ name ],
raw: name
};
}
return {
type: 'Identifier',
start,
end: start + name.length,
name
};
}
parser.index = start;
try {
@ -11,15 +39,6 @@ export default function readExpression ( parser ) {
return node;
} catch ( err ) {
const name = parser.readUntil( /\s*}}/ );
if ( name && /^[a-z]+$/.test( name ) ) {
return {
type: 'Identifier',
start,
end: start + name.length,
name
};
}
parser.acornError( err );
}
}

Loading…
Cancel
Save