diff --git a/test/language/future-reserved-words/7.6.1-17-s.js b/test/language/future-reserved-words/7.6.1-17-s.js
deleted file mode 100644
index 114a6beca9321661596dd8360592ba3844c8c313..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1-17-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1-17-s
-description: >
-    7.6 - SyntaxError expected: reserved words used as Identifier
-    Names in UTF8: implements (implements)
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var \u0069mplements = 123;");
-});
diff --git a/test/language/future-reserved-words/7.6.1-18-s.js b/test/language/future-reserved-words/7.6.1-18-s.js
deleted file mode 100644
index 0512a03ad9e65d03f4b9634ddd78c78d182b4c91..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1-18-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1-18-s
-description: >
-    7.6 - SyntaxError expected: reserved words used as Identifier
-    Names in UTF8: l\u0065t (let)
-flags: [onlyStrict]
----*/
-
-        
-assert.throws(SyntaxError, function() {
-            eval("var l\u0065t = 123;");
-});
diff --git a/test/language/future-reserved-words/7.6.1-19-s.js b/test/language/future-reserved-words/7.6.1-19-s.js
deleted file mode 100644
index c3c33f5503a6a2c2822a81f91012af1e7c55dfb3..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1-19-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1-19-s
-description: >
-    7.6 - SyntaxError expected: reserved words used as Identifier
-    Names in UTF8: privat\u0065 (private)
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var privat\u0065 = 123;");
-});
diff --git a/test/language/future-reserved-words/7.6.1-20-s.js b/test/language/future-reserved-words/7.6.1-20-s.js
deleted file mode 100644
index e0b1db3653465f5ab76f1b3e18af3fc0caf1e3c3..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1-20-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1-20-s
-description: >
-    7.6 - SyntaxError expected: reserved words used as Identifier
-    Names in UTF8: \u0070\u0075\u0062\u006c\u0069\u0063 (public)
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var \u0070\u0075\u0062\u006c\u0069\u0063 = 123;");
-});
diff --git a/test/language/future-reserved-words/7.6.1-21-s.js b/test/language/future-reserved-words/7.6.1-21-s.js
deleted file mode 100644
index c37c35c1a04526dc41f15e600cc9a25ce48f3ef5..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1-21-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1-21-s
-description: >
-    7.6 - SyntaxError expected: reserved words used as Identifier
-    Names in UTF8: \u0079ield (yield)
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var \u0079ield = 123;");
-});
diff --git a/test/language/future-reserved-words/7.6.1-22-s.js b/test/language/future-reserved-words/7.6.1-22-s.js
deleted file mode 100644
index 0bca6b3f5d14fc65a65edde05449a5bdd3dbe07f..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1-22-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1-22-s
-description: >
-    7.6 - SyntaxError expected: reserved words used as Identifier
-    Names in UTF8: inte\u0072face (interface)
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var inte\u0072face = 123;");
-});
diff --git a/test/language/future-reserved-words/7.6.1-23-s.js b/test/language/future-reserved-words/7.6.1-23-s.js
deleted file mode 100644
index 72ecb0c4817441417e7d79af64903126dde605b6..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1-23-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1-23-s
-description: >
-    7.6 - SyntaxError expected: reserved words used as Identifier
-    Names in UTF8: packag\u0065 (package)
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var packag\u0065 = 123;");
-});
diff --git a/test/language/future-reserved-words/7.6.1-24-s.js b/test/language/future-reserved-words/7.6.1-24-s.js
deleted file mode 100644
index d422e14b7baf8f01797eab0cdf630ed7bc3e7647..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1-24-s.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1-24-s
-description: >
-    7.6 - SyntaxError expected: reserved words used as Identifier
-    Names in UTF8:
-    \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 (protected)
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 = 123;");
-});
diff --git a/test/language/future-reserved-words/7.6.1-25-s.js b/test/language/future-reserved-words/7.6.1-25-s.js
deleted file mode 100644
index 47efc0d07c811a3117433f1917df3309cb07eaad..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1-25-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1-25-s
-description: >
-    7.6 - SyntaxError expected: reserved words used as Identifier
-    Names in UTF8: \u0073\u0074\u0061\u0074\u0069\u0063 (static)
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var \u0073\u0074\u0061\u0074\u0069\u0063 = 123;");
-});
diff --git a/test/language/future-reserved-words/7.6.1.2-1-s.js b/test/language/future-reserved-words/7.6.1.2-1-s.js
deleted file mode 100644
index 85f9b58b5d5d5478836ad3d3db5943ac0e4ee792..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1.2-1-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1.2-1-s
-description: >
-    Strict Mode - SyntaxError is thrown when FutureReservedWord
-    'implements' occurs in strict mode code
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var implements = 1;");
-});
diff --git a/test/language/future-reserved-words/7.6.1.2-2-s.js b/test/language/future-reserved-words/7.6.1.2-2-s.js
deleted file mode 100644
index 0c2ac187ac33b34b52fc0967ed61d84a65ce5127..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1.2-2-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1.2-2-s
-description: >
-    Strict Mode - SyntaxError is thrown when FutureReservedWord 'let'
-    occurs in strict mode code
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var let = 1;");
-});
diff --git a/test/language/future-reserved-words/7.6.1.2-3-s.js b/test/language/future-reserved-words/7.6.1.2-3-s.js
deleted file mode 100644
index 27c338641a1a37bd7a6391ef95cd30386546c018..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1.2-3-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1.2-3-s
-description: >
-    Strict Mode - SyntaxError is thrown when FutureReservedWord
-    'private' occurs in strict mode code
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var private = 1;");
-});
diff --git a/test/language/future-reserved-words/7.6.1.2-4-s.js b/test/language/future-reserved-words/7.6.1.2-4-s.js
deleted file mode 100644
index b215af858ca40ce18f94fcea1719991b93e3f0e0..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1.2-4-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1.2-4-s
-description: >
-    Strict Mode - SyntaxError is thrown when FutureReservedWord
-    'public' occurs in strict mode code
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var public = 1;");
-});
diff --git a/test/language/future-reserved-words/7.6.1.2-5-s.js b/test/language/future-reserved-words/7.6.1.2-5-s.js
deleted file mode 100644
index aa2d106b465a73d955df992b30923c82eb08c6ce..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1.2-5-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1.2-5-s
-description: >
-    Strict Mode - SyntaxError is thrown when FutureReservedWord
-    'yield' occurs in strict mode code
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var yield = 1;")
-});
diff --git a/test/language/future-reserved-words/7.6.1.2-6-s.js b/test/language/future-reserved-words/7.6.1.2-6-s.js
deleted file mode 100644
index 01c84246e010943679c76d75d66a40f69f2bae22..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1.2-6-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1.2-6-s
-description: >
-    Strict Mode - SyntaxError is thrown when FutureReservedWord
-    'interface' occurs in strict mode code
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var interface = 1;")
-});
diff --git a/test/language/future-reserved-words/7.6.1.2-7-s.js b/test/language/future-reserved-words/7.6.1.2-7-s.js
deleted file mode 100644
index f074d354207985cd958cf37ff38888a191fadffd..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1.2-7-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1.2-7-s
-description: >
-    Strict Mode - SyntaxError is thrown when FutureReservedWord
-    'package' occurs in strict mode code
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var package = 1;");
-});
diff --git a/test/language/future-reserved-words/7.6.1.2-8-s.js b/test/language/future-reserved-words/7.6.1.2-8-s.js
deleted file mode 100644
index 6e08bd214ad4564e7393c3aa30e9b68d1d10ba7f..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1.2-8-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1.2-8-s
-description: >
-    Strict Mode - SyntaxError is thrown when FutureReservedWord
-    'protected' occurs in strict mode code
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var protected = 1;");
-});
diff --git a/test/language/future-reserved-words/7.6.1.2-9-s.js b/test/language/future-reserved-words/7.6.1.2-9-s.js
deleted file mode 100644
index 0354bd57d82f1a093cff2af4ef8059067374945f..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/7.6.1.2-9-s.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2012 Ecma International.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es5id: 7.6.1.2-9-s
-description: >
-    Strict Mode - SyntaxError is thrown when FutureReservedWord
-    'static' occurs in strict mode code
-flags: [onlyStrict]
----*/
-
-
-assert.throws(SyntaxError, function() {
-            eval("var static = 1;");
-});
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.15.js b/test/language/future-reserved-words/S7.6.1.2_A1.15.js
deleted file mode 100644
index 7c0fce200fa4ee4d85ff7dc161c12061d696b8be..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/S7.6.1.2_A1.15.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: The "implements" token can not be used as identifier in strict code
-es5id: 7.6.1.2_A1.15
-description: Checking if execution of "implements=1" fails in strict code
-negative:
-  phase: early
-  type: SyntaxError
-flags: [onlyStrict]
----*/
-
-var implements = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.18.js b/test/language/future-reserved-words/S7.6.1.2_A1.18.js
deleted file mode 100644
index c9d887644028139b225637abb0d7febfe328d396..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/S7.6.1.2_A1.18.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: The "interface" token can not be used as identifier in strict code
-es5id: 7.6.1.2_A1.18
-description: Checking if execution of "interface = 1" fails in  strict code
-negative:
-  phase: early
-  type: SyntaxError
-flags: [onlyStrict]
----*/
-
-var interface = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.21.js b/test/language/future-reserved-words/S7.6.1.2_A1.21.js
deleted file mode 100644
index deacbfd3aa89b3549ab278d8e49b31ddb18faf9e..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/S7.6.1.2_A1.21.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: The "package" token can not be used as identifier in strict code
-es5id: 7.6.1.2_A1.21
-description: Checking if execution of "package=1" fails in strict code
-negative:
-  phase: early
-  type: SyntaxError
-flags: [onlyStrict]
----*/
-
-var package = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.22.js b/test/language/future-reserved-words/S7.6.1.2_A1.22.js
deleted file mode 100644
index 0a7ed7f81e850bd1bddb9cd8db645372e1a9003e..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/S7.6.1.2_A1.22.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: The "private" token can not be used as identifier in strict code
-es5id: 7.6.1.2_A1.22
-description: Checking if execution of "private=1" fails in strict code
-negative:
-  phase: early
-  type: SyntaxError
-flags: [onlyStrict]
----*/
-
-var private = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.23.js b/test/language/future-reserved-words/S7.6.1.2_A1.23.js
deleted file mode 100644
index 092bf67e34e6f4fe57eb87e9fd9b131bbd0a7358..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/S7.6.1.2_A1.23.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: The "protected" token can not be used as identifier in strict code
-es5id: 7.6.1.2_A1.23
-description: Checking if execution of "protected=1" fails in  strict code
-negative:
-  phase: early
-  type: SyntaxError
-flags: [onlyStrict]
----*/
-
-var protected = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.24.js b/test/language/future-reserved-words/S7.6.1.2_A1.24.js
deleted file mode 100644
index abd88425bc86c8ee95b501f277e84d7302934a63..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/S7.6.1.2_A1.24.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: The "public" token can not be used as identifier in strict code
-es5id: 7.6.1.2_A1.24
-description: Checking if execution of "public=1" fails in strict code
-negative:
-  phase: early
-  type: SyntaxError
-flags: [onlyStrict]
----*/
-
-var public = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.26.js b/test/language/future-reserved-words/S7.6.1.2_A1.26.js
deleted file mode 100644
index b765345a9271282dedc2f3e2157bd7c2fb9d65bf..0000000000000000000000000000000000000000
--- a/test/language/future-reserved-words/S7.6.1.2_A1.26.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2009 the Sputnik authors.  All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-info: The "static" token can not be used as identifier in strict code
-es5id: 7.6.1.2_A1.26
-description: Checking if execution of "static=1" fails in strict code
-negative:
-  phase: early
-  type: SyntaxError
-flags: [onlyStrict]
----*/
-
-var static = 1;
diff --git a/test/language/future-reserved-words/7.6.1.2-16-s.js b/test/language/future-reserved-words/_implements.js
similarity index 90%
rename from test/language/future-reserved-words/7.6.1.2-16-s.js
rename to test/language/future-reserved-words/_implements.js
index 284fd5dca95396e894d78b7117f1759bc39d9187..f8586032fef918c95ed1cc7724193922fc154d5d 100644
--- a/test/language/future-reserved-words/7.6.1.2-16-s.js
+++ b/test/language/future-reserved-words/_implements.js
@@ -7,6 +7,6 @@ description: >
     SyntaxError isn't thrown when '_implements' occurs
 ---*/
 
