Merge pull request #1375 from jugglinmike/refactor-for-parsers-assignment

Refactor AssignmentExpression tests for parsers
This commit is contained in:
Rick Waldron 2017-12-19 15:46:31 -05:00 committed by GitHub
commit 642d88377f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 137 additions and 151 deletions

View File

@ -1,24 +0,0 @@
// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 11.13.1-4-28-s
description: >
Strict Mode - SyntaxError is thrown if the identifier 'eval'
appears as the LeftHandSideExpression of simple assignment(=)
under strict mode
flags: [onlyStrict]
---*/
function testcase() {
var err = null;
var blah = eval;
try {
eval("var eval = 20;");
} catch (e) {
err = e;
}
assert(err instanceof SyntaxError, 'err instanceof SyntaxError');
assert.sameValue(blah, eval, 'blah');
}
testcase();

View File

@ -1,24 +0,0 @@
// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 11.13.1-4-29-s
description: >
Strict Mode - SyntaxError is thrown if the identifier 'arguments'
appears as the LeftHandSideExpression of simple assignment(=)
under strict mode
flags: [onlyStrict]
---*/
function testcase() {
var err = null;
var blah = arguments;
try {
eval("var arguments = 20;");
} catch (e) {
err = e;
}
assert(err instanceof SyntaxError, 'err instanceof SyntaxError');
assert.sameValue(blah, arguments, 'blah');
}
testcase();

View File

@ -1,17 +0,0 @@
// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 11.13.1-4-30-s
description: >
Strict Mode - SyntaxError is thrown if the identifier 'eval'
appears as the LeftHandSideExpression (PrimaryExpression) of
simple assignment(=) under strict mode
flags: [onlyStrict]
---*/
var blah = eval;
assert.throws(SyntaxError, function() {
eval("(eval) = 20;");
});
assert.sameValue(blah, eval, 'blah');

View File

@ -1,24 +0,0 @@
// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 11.13.1-4-31-s
description: >
Strict Mode - SyntaxError is thrown if the identifier 'arguments'
appears as the LeftHandSideExpression (PrimaryExpression) of
simple assignment(=) under strict mode
flags: [onlyStrict]
---*/
function testcase() {
var err = null;
var blah = arguments;
try {
eval("(arguments) = 20;");
} catch (e) {
err = e;
}
assert(err instanceof SyntaxError, 'err instanceof SyntaxError');
assert.sameValue(blah, arguments, 'blah');
}
testcase();

View File

@ -1,62 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
info: >
White Space and Line Terminator between LeftHandSideExpression and "=" or
between "=" and AssignmentExpression are allowed
es5id: 11.13.1_A1
description: Checking by using eval
flags: [noStrict]
---*/
//CHECK#1
if ((eval("x\u0009=\u0009true")) !== true) {
$ERROR('#1: (x\\u0009=\\u0009true) === true');
}
//CHECK#2
if ((eval("x\u000B=\u000Btrue")) !== true) {
$ERROR('#2: (x\\u000B=\\u000Btrue) === true');
}
//CHECK#3
if ((eval("x\u000C=\u000Ctrue")) !== true) {
$ERROR('#3: (x\\u000C=\\u000Ctrue) === true');
}
//CHECK#4
if ((eval("x\u0020=\u0020true")) !== true) {
$ERROR('#4: (x\\u0020=\\u0020true) === true');
}
//CHECK#5
if ((eval("x\u00A0=\u00A0true")) !== true) {
$ERROR('#5: (x\\u00A0=\\u00A0true) === true');
}
//CHECK#6
if ((eval("x\u000A=\u000Atrue")) !== true) {
$ERROR('#6: (x\\u000A=\\u000Atrue) === true');
}
//CHECK#7
if ((eval("x\u000D=\u000Dtrue")) !== true) {
$ERROR('#7: (x\\u000D=\\u000Dtrue) === true');
}
//CHECK#8
if ((eval("x\u2028=\u2028true")) !== true) {
$ERROR('#8: (x\\u2028=\\u2028true) === true');
}
//CHECK#9
if ((eval("x\u2029=\u2029true")) !== true) {
$ERROR('#9: (x\\u2029=\\u2029true) === true');
}
//CHECK#10
if ((eval("x\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029=\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029true")) !== true) {
$ERROR('#10: (x\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029=\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029true) === true');
}

