diff options
Diffstat (limited to 'js/src/tests/test262/language/statements/for/head-lhs-let.js')
-rw-r--r-- | js/src/tests/test262/language/statements/for/head-lhs-let.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/for/head-lhs-let.js b/js/src/tests/test262/language/statements/for/head-lhs-let.js new file mode 100644 index 0000000000..0a094d2954 --- /dev/null +++ b/js/src/tests/test262/language/statements/for/head-lhs-let.js @@ -0,0 +1,43 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-iteration-statements +es6id: 13.7 +description: > + The `let` token is interpreted as an Identifier when it is not followed by a + `[` token +info: | + Syntax + + IterationStatement[Yield, Return]: + + for ( [lookahead ∉ { let [ } ] Expression[~In, ?Yield]opt ; + Expression[+In, ?Yield]opt ; Expression[+In, ?Yield]opt ) + Statement[?Yield, ?Return] + + for ( LexicalDeclaration[~In, ?Yield] Expression[+In, ?Yield]opt ; + Expression[+In, ?Yield]opt) Statement[?Yield, ?Return] +flags: [noStrict] +---*/ + +var let; + +let = 1; +for ( let; ; ) + break; + +assert.sameValue(let, 1, 'IdentifierReference'); + +let = 2; +for ( let = 3; ; ) + break; + +assert.sameValue(let, 3, 'AssignmentExpression'); + +let = 4; +for ( [let][0]; ; ) + break; + +assert.sameValue(let, 4, 'MemberExpression'); + +reportCompare(0, 0); |