-        var _implements = 1;
+var _implements = 1;
 
 assert.sameValue(_implements, 1, '_implements');
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.1.js b/test/language/future-reserved-words/abstract.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.1.js
rename to test/language/future-reserved-words/abstract.js
index 8e7406158a9ab4366a756caeacadc6593ef61798..627d06b596e2fba6e7e1c4aba8ecae4b4bac85b9 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.1.js
+++ b/test/language/future-reserved-words/abstract.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "abstract" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.1
 description: Checking if execution of "abstract=1" succeeds
+info: >
+  `abstract` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var abstract = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.2.js b/test/language/future-reserved-words/boolean.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.2.js
rename to test/language/future-reserved-words/boolean.js
index 14ece48fe3ef74877018b3db0adb24fd836bc2d3..715c5974ef7ef0f7426d8df78da4ab0013adbf4b 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.2.js
+++ b/test/language/future-reserved-words/boolean.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "boolean" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.2
 description: Checking if execution of "boolean=1" succeeds
+info: >
+  `boolean` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var boolean = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.3.js b/test/language/future-reserved-words/byte.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.3.js
rename to test/language/future-reserved-words/byte.js
index 8b39c2b5a61c13cc4c9cd91ca243c3a1d55a2ed2..55f12c075096c80221d6388356e0825c4ff705ce 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.3.js
+++ b/test/language/future-reserved-words/byte.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "byte" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.3
 description: Checking if execution of "byte=1" succeeds
