From 64826c2ad3a6bf77a37762dc69664c0dc23a9485 Mon Sep 17 00:00:00 2001 From: Mike Pennisi Date: Mon, 29 Jun 2015 12:09:31 -0400 Subject: [PATCH] Make tests more strict In ECMAScript 5, assignment to a non-reference value throws a runtime ReferenceError. ECMAscript 6 specifies an early ReferenceError in these cases. Tests for this behavior have been authored to pass in both cases. Simplify these tests to describe and assert the early error. --- .../assignment/S11.13.1_A2.1_T3.js | 24 ------------------- .../assignment/non-simple-target.js | 14 +++++++++++ .../compound-assignment/S11.13.2_A2.2_T1.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T10.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T11.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T2.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T3.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T4.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T5.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T6.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T7.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T8.js | 24 ------------------- .../compound-assignment/S11.13.2_A2.2_T9.js | 24 ------------------- .../compound-assignment/add-non-simple.js | 13 ++++++++++ .../btws-and-non-simple.js | 13 ++++++++++ .../compound-assignment/btws-or-non-simple.js | 13 ++++++++++ .../btws-xor-non-simple.js | 13 ++++++++++ .../compound-assignment/div-non-simple.js | 13 ++++++++++ .../left-shift-non-simple.js | 13 ++++++++++ .../compound-assignment/mod-div-non-simple.js | 13 ++++++++++ .../compound-assignment/mult-non-simple.js | 13 ++++++++++ .../right-shift-non-simple.js | 13 ++++++++++ .../subtract-non-simple.js | 13 ++++++++++ .../u-right-shift-non-simple.js | 13 ++++++++++ .../postfix-decrement/S11.3.2_A2.1_T3.js | 24 ------------------- .../postfix-decrement/non-simple.js | 13 ++++++++++ .../postfix-increment/S11.3.1_A2.1_T3.js | 24 ------------------- .../postfix-increment/non-simple.js | 13 ++++++++++ .../prefix-decrement/S11.4.5_A2.1_T3.js | 24 ------------------- .../prefix-decrement/non-simple.js | 13 ++++++++++ .../prefix-increment/S11.4.4_A2.1_T3.js | 24 ------------------- .../prefix-increment/non-simple.js | 13 ++++++++++ 32 files changed, 209 insertions(+), 384 deletions(-) delete mode 100644 test/language/expressions/assignment/S11.13.1_A2.1_T3.js create mode 100644 test/language/expressions/assignment/non-simple-target.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T1.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T10.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T11.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T2.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T3.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T4.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T5.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T6.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T7.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T8.js delete mode 100644 test/language/expressions/compound-assignment/S11.13.2_A2.2_T9.js create mode 100644 test/language/expressions/compound-assignment/add-non-simple.js create mode 100644 test/language/expressions/compound-assignment/btws-and-non-simple.js create mode 100644 test/language/expressions/compound-assignment/btws-or-non-simple.js create mode 100644 test/language/expressions/compound-assignment/btws-xor-non-simple.js create mode 100644 test/language/expressions/compound-assignment/div-non-simple.js create mode 100644 test/language/expressions/compound-assignment/left-shift-non-simple.js create mode 100644 test/language/expressions/compound-assignment/mod-div-non-simple.js create mode 100644 test/language/expressions/compound-assignment/mult-non-simple.js create mode 100644 test/language/expressions/compound-assignment/right-shift-non-simple.js create mode 100644 test/language/expressions/compound-assignment/subtract-non-simple.js create mode 100644 test/language/expressions/compound-assignment/u-right-shift-non-simple.js delete mode 100644 test/language/expressions/postfix-decrement/S11.3.2_A2.1_T3.js create mode 100644 test/language/expressions/postfix-decrement/non-simple.js delete mode 100644 test/language/expressions/postfix-increment/S11.3.1_A2.1_T3.js create mode 100644 test/language/expressions/postfix-increment/non-simple.js delete mode 100644 test/language/expressions/prefix-decrement/S11.4.5_A2.1_T3.js create mode 100644 test/language/expressions/prefix-decrement/non-simple.js delete mode 100644 test/language/expressions/prefix-increment/S11.4.4_A2.1_T3.js create mode 100644 test/language/expressions/prefix-increment/non-simple.js diff --git a/test/language/expressions/assignment/S11.13.1_A2.1_T3.js b/test/language/expressions/assignment/S11.13.1_A2.1_T3.js deleted file mode 100644 index 17eef53cf5..0000000000 --- a/test/language/expressions/assignment/S11.13.1_A2.1_T3.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator x = y uses GetValue and PutValue -es5id: 11.13.1_A2.1_T3 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError -negative: ReferenceError ----*/ - -//CHECK#1 -try { - 1 = 1; - $ERROR('#1.1: 1 = 1 throw ReferenceError. Actual: ' + (1 = 1)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 = 1 throw ReferenceError. Actual: ' + (e)); - } else { - 1 = 1; - } -} diff --git a/test/language/expressions/assignment/non-simple-target.js b/test/language/expressions/assignment/non-simple-target.js new file mode 100644 index 0000000000..d588b862b2 --- /dev/null +++ b/test/language/expressions/assignment/non-simple-target.js @@ -0,0 +1,14 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if LeftHandSideExpression is neither an + ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Assignment with non-simple target +negative: ReferenceError +---*/ + +1 = 1; diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T1.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T1.js deleted file mode 100644 index 0d2f2da613..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T1.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T1 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x *= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 *= 1); - $ERROR('#1.1: 1 *= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 *= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 *= 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T10.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T10.js deleted file mode 100644 index 82b6c7646c..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T10.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T10 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x ^= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 ^= 1); - $ERROR('#1.1: 1 ^= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 ^= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 ^= 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T11.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T11.js deleted file mode 100644 index 082e26e3d6..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T11.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T11 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x |= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 |= 1); - $ERROR('#1.1: 1 |= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 |= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 |= 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T2.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T2.js deleted file mode 100644 index 7d88d53dc2..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T2.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T2 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x /= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 /= 1); - $ERROR('#1.1: 1 /= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 /= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 /= 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T3.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T3.js deleted file mode 100644 index b6295420a3..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T3.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T3 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x %= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 %= 1); - $ERROR('#1.1: 1 %= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 %= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 %= 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T4.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T4.js deleted file mode 100644 index f0453f600b..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T4.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T4 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x += y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 += 1); - $ERROR('#1.1: 1 += 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 += 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 += 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T5.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T5.js deleted file mode 100644 index 7a47e877a8..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T5.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T5 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x -= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 -= 1); - $ERROR('#1.1: 1 -= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 -= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 -= 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T6.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T6.js deleted file mode 100644 index 447256afeb..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T6.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T6 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x <<= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 <<= 1); - $ERROR('#1.1: 1 <<= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 <<= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 <<= 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T7.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T7.js deleted file mode 100644 index 53f90d34fa..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T7.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T7 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x >>= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 >>= 1); - $ERROR('#1.1: 1 >>= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 >>= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 >>= 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T8.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T8.js deleted file mode 100644 index 60f928e96c..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T8.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T8 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x >>>= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 >>>= 1); - $ERROR('#1.1: 1 >>>= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 >>>= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 >>>= 1); - } -} diff --git a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T9.js b/test/language/expressions/compound-assignment/S11.13.2_A2.2_T9.js deleted file mode 100644 index 378932d68e..0000000000 --- a/test/language/expressions/compound-assignment/S11.13.2_A2.2_T9.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: Operator uses PutValue -es5id: 11.13.2_A2.2_T9 -description: > - If Type(LeftHandSideExpression) is not Reference, throw - ReferenceError. Check operator is "x &= y" -negative: ReferenceError ----*/ - -//CHECK#1 -try { - var z = (1 &= 1); - $ERROR('#1.1: 1 &= 1 throw ReferenceError. Actual: ' + (z)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1 &= 1 throw ReferenceError. Actual: ' + (e)); - } else { - var z = (1 &= 1); - } -} diff --git a/test/language/expressions/compound-assignment/add-non-simple.js b/test/language/expressions/compound-assignment/add-non-simple.js new file mode 100644 index 0000000000..c3d8922de1 --- /dev/null +++ b/test/language/expressions/compound-assignment/add-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound addition assignment with non-simple target +negative: ReferenceError +---*/ + +1 += 1; diff --git a/test/language/expressions/compound-assignment/btws-and-non-simple.js b/test/language/expressions/compound-assignment/btws-and-non-simple.js new file mode 100644 index 0000000000..2947bf4e59 --- /dev/null +++ b/test/language/expressions/compound-assignment/btws-and-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound "bitwise and" assignment with non-simple target +negative: ReferenceError +---*/ + +1 &= 1; diff --git a/test/language/expressions/compound-assignment/btws-or-non-simple.js b/test/language/expressions/compound-assignment/btws-or-non-simple.js new file mode 100644 index 0000000000..956a457ed1 --- /dev/null +++ b/test/language/expressions/compound-assignment/btws-or-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound "bitwise or" assignment with non-simple target +negative: ReferenceError +---*/ + +1 |= 1; diff --git a/test/language/expressions/compound-assignment/btws-xor-non-simple.js b/test/language/expressions/compound-assignment/btws-xor-non-simple.js new file mode 100644 index 0000000000..63515dd5df --- /dev/null +++ b/test/language/expressions/compound-assignment/btws-xor-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound "bitwise xor" assignment with non-simple target +negative: ReferenceError +---*/ + +1 ^= 1; diff --git a/test/language/expressions/compound-assignment/div-non-simple.js b/test/language/expressions/compound-assignment/div-non-simple.js new file mode 100644 index 0000000000..03734dde94 --- /dev/null +++ b/test/language/expressions/compound-assignment/div-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound division assignment with non-simple target +negative: ReferenceError +---*/ + +1 /= 1; diff --git a/test/language/expressions/compound-assignment/left-shift-non-simple.js b/test/language/expressions/compound-assignment/left-shift-non-simple.js new file mode 100644 index 0000000000..61a4d91e55 --- /dev/null +++ b/test/language/expressions/compound-assignment/left-shift-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound "left shift" assignment with non-simple target +negative: ReferenceError +---*/ + +1 <<= 1; diff --git a/test/language/expressions/compound-assignment/mod-div-non-simple.js b/test/language/expressions/compound-assignment/mod-div-non-simple.js new file mode 100644 index 0000000000..2ff9777f8c --- /dev/null +++ b/test/language/expressions/compound-assignment/mod-div-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound "modular division" assignment with non-simple target +negative: ReferenceError +---*/ + +1 %= 1; diff --git a/test/language/expressions/compound-assignment/mult-non-simple.js b/test/language/expressions/compound-assignment/mult-non-simple.js new file mode 100644 index 0000000000..bf08e41182 --- /dev/null +++ b/test/language/expressions/compound-assignment/mult-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound multiplication assignment with non-simple target +negative: ReferenceError +---*/ + +1 *= 1; diff --git a/test/language/expressions/compound-assignment/right-shift-non-simple.js b/test/language/expressions/compound-assignment/right-shift-non-simple.js new file mode 100644 index 0000000000..941d3319e2 --- /dev/null +++ b/test/language/expressions/compound-assignment/right-shift-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound "right shift" assignment with non-simple target +negative: ReferenceError +---*/ + +1 >>= 1; diff --git a/test/language/expressions/compound-assignment/subtract-non-simple.js b/test/language/expressions/compound-assignment/subtract-non-simple.js new file mode 100644 index 0000000000..8c1f95b7bf --- /dev/null +++ b/test/language/expressions/compound-assignment/subtract-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound subtraction assignment with non-simple target +negative: ReferenceError +---*/ + +1 -= 1; diff --git a/test/language/expressions/compound-assignment/u-right-shift-non-simple.js b/test/language/expressions/compound-assignment/u-right-shift-non-simple.js new file mode 100644 index 0000000000..0114e77011 --- /dev/null +++ b/test/language/expressions/compound-assignment/u-right-shift-non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.14.1 +description: Compound "unsigned right shift" assignment with non-simple target +negative: ReferenceError +---*/ + +1 >>>= 1; diff --git a/test/language/expressions/postfix-decrement/S11.3.2_A2.1_T3.js b/test/language/expressions/postfix-decrement/S11.3.2_A2.1_T3.js deleted file mode 100644 index 6730b85c9b..0000000000 --- a/test/language/expressions/postfix-decrement/S11.3.2_A2.1_T3.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: > - Operator x-- uses GetValue and PutValue - ES6, 12.4.1 and 12.5.1 specify ReferenceError -es5id: 11.3.2_A2.1_T3 -description: If Type(x) is not Reference, throw ReferenceError -negative: ReferenceError ----*/ - -//CHECK#1 -try { - 1--; - $ERROR('#1.1: 1-- throw ReferenceError. Actual: ' + (1--)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1-- throw ReferenceError. Actual: ' + (e)); - } else { - 1--; - } -} diff --git a/test/language/expressions/postfix-decrement/non-simple.js b/test/language/expressions/postfix-decrement/non-simple.js new file mode 100644 index 0000000000..3387ae6666 --- /dev/null +++ b/test/language/expressions/postfix-decrement/non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.4.1 +description: Applied to a non-simple assignment target +negative: ReferenceError +---*/ + +1--; diff --git a/test/language/expressions/postfix-increment/S11.3.1_A2.1_T3.js b/test/language/expressions/postfix-increment/S11.3.1_A2.1_T3.js deleted file mode 100644 index 2e505b5324..0000000000 --- a/test/language/expressions/postfix-increment/S11.3.1_A2.1_T3.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: > - Operator x++ uses GetValue and PutValue - ES6, 12.4.1 and 12.5.1 specify ReferenceError -es5id: 11.3.1_A2.1_T3 -description: If Type(x) is not Reference, throw ReferenceError -negative: ReferenceError ----*/ - -//CHECK#1 -try { - 1++; - $ERROR('#1.1: 1++ throw ReferenceError. Actual: ' + (1++)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: 1++ throw ReferenceError. Actual: ' + (e)); - } else { - 1++; - } -} diff --git a/test/language/expressions/postfix-increment/non-simple.js b/test/language/expressions/postfix-increment/non-simple.js new file mode 100644 index 0000000000..5d90aed8c7 --- /dev/null +++ b/test/language/expressions/postfix-increment/non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + LeftHandSideExpression is false. +es6id: 12.4.1 +description: Applied to a non-simple assignment target +negative: ReferenceError +---*/ + +1++; diff --git a/test/language/expressions/prefix-decrement/S11.4.5_A2.1_T3.js b/test/language/expressions/prefix-decrement/S11.4.5_A2.1_T3.js deleted file mode 100644 index 2676764921..0000000000 --- a/test/language/expressions/prefix-decrement/S11.4.5_A2.1_T3.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: > - Operator --x uses GetValue and PutValue - ES6 12.5.1 specifies this as ReferenceError -es5id: 11.4.5_A2.1_T3 -description: If Type(x) is not Reference, throw ReferenceError -negative: ReferenceError ----*/ - -//CHECK#1 -try { - --1; - $ERROR('#1.1: --1 throw ReferenceError. Actual: ' + (--1)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: --1 throw ReferenceError. Actual: ' + (e)); - } else { - --1; - } -} diff --git a/test/language/expressions/prefix-decrement/non-simple.js b/test/language/expressions/prefix-decrement/non-simple.js new file mode 100644 index 0000000000..b7a805a3b4 --- /dev/null +++ b/test/language/expressions/prefix-decrement/non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + UnaryExpression is false. +es5id: 12.5.1 +description: Applied to a non-simple assignment target +negative: ReferenceError +---*/ + +--1; diff --git a/test/language/expressions/prefix-increment/S11.4.4_A2.1_T3.js b/test/language/expressions/prefix-increment/S11.4.4_A2.1_T3.js deleted file mode 100644 index ffb1d1c377..0000000000 --- a/test/language/expressions/prefix-increment/S11.4.4_A2.1_T3.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: > - Operator ++x uses GetValue and PutValue - ES6, 12.4.1 and 12.5.1 specify ReferenceError -es5id: 11.4.4_A2.1_T3 -description: If Type(x) is not Reference, throw ReferenceError -negative: ReferenceError ----*/ - -//CHECK#1 -try { - ++1; - $ERROR('#1.1: ++1 throw ReferenceError. Actual: ' + (++1)); -} -catch (e) { - if ((e instanceof ReferenceError) !== true) { - $ERROR('#1.2: ++1 throw ReferenceError. Actual: ' + (e)); - } else { - ++1; - } -} diff --git a/test/language/expressions/prefix-increment/non-simple.js b/test/language/expressions/prefix-increment/non-simple.js new file mode 100644 index 0000000000..42249e0536 --- /dev/null +++ b/test/language/expressions/prefix-increment/non-simple.js @@ -0,0 +1,13 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + It is an early Reference Error if IsValidSimpleAssignmentTarget of + UnaryExpression is false. +es6id: 12.5.1 +description: Applied to a non-simple assignment target +negative: ReferenceError +---*/ + +++1;