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 17eef53cf55841871465e654ca8980c3e08ac631..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..d588b862b28282ee227b916869d3e589f8afcf05
--- /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 0d2f2da613b3377b017f12542bd26e083dfe8bd0..0000000000000000000000000000000000000000
--- 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 82b6c7646c01ded2eb2893f1db984b7d0a08ff8f..0000000000000000000000000000000000000000
--- 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 082e26e3d68d0f6b706839073658c1e782bc8607..0000000000000000000000000000000000000000
--- 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 7d88d53dc2b62fffb2cbf5350a354bafdf9750dc..0000000000000000000000000000000000000000
--- 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 b6295420a384dc7835d58b331f4ae0ee3855dccc..0000000000000000000000000000000000000000
--- 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 f0453f600be4acfb34cf6472e18fbd4bb3e63b74..0000000000000000000000000000000000000000
--- 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 7a47e877a800907493a16536d1e0cbf68d81788f..0000000000000000000000000000000000000000
--- 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 447256afeb01b32359cfad0d5210a0c32425dc70..0000000000000000000000000000000000000000
--- 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 53f90d34fa1440ef04002dd59c2f04d610f8a58f..0000000000000000000000000000000000000000
--- 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 60f928e96cb9d77f3bf516413cfafbfd4364241d..0000000000000000000000000000000000000000
--- 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 378932d68e6c92ffd7c8f08ed824aa71560f7a4b..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..c3d8922de17965a245e7a0e3a8d0de6a7670ea97
--- /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 0000000000000000000000000000000000000000..2947bf4e59bff675cf101b49781a60b93591063e
--- /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 0000000000000000000000000000000000000000..956a457ed14912ee71ed79547ff867aa748dad9e
--- /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 0000000000000000000000000000000000000000..63515dd5df9031b4e045dd586be345f4f4462e6d
--- /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 0000000000000000000000000000000000000000..03734dde946f9ef578c4cf2f78f5f76ea73cea53
--- /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 0000000000000000000000000000000000000000..61a4d91e5596d07c4a118d578a5d0eb0bbb0201c
--- /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 0000000000000000000000000000000000000000..2ff9777f8c5cafa0b581cac0dfa09d226754424a
--- /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 0000000000000000000000000000000000000000..bf08e411824a2a6ae425c0e163c8f9afface26d4
--- /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 0000000000000000000000000000000000000000..941d3319e2940486db856498e8c1118a9ba54fa6
--- /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 0000000000000000000000000000000000000000..8c1f95b7bfb2182cd70f0049a273de082ba16b23
--- /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 0000000000000000000000000000000000000000..0114e770115964973979635405856458c488f788
--- /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 6730b85c9b9ef831e0436a02e656696157de5a9c..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..3387ae66661eb03b4e69858f47252528ff53faae
--- /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 2e505b53240d4bf393df6e540e7cc6d3e6dd18e7..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..5d90aed8c7296472b251815ba3e1ae98bb0423c8
--- /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 26767649214a4bfb79b8352d5ff9ca6e7517ceb7..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..b7a805a3b4dec9f75299762ea974043d2d84db48
--- /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 ffb1d1c3774307f6b6820bfe5d335cd50d4210d8..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..42249e0536e5b954d21cae7c04bd3ec6f57faa43
--- /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;