+info: >
+  `byte` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var byte = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.4.js b/test/language/future-reserved-words/char.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.4.js
rename to test/language/future-reserved-words/char.js
index 48ae03a5a6943ee95d0a731db81321f6e28d5c3f..14515dc20014b48bc9e6b508807b69b030c3ec63 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.4.js
+++ b/test/language/future-reserved-words/char.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "char" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.4
 description: Checking if execution of "char=1" succeeds
+info: >
+  `char` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var char = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.5.js b/test/language/future-reserved-words/class.js
similarity index 51%
rename from test/language/future-reserved-words/S7.6.1.2_A1.5.js
rename to test/language/future-reserved-words/class.js
index 72ab227e805813dadf396e692295ff29a8135aaa..bb1eba40d00042c5f00fcee228bef5714b7076ea 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.5.js
+++ b/test/language/future-reserved-words/class.js
@@ -2,9 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "class" token can not be used as identifier
+esid: sec-identifiers-static-semantics-early-errors
 es5id: 7.6.1.2_A1.5
 description: Checking if execution of "class=1" fails
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if StringValue of IdentifierName is the same String
+    value as the StringValue of any ReservedWord except for yield and await.
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.6.js b/test/language/future-reserved-words/const.js
similarity index 51%
rename from test/language/future-reserved-words/S7.6.1.2_A1.6.js
rename to test/language/future-reserved-words/const.js
index cf176bbb886d41eb86163c470bdfa084212342ff..ea96279dc78a01bd6b0b1aa85c3a602d5423a43f 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.6.js
+++ b/test/language/future-reserved-words/const.js
@@ -2,9 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "const" token can not be used as identifier
+esid: sec-identifiers-static-semantics-early-errors
 es5id: 7.6.1.2_A1.6
 description: Checking if execution of "const=1" fails
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if StringValue of IdentifierName is the same String
+    value as the StringValue of any ReservedWord except for yield and await.
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.7.js b/test/language/future-reserved-words/debugger.js
similarity index 51%
rename from test/language/future-reserved-words/S7.6.1.2_A1.7.js
rename to test/language/future-reserved-words/debugger.js
index eae9074d56d91d6ea10a785420eb3182bf0179a4..b948ac4daf4ecc7d7586283e6eab966e3cb21e6d 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.7.js
+++ b/test/language/future-reserved-words/debugger.js
@@ -2,9 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "debugger" token can not be used as identifier
+esid: sec-identifiers-static-semantics-early-errors
 es5id: 7.6.1.2_A1.7
 description: Checking if execution of "debugger=1" fails
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if StringValue of IdentifierName is the same String
+    value as the StringValue of any ReservedWord except for yield and await.
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.8.js b/test/language/future-reserved-words/double.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.8.js
rename to test/language/future-reserved-words/double.js
index a8354b3b18d749876359cb5bf6a5e974fe7ddd3c..344ad382c28b5304e12ad938c812aef66646afcb 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.8.js
+++ b/test/language/future-reserved-words/double.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "double" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.8
 description: Checking if execution of "double=1" succeeds