View File

@ -0,0 +1,16 @@
// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 11.13.1-4-30-s
description: >
Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears as
the LeftHandSideExpression (PrimaryExpression) of simple assignment(=).
negative:
phase: early
type: SyntaxError
flags: [onlyStrict]
---*/
throw "Test262: This statement should not be evaluated.";
(arguments) = 20;

View File

@ -0,0 +1,16 @@
// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 11.13.1-4-30-s
description: >
Strict Mode - SyntaxError is thrown if the identifier 'eval' appears as the
LeftHandSideExpression (PrimaryExpression) of simple assignment(=).
negative:
phase: early
type: SyntaxError
flags: [onlyStrict]
---*/
throw "Test262: This statement should not be evaluated.";
(eval) = 20;

View File

@ -0,0 +1,18 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
White Space between LeftHandSideExpression and "=" or between "=" and
AssignmentExpression is allowed
es5id: 11.13.1_A1
---*/
var x;
x
=
true;
if (x !== true) {
$ERROR('#6: (x\\u000A=\\u000Atrue) === true');
}

View File

@ -0,0 +1,55 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
White Space between LeftHandSideExpression and "=" or between "=" and
AssignmentExpression is allowed
es5id: 11.13.1_A1
---*/
var x;
x = 'U+0009';
if (x !== 'U+0009') {
$ERROR('#1: (x\\u0009=\\u0009true) === true');
}
x = 'U+000B';
if (x !== 'U+000B') {
$ERROR('#2: (x\\u000B=\\u000Btrue) === true');
}
x = 'U+000C';
if (x !== 'U+000C') {
$ERROR('#3: (x\\u000C=\\u000Ctrue) === true');
}
x = 'U+0020';
if (x !== 'U+0020') {
$ERROR('#4: (x\\u0020=\\u0020true) === true');
}
x = 'U+00A0';
if (x !== 'U+00A0') {
$ERROR('#5: (x\\u00A0=\\u00A0true) === true');
}
x = 'U+000D';
if (x !== 'U+000D') {
$ERROR('#7: (x\\u000D=\\u000Dtrue) === true');
}
x='U+2028';
if (x !== 'U+2028') {
$ERROR('#8: (x\\u2028=\\u2028true) === true');
}
x='U+2029';
if (x !== 'U+2029') {
$ERROR('#9: (x\\u2029=\\u2029true) === true');
}
x   =   'U+0009U+000BU+000CU+0020U+00A0U+000DU+2028U+2029';
if (x !== 'U+0009U+000BU+000CU+0020U+00A0U+000DU+2028U+2029') {
$ERROR('#10: (x\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000D\\u2028\\u2029=\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000D\\u2028\\u2029true) === true');
}

View File

@ -0,0 +1,16 @@
// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 11.13.1-4-28-s
description: >
Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears
as the LeftHandSideExpression of simple assignment(=) under strict mode
negative:
phase: early
type: SyntaxError
flags: [onlyStrict]
---*/
throw "Test262: This statement should not be evaluated.";
var arguments;

View File

@ -0,0 +1,16 @@
// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 11.13.1-4-28-s
description: >
Strict Mode - SyntaxError is thrown if the identifier 'eval' appears as the
LeftHandSideExpression of simple assignment(=) under strict mode
negative:
phase: early
type: SyntaxError
flags: [onlyStrict]
---*/
throw "Test262: This statement should not be evaluated.";
var eval;