Skip to content

Commit 67d6eb8

Browse files
authoredApr 2, 2017
Merge pull request #434 from sveltejs/gh-424-alt
Treat literals as special cases when parsing
2 parents 6074178 + 6e0d0b1 commit 67d6eb8

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed
 

‎src/parse/read/expression.js

+18
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
11
import { parseExpressionAt } from 'acorn';
22

3+
const literals = new Map([
4+
[ 'true', true ],
5+
[ 'false', false ],
6+
[ 'null', null ]
7+
]);
8+
39
export default function readExpression ( parser ) {
410
const start = parser.index;
511

612
const name = parser.readUntil( /\s*}}/ );
713
if ( name && /^[a-z]+$/.test( name ) ) {
14+
const end = start + name.length;
15+
16+
if ( literals.has( name ) ) {
17+
return {
18+
type: 'Literal',
19+
start,
20+
end,
21+
value: literals.get( name ),
22+
raw: name
23+
};
24+
}
25+
826
return {
927
type: 'Identifier',
1028
start,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
export default {
2+
'skip-ssr': true,
3+
4+
data: {
5+
foo: false
6+
},
7+
8+
test ( assert, component, target ) {
9+
const inputs = target.querySelectorAll( 'input' );
10+
11+
assert.ok( inputs[0].checked );
12+
assert.ok( !inputs[1].checked );
13+
14+
component.set( { foo: true } );
15+
16+
assert.ok( !inputs[0].checked );
17+
assert.ok( inputs[1].checked );
18+
}
19+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<input type='radio' bind:group='foo' value='{{false}}'>
2+
<input type='radio' bind:group='foo' value='{{true}}'>

0 commit comments

Comments
 (0)
Please sign in to comment.