+info: >
+  `double` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var double = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.9.js b/test/language/future-reserved-words/enum.js
similarity index 50%
rename from test/language/future-reserved-words/S7.6.1.2_A1.9.js
rename to test/language/future-reserved-words/enum.js
index 8e04cff51f4c6e6793ca631f1e94e309d3d56a01..b106c296cd379239e01fc9dba466c87e6ad5965e 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.9.js
+++ b/test/language/future-reserved-words/enum.js
@@ -2,9 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "enum" token can not be used as identifier
+esid: sec-identifiers-static-semantics-early-errors
 es5id: 7.6.1.2_A1.9
 description: Checking if execution of "enum=1" fails
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if StringValue of IdentifierName is the same String
+    value as the StringValue of any ReservedWord except for yield and await.
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.10.js b/test/language/future-reserved-words/export.js
similarity index 51%
rename from test/language/future-reserved-words/S7.6.1.2_A1.10.js
rename to test/language/future-reserved-words/export.js
index be6f1006f762476eaa1c63df80dfe87d68843e55..763caeed571d01117de2525c74e988059850c097 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.10.js
+++ b/test/language/future-reserved-words/export.js
@@ -2,9 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "export" token can not be used as identifier
+esid: sec-identifiers-static-semantics-early-errors
 es5id: 7.6.1.2_A1.10
 description: Checking if execution of "export=1" fails
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if StringValue of IdentifierName is the same String
+    value as the StringValue of any ReservedWord except for yield and await.
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.11.js b/test/language/future-reserved-words/extends.js
similarity index 51%
rename from test/language/future-reserved-words/S7.6.1.2_A1.11.js
rename to test/language/future-reserved-words/extends.js
index d9bdd2f4e3802132343a1e008f9bab9ce72ca91b..8c1f59557982dc39150e199bf235e64045a523e3 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.11.js
+++ b/test/language/future-reserved-words/extends.js
@@ -2,9 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "extends" token can not be used as identifier
+esid: sec-identifiers-static-semantics-early-errors
 es5id: 7.6.1.2_A1.11
 description: Checking if execution of "extends=1" fails
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if StringValue of IdentifierName is the same String
+    value as the StringValue of any ReservedWord except for yield and await.
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.12.js b/test/language/future-reserved-words/final.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.12.js
rename to test/language/future-reserved-words/final.js
index 9b97734be4f14f1fab33dfdb390b05537a2b791e..a8634f661f2f01dccc90ec26f4b2642c4c3a9108 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.12.js
+++ b/test/language/future-reserved-words/final.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "final" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.12
 description: Checking if execution of "final=1" succeeds
+info: >
+  `final` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var final = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.13.js b/test/language/future-reserved-words/float.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.13.js
rename to test/language/future-reserved-words/float.js
index 5576838dc06ced16d2d389fc8b633942162bdbab..25d2e0cb4fc2cc7afc6d112a6be64b47d87baeaf 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.13.js
+++ b/test/language/future-reserved-words/float.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "float" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.13
 description: Checking if execution of "float=1" succeeds
+info: >
+  `float` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var float = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.14.js b/test/language/future-reserved-words/goto.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.14.js
rename to test/language/future-reserved-words/goto.js
index 381b67c8c006bbba0bee74e314a1c3882fad9fd9..e81365a340c21bda893c06a0f7bac051e9d5f958 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.14.js
+++ b/test/language/future-reserved-words/goto.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "goto" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.14
 description: Checking if execution of "goto=1" succeeds
+info: >
+  `goto` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var goto = 1;
diff --git a/test/language/future-reserved-words/7.6.1.2-12-s.js b/test/language/future-reserved-words/implement.js
similarity index 90%
rename from test/language/future-reserved-words/7.6.1.2-12-s.js
rename to test/language/future-reserved-words/implement.js
index 1524b197bde67b916e2c531d28d495a319a1e1b0..82789235ab131b96038bdf0ef42654f703414512 100644
--- a/test/language/future-reserved-words/7.6.1.2-12-s.js
+++ b/test/language/future-reserved-words/implement.js
@@ -7,6 +7,6 @@ description: >
     SyntaxError isn't thrown when 'implement' occurs
 ---*/
 
-        var implement = 1;
+var implement = 1;
 
 assert.sameValue(implement, 1, 'implement');
diff --git a/test/language/future-reserved-words/implements-strict-escaped.js b/test/language/future-reserved-words/implements-strict-escaped.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca6fd22e75192101265895ff5cdd02add4b42a1d
--- /dev/null
+++ b/test/language/future-reserved-words/implements-strict-escaped.js
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1-17-s
+description: >
+    7.6 - SyntaxError expected: reserved words used as Identifier
+    Names in UTF8: implements (implements)
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var \u0069mplements = 123;
diff --git a/test/language/future-reserved-words/implements-strict.js b/test/language/future-reserved-words/implements-strict.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c5f67a9d7cf1178eebd1bfe58566cbe53f34396
--- /dev/null
+++ b/test/language/future-reserved-words/implements-strict.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1.2-1-s
+description: >
+    Strict Mode - SyntaxError is thrown when 'implements' occurs in strict mode code
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var implements = 1;
diff --git a/test/language/future-reserved-words/7.6.1.2-11-s.js b/test/language/future-reserved-words/implements-titlecase.js
similarity index 90%
rename from test/language/future-reserved-words/7.6.1.2-11-s.js
rename to test/language/future-reserved-words/implements-titlecase.js
index 8dfcf574ea9e36e7b584a988bedf206e74feb1e6..9fe6ec04fc12b69ac36303e7f0232ae3e4f1a30b 100644
--- a/test/language/future-reserved-words/7.6.1.2-11-s.js
+++ b/test/language/future-reserved-words/implements-titlecase.js
@@ -7,6 +7,6 @@ description: >
     SyntaxError isn't thrown when 'Implements' occurs
 ---*/
 
-        var Implements = 1;
+var Implements = 1;
 
 assert.sameValue(Implements, 1, 'Implements');
diff --git a/test/language/future-reserved-words/7.6.1.2-10-s.js b/test/language/future-reserved-words/implements-uppercase.js
similarity index 90%
rename from test/language/future-reserved-words/7.6.1.2-10-s.js
rename to test/language/future-reserved-words/implements-uppercase.js
index 4d10b889082a194d3d6f0bda9c0fb8be2f1dc544..d9484a66f71c5072e6ec428b24b12628a63afa73 100644
--- a/test/language/future-reserved-words/7.6.1.2-10-s.js
+++ b/test/language/future-reserved-words/implements-uppercase.js
@@ -7,6 +7,6 @@ description: >
     SyntaxError isn't thrown when 'IMPLEMENTS' occurs
 ---*/
 
-        var IMPLEMENTS = 1;
+var IMPLEMENTS = 1;
 
 assert.sameValue(IMPLEMENTS, 1, 'IMPLEMENTS');
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.15ns.js b/test/language/future-reserved-words/implements.js
similarity index 100%
rename from test/language/future-reserved-words/S7.6.1.2_A1.15ns.js
rename to test/language/future-reserved-words/implements.js
diff --git a/test/language/future-reserved-words/7.6.1.2-14-s.js b/test/language/future-reserved-words/implements0.js
similarity index 90%
rename from test/language/future-reserved-words/7.6.1.2-14-s.js
rename to test/language/future-reserved-words/implements0.js
index 725aeacb6e30070166c76942446a3341e70ba2fb..7f57e6094661385d99aef743480bf3a1f921f171 100644
--- a/test/language/future-reserved-words/7.6.1.2-14-s.js
+++ b/test/language/future-reserved-words/implements0.js
@@ -7,6 +7,6 @@ description: >
     SyntaxError isn't thrown when 'implements0' occurs
 ---*/
 
-        var implements0 = 1;
+var implements0 = 1;
 
 assert.sameValue(implements0, 1, 'implements0');
diff --git a/test/language/future-reserved-words/7.6.1.2-13-s.js b/test/language/future-reserved-words/implementss.js
similarity index 90%
rename from test/language/future-reserved-words/7.6.1.2-13-s.js
rename to test/language/future-reserved-words/implementss.js
index 6663859a17d77d0c5354586f5da5b2d3d4b2b122..ba9933f7e71c55e59ab01be7735197d5e324fbe9 100644
--- a/test/language/future-reserved-words/7.6.1.2-13-s.js
+++ b/test/language/future-reserved-words/implementss.js
@@ -7,6 +7,6 @@ description: >
     SyntaxError isn't thrown when 'implementss' occurs
 ---*/
 
-        var implementss = 1;
+var implementss = 1;
 
 assert.sameValue(implementss, 1, 'implementss');
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.16.js b/test/language/future-reserved-words/import.js
similarity index 51%
rename from test/language/future-reserved-words/S7.6.1.2_A1.16.js
rename to test/language/future-reserved-words/import.js
index da5cd8ad533f45e34c8b09b079972d5141433134..bddea8f7e74023de7255991831421e26d2b9da12 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.16.js
+++ b/test/language/future-reserved-words/import.js
@@ -2,9 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "import" token can not be used as identifier
+esid: sec-identifiers-static-semantics-early-errors
 es5id: 7.6.1.2_A1.16
 description: Checking if execution of "import=1" fails
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if StringValue of IdentifierName is the same String
+    value as the StringValue of any ReservedWord except for yield and await.
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.17.js b/test/language/future-reserved-words/int.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.17.js
rename to test/language/future-reserved-words/int.js
index 2dd1dd26c4f39326b87e626fa43561198b6e44ad..151896554e70a4abb55994ddb3ce51b9791ca276 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.17.js
+++ b/test/language/future-reserved-words/int.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "int" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.17
 description: Checking if execution of "int=1" succeeds
+info: >
+  `int` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var int = 1;
diff --git a/test/language/future-reserved-words/interface-strict-escaped.js b/test/language/future-reserved-words/interface-strict-escaped.js
new file mode 100644
index 0000000000000000000000000000000000000000..bec054c0fc77a09d4f023a2bc9aa5c0555643bda
--- /dev/null
+++ b/test/language/future-reserved-words/interface-strict-escaped.js
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1-22-s
+description: >
+    7.6 - SyntaxError expected: reserved words used as Identifier
+    Names in UTF8: inte\u0072face (interface)
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var inte\u0072face = 123;
diff --git a/test/language/future-reserved-words/interface-strict.js b/test/language/future-reserved-words/interface-strict.js
new file mode 100644
index 0000000000000000000000000000000000000000..83c3dfe334586bb94245bcaf09a7a3584f2fc8e7
--- /dev/null
+++ b/test/language/future-reserved-words/interface-strict.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1.2-6-s
+description: >
+    Strict Mode - SyntaxError is thrown when 'interface' occurs in strict mode code
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var interface = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.18ns.js b/test/language/future-reserved-words/interface.js
similarity index 100%
rename from test/language/future-reserved-words/S7.6.1.2_A1.18ns.js
rename to test/language/future-reserved-words/interface.js
diff --git a/test/language/future-reserved-words/let-strict-escaped.js b/test/language/future-reserved-words/let-strict-escaped.js
new file mode 100644
index 0000000000000000000000000000000000000000..c1c7946190630e4f338ad325abeb23d976d6d92b
--- /dev/null
+++ b/test/language/future-reserved-words/let-strict-escaped.js
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1-18-s
+description: >
+    7.6 - SyntaxError expected: reserved words used as Identifier
+    Names in UTF8: l\u0065t (let)
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var l\u0065t = 123;
diff --git a/test/language/future-reserved-words/let-strict.js b/test/language/future-reserved-words/let-strict.js
new file mode 100644
index 0000000000000000000000000000000000000000..fe3e049e4ee6652c75555fe0a866beb0ee754cc8
--- /dev/null
+++ b/test/language/future-reserved-words/let-strict.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1.2-2-s
+description: >
+    Strict Mode - SyntaxError is thrown when 'let' occurs in strict mode code
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var let = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.19.js b/test/language/future-reserved-words/long.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.19.js
rename to test/language/future-reserved-words/long.js
index 689c84f08040d1577917a7be914deafe89eb333a..5f88caf4d0463230b92d7453ed7bf018b50958cd 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.19.js
+++ b/test/language/future-reserved-words/long.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "long" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.19
 description: Checking if execution of "long=1" succeeds
+info: >
+  `long` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var long = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.20.js b/test/language/future-reserved-words/native.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.20.js
rename to test/language/future-reserved-words/native.js
index 174d92c06f3bbf2b792a1e2921f11c1ccbdb8542..1ec95193b4d228fd4abc6e8231a26e26fde6fa33 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.20.js
+++ b/test/language/future-reserved-words/native.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "native" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.20
 description: Checking if execution of "native=1" succeeds
+info: >
+  `native` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var native = 1;
diff --git a/test/language/future-reserved-words/package-strict-escaped.js b/test/language/future-reserved-words/package-strict-escaped.js
new file mode 100644
index 0000000000000000000000000000000000000000..e7c691006aeea8faf19353dde7eb394cca41e366
--- /dev/null
+++ b/test/language/future-reserved-words/package-strict-escaped.js
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1-23-s
+description: >
+    7.6 - SyntaxError expected: reserved words used as Identifier
+    Names in UTF8: packag\u0065 (package)
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var packag\u0065 = 123;
diff --git a/test/language/future-reserved-words/package-strict.js b/test/language/future-reserved-words/package-strict.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e8c5bb4eb4884b75daa470cc568c53c52532397
--- /dev/null
+++ b/test/language/future-reserved-words/package-strict.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1.2-7-s
+description: >
+    Strict Mode - SyntaxError is thrown when 'package' occurs in strict mode code
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var package = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.21ns.js b/test/language/future-reserved-words/package.js
similarity index 100%
rename from test/language/future-reserved-words/S7.6.1.2_A1.21ns.js
rename to test/language/future-reserved-words/package.js
diff --git a/test/language/future-reserved-words/private-strict-escaped.js b/test/language/future-reserved-words/private-strict-escaped.js
new file mode 100644
index 0000000000000000000000000000000000000000..28c6cab95efc5e66ab2bb0549e89c7497cf43637
--- /dev/null
+++ b/test/language/future-reserved-words/private-strict-escaped.js
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1-19-s
+description: >
+    7.6 - SyntaxError expected: reserved words used as Identifier
+    Names in UTF8: privat\u0065 (private)
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var privat\u0065 = 123;
diff --git a/test/language/future-reserved-words/private-strict.js b/test/language/future-reserved-words/private-strict.js
new file mode 100644
index 0000000000000000000000000000000000000000..25a952b928661d01806989e4bdfb8c78299ba3bb
--- /dev/null
+++ b/test/language/future-reserved-words/private-strict.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1.2-3-s
+description: >
+    Strict Mode - SyntaxError is thrown when 'private' occurs in strict mode code
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var private = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.22ns.js b/test/language/future-reserved-words/private.js
similarity index 100%
rename from test/language/future-reserved-words/S7.6.1.2_A1.22ns.js
rename to test/language/future-reserved-words/private.js
diff --git a/test/language/future-reserved-words/protected-strict-escaped.js b/test/language/future-reserved-words/protected-strict-escaped.js
new file mode 100644
index 0000000000000000000000000000000000000000..9286ada55717b91d2490670b2a997b1f1ad7d1a5
--- /dev/null
+++ b/test/language/future-reserved-words/protected-strict-escaped.js
@@ -0,0 +1,23 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1-24-s
+description: >
+    7.6 - SyntaxError expected: reserved words used as Identifier
+    Names in UTF8:
+    \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 (protected)
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var \u0070\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064 = 123;
diff --git a/test/language/future-reserved-words/protected-strict.js b/test/language/future-reserved-words/protected-strict.js
new file mode 100644
index 0000000000000000000000000000000000000000..1a4ed8e2538e604de6fc39ea32d5cd8420487a26
--- /dev/null
+++ b/test/language/future-reserved-words/protected-strict.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1.2-8-s
+description: >
+    Strict Mode - SyntaxError is thrown when 'protected' occurs in strict mode code
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var protected = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.23ns.js b/test/language/future-reserved-words/protected.js
similarity index 100%
rename from test/language/future-reserved-words/S7.6.1.2_A1.23ns.js
rename to test/language/future-reserved-words/protected.js
diff --git a/test/language/future-reserved-words/public-strict-escaped.js b/test/language/future-reserved-words/public-strict-escaped.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e8f8683a4564959835c8adc5c1d19e438f6a304
--- /dev/null
+++ b/test/language/future-reserved-words/public-strict-escaped.js
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1-20-s
+description: >
+    7.6 - SyntaxError expected: reserved words used as Identifier
+    Names in UTF8: \u0070\u0075\u0062\u006c\u0069\u0063 (public)
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var \u0070\u0075\u0062\u006c\u0069\u0063 = 123;
diff --git a/test/language/future-reserved-words/public-strict.js b/test/language/future-reserved-words/public-strict.js
new file mode 100644
index 0000000000000000000000000000000000000000..dd5111f40e7bbf35c2b7398188a0075c70e0eb51
--- /dev/null
+++ b/test/language/future-reserved-words/public-strict.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1.2-4-s
+description: >
+    Strict Mode - SyntaxError is thrown when 'public' occurs in strict mode code
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var public = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.24ns.js b/test/language/future-reserved-words/public.js
similarity index 100%
rename from test/language/future-reserved-words/S7.6.1.2_A1.24ns.js
rename to test/language/future-reserved-words/public.js
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.25.js b/test/language/future-reserved-words/short.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.25.js
rename to test/language/future-reserved-words/short.js
index 01681b3c17cb750c82838bcd9ecacd33f72527ab..f55567a7aa141a037fd2f2a517f81cc285507fa7 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.25.js
+++ b/test/language/future-reserved-words/short.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "short" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.25
 description: Checking if execution of "short=1" succeeds
+info: >
+  `short` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var short = 1;
diff --git a/test/language/future-reserved-words/static-strict-escaped.js b/test/language/future-reserved-words/static-strict-escaped.js
new file mode 100644
index 0000000000000000000000000000000000000000..413c2fd4d6a0619c8b96427968257c0b688bf749
--- /dev/null
+++ b/test/language/future-reserved-words/static-strict-escaped.js
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1-25-s
+description: >
+    7.6 - SyntaxError expected: reserved words used as Identifier
+    Names in UTF8: \u0073\u0074\u0061\u0074\u0069\u0063 (static)
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var \u0073\u0074\u0061\u0074\u0069\u0063 = 123;
diff --git a/test/language/future-reserved-words/static-strict.js b/test/language/future-reserved-words/static-strict.js
new file mode 100644
index 0000000000000000000000000000000000000000..b3bca09f2a0e0fa55f1af845f6a26da2fd6f6541
--- /dev/null
+++ b/test/language/future-reserved-words/static-strict.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1.2-9-s
+description: >
+    Strict Mode - SyntaxError is thrown when 'static' occurs in strict mode code
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var static = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.26ns.js b/test/language/future-reserved-words/static.js
similarity index 100%
rename from test/language/future-reserved-words/S7.6.1.2_A1.26ns.js
rename to test/language/future-reserved-words/static.js
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.27.js b/test/language/future-reserved-words/super.js
similarity index 51%
rename from test/language/future-reserved-words/S7.6.1.2_A1.27.js
rename to test/language/future-reserved-words/super.js
index fae8764e54435d882334af9ed9b77d308512c818..ba6fbec80086b94b0df18eba23ba85e79c8aadbc 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.27.js
+++ b/test/language/future-reserved-words/super.js
@@ -2,9 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "super" token can not be used as identifier
+esid: sec-identifiers-static-semantics-early-errors
 es5id: 7.6.1.2_A1.27
 description: Checking if execution of "super=1" fails
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if StringValue of IdentifierName is the same String
+    value as the StringValue of any ReservedWord except for yield and await.
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.28.js b/test/language/future-reserved-words/synchronized.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.28.js
rename to test/language/future-reserved-words/synchronized.js
index 38fe3360ebcd070c9c3aba39f0ca8e9950d4a775..a467ae6f0043d5234beaccfe8e6d4f1cb733b906 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.28.js
+++ b/test/language/future-reserved-words/synchronized.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "synchronized" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.28
 description: Checking if execution of "synchronized=1" succeeds
+info: >
+  `synchronized` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var synchronized = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.29.js b/test/language/future-reserved-words/throws.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.29.js
rename to test/language/future-reserved-words/throws.js
index 712fc0a3bec53cb7a68a1448f14098f82a6e9e56..1724547537310d1a49f23b47321fbdccd561b3d4 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.29.js
+++ b/test/language/future-reserved-words/throws.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "throws" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.29
 description: Checking if execution of "throws=1" succeeds
+info: >
+  `throws` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var throws = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.30.js b/test/language/future-reserved-words/transient.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.30.js
rename to test/language/future-reserved-words/transient.js
index 6de5eed9971db366fb2e6aef43f875d9cc7d9bb0..0e2d96e12e9ce0fc251052158f66c9c88808f942 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.30.js
+++ b/test/language/future-reserved-words/transient.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "transient" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.30
 description: Checking if execution of "transient=1" succeeds
+info: >
+  `transient` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var transient = 1;
diff --git a/test/language/future-reserved-words/S7.6.1.2_A1.31.js b/test/language/future-reserved-words/volatile.js
similarity index 66%
rename from test/language/future-reserved-words/S7.6.1.2_A1.31.js
rename to test/language/future-reserved-words/volatile.js
index 47b065b12efdc4e68fc2de3762cdbead7b7f1fb2..43ef199c487967a49cc69f9e4f367486f5586344 100644
--- a/test/language/future-reserved-words/S7.6.1.2_A1.31.js
+++ b/test/language/future-reserved-words/volatile.js
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-info: The "volatile" token can be used as identifier
+esid: sec-future-reserved-words
 es5id: 7.6.1.2_A1.31
 description: Checking if execution of "volatile=1" succeeds
+info: >
+  `volatile` was removed from the list of future reserved words in ECMAScript 5.
 ---*/
 
 var volatile = 1;
diff --git a/test/language/future-reserved-words/yield-strict-escaped.js b/test/language/future-reserved-words/yield-strict-escaped.js
new file mode 100644
index 0000000000000000000000000000000000000000..9745458248f2a3b715ac7aa2eedf180210fff2c7
--- /dev/null
+++ b/test/language/future-reserved-words/yield-strict-escaped.js
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1-21-s
+description: >
+    7.6 - SyntaxError expected: reserved words used as Identifier
+    Names in UTF8: \u0079ield (yield)
+info: |
+    Identifier : IdentifierName but not ReservedWord
+
+    It is a Syntax Error if this phrase is contained in strict mode code and the
+    StringValue of IdentifierName is: "implements", "interface", "let", "package",
+    "private", "protected", "public", "static", or "yield".
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var \u0079ield = 123;
diff --git a/test/language/future-reserved-words/yield-strict.js b/test/language/future-reserved-words/yield-strict.js
new file mode 100644
index 0000000000000000000000000000000000000000..b81660f1bb6e0189d045a9353762f45904ec41b2
--- /dev/null
+++ b/test/language/future-reserved-words/yield-strict.js
@@ -0,0 +1,20 @@
+// Copyright (c) 2012 Ecma International.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+es5id: 7.6.1.2-5-s
+description: >
+    Strict Mode - SyntaxError is thrown when ReservedWord
+    'yield' occurs in strict mode code
+info: |
+    BindingIdentifier : yield
+
+    It is a Syntax Error if the code matched by this production is contained in strict mode code.
+negative:
+  phase: early
+  type: SyntaxError
+flags: [onlyStrict]
+---*/
+
+var yield = 1;