diff --git a/external/contributions/Google/sputniktests/AUTHORS b/external/contributions/Google/sputniktests/AUTHORS
index ee60971666b2c1dd1e7370b50c3400192df36e15..13129a0fc0463cf31e0d5144f40c173ac270c683 100644
--- a/external/contributions/Google/sputniktests/AUTHORS
+++ b/external/contributions/Google/sputniktests/AUTHORS
@@ -5,5 +5,6 @@
 
 Google Inc.
 
-outofhanwell
+outofhanwell <outofhanwell@gmail.com>
+Pedro Del Gallego <pedro.delgallego@gmail.com>
 
diff --git a/external/contributions/Google/sputniktests/LICENSE b/external/contributions/Google/sputniktests/LICENSE
index eaebd2da68668b0a36a8dc413ac5b46a363180ae..97185254489d2139c09f839a8bef277e3c2cc2d5 100644
--- a/external/contributions/Google/sputniktests/LICENSE
+++ b/external/contributions/Google/sputniktests/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2009, Google Inc. All rights reserved.
+Copyright 2009, the Sputnik authors. All rights reserved.
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
 met:
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.1.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.1.js
index c1f8c70f5716d723497a56ea193292055729090a..d37ca0f535eba25b1991c90a43446f9c7940f48e 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.1.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.1.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.1;
  * @section: 7.5.3;
- * @assertion: The "abstract" token can not be used as identifier;
- * @description: Checking if execution of "abstract=1" fails;  
- * @negative
-*/
+ * @assertion: The "abstract" token can be used as identifier;
+ * @description: Checking if execution of "abstract=1" succeeds;
+ */
 
 abstract = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.12.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.12.js
index 5ec2b91bf51148ac0d192eab252599f01e34607e..2fbba1c645eeb983f4852187a13f448af8d2ef71 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.12.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.12.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.12;
  * @section: 7.5.3;
- * @assertion: The "final" token can not be used as identifier;
- * @description: Checking if execution of "final=1" fails;  
- * @negative
-*/
+ * @assertion: The "final" token can be used as identifier;
+ * @description: Checking if execution of "final=1" succeeds;
+ */
 
 final = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.13.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.13.js
index 6b5f8fa0a2c7ad227b727793e3eaac708fdc3070..9e436929a0d3f700be5771b491d2afd627b07c66 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.13.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.13.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.13;
  * @section: 7.5.3;
- * @assertion: The "float" token can not be used as identifier;
- * @description: Checking if execution of "float=1" fails;  
- * @negative
+ * @assertion: The "float" token can be used as identifier;
+ * @description: Checking if execution of "float=1" succeeds;
 */
 
 float = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.14.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.14.js
index 3858d50bd2522cfd62d0650c0bc91ab5bcc21a4a..6399276b5f986b0a0da713f084273b78f8c1ee92 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.14.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.14.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.14;
  * @section: 7.5.3;
- * @assertion: The "goto" token can not be used as identifier;
- * @description: Checking if execution of "goto=1" fails;  
- * @negative
-*/
+ * @assertion: The "goto" token can be used as identifier;
+ * @description: Checking if execution of "goto=1" succeeds;
+ */
 
 goto = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.15.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.15.js
index 4f96e7f881411786e718d92a81aa22cdec133aa1..be59187b7dc8e96d7aaefecc196241e3b413c272 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.15.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.15.js
@@ -4,9 +4,12 @@
 /**
  * @name: S7.5.3_A1.15;
  * @section: 7.5.3;
- * @assertion: The "implements" token can not be used as identifier;
- * @description: Checking if execution of "implements=1" fails;  
+ * @assertion: The "implements" token can not be used as identifier in
+ *             strict code;
+ * @description: Checking if execution of "implements=1" fails in
+ *               strict code;
  * @negative
-*/
+ */
 
-implements = 1;
+"use strict";
+implements = 1;
\ No newline at end of file
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.15ns.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.15ns.js
new file mode 100644
index 0000000000000000000000000000000000000000..939f3fbf12df19f82c838523872f7c588befb758
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.15ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S7.5.3_A1.15;
+ * @section: 7.5.3;
+ * @assertion: The "implements" token can be used as identifier in
+ *             non-strict code;
+ * @description: Checking if execution of "implements=1" succeeds in
+ *               non-strict code;
+ */
+
+new Function('implements = 1');
\ No newline at end of file
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.17.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.17.js
index 926f3121827b9e866dd1e6b125c90eab81dc5187..5e7e72bdead7b58e45074da8740082c3183a9126 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.17.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.17.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.17;
  * @section: 7.5.3;
- * @assertion: The "int" token can not be used as identifier;  
- * @description: Checking if execution of "int=1" fails;
- * @negative
+ * @assertion: The "int" token can be used as identifier;
+ * @description: Checking if execution of "int=1" succeeds;
 */
 
 int = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.18.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.18.js
index 3aa60424fd38db329be734ef4e142a63b9ca1a3d..1ce3a1b13ca7af46c540d924e039e5921c07dd71 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.18.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.18.js
@@ -4,9 +4,12 @@
 /**
  * @name: S7.5.3_A1.18;
  * @section: 7.5.3;
- * @assertion: The "interface" token can not be used as identifier;  
- * @description: Checking if execution of "interface = 1" fails;
+ * @assertion: The "interface" token can not be used as identifier in
+ *             strict code;
+ * @description: Checking if execution of "interface = 1" fails in
+ *               strict code;
  * @negative
-*/
+ */
 
+"use strict";
 interface = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.18ns.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.18ns.js
new file mode 100644
index 0000000000000000000000000000000000000000..787e656467a8e6318af37c9e1a6ed6216717f252
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.18ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S7.5.3_A1.18;
+ * @section: 7.5.3;
+ * @assertion: The "interface" token can be used as identifier in
+ *             non-strict code;
+ * @description: Checking if execution of "interface = 1" succeeds in
+ *               strict code;
+ */
+
+new Function('interface = 1');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.19.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.19.js
index 3270d4f9b426cb9c8c6ba4d62769da7a7fecbcda..1667d3905c47d79c2370382e5046e99286fd44f6 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.19.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.19.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.19;
  * @section: 7.5.3;
- * @assertion: The "long" token can not be used as identifier;
- * @description: Checking if execution of "long=1" fails;  
- * @negative
-*/
+ * @assertion: The "long" token can be used as identifier;
+ * @description: Checking if execution of "long=1" succeeds;
+ */
 
 long = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.2.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.2.js
index 5e613d3ac26b34287e61aca7d2bc0198b3f5e62c..76c3c81c2c3bdc242448bdbb5a160f82581e180d 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.2.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.2.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.2;
  * @section: 7.5.3;
- * @assertion: The "boolean" token can not be used as identifier;
- * @description: Checking if execution of "boolean=1" fails;  
- * @negative
-*/
+ * @assertion: The "boolean" token can be used as identifier;
+ * @description: Checking if execution of "boolean=1" succeeds;
+ */
 
 boolean = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.20.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.20.js
index 09372fd5d8041f11c32925f446c0e6a5ea354759..979fff751e1bb2243c08d013c91283c8ff488dc5 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.20.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.20.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.20;
  * @section: 7.5.3;
- * @assertion: The "native" token can not be used as identifier;
- * @description: Checking if execution of "native=1" fails;  
- * @negative
-*/
+ * @assertion: The "native" token can be used as identifier;
+ * @description: Checking if execution of "native=1" succeeds;
+ */
 
 native = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.21.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.21.js
index 16ddd18c3c3de5a0a293f068631a05e3ef979fab..05e0223eefae50e702e30694c64b6fc7d3acaaf0 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.21.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.21.js
@@ -4,9 +4,11 @@
 /**
  * @name: S7.5.3_A1.21;
  * @section: 7.5.3;
- * @assertion: The "package" token can not be used as identifier;
- * @description: Checking if execution of "package=1" fails;  
+ * @assertion: The "package" token can not be used as identifier in
+ *             strict code;
+ * @description: Checking if execution of "package=1" fails in strict code;
  * @negative
-*/
+ */
 
+"use strict";
 package = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.21ns.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.21ns.js
new file mode 100644
index 0000000000000000000000000000000000000000..65cbd93632b02b60545093984f54921bdfc75ce2
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.21ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S7.5.3_A1.21;
+ * @section: 7.5.3;
+ * @assertion: The "package" token can be used as identifier in
+ *             non-strict code;
+ * @description: Checking if execution of "package=1" succeeds in
+ *               non-strict code;
+ */
+
+new Function('package = 1');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.22.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.22.js
index ce9555e898319bbf99b7f4d646557f3d19d7b27b..96441b0b370cb30b41af602de1d369329dec48cb 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.22.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.22.js
@@ -4,9 +4,11 @@
 /**
  * @name: S7.5.3_A1.22;
  * @section: 7.5.3;
- * @assertion: The "private" token can not be used as identifier;
- * @description: Checking if execution of "private=1" fails;  
+ * @assertion: The "private" token can not be used as identifier in
+ *             strict code;
+ * @description: Checking if execution of "private=1" fails in strict code;
  * @negative
-*/
+ */
 
+"use strict";
 private = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.22ns.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.22ns.js
new file mode 100644
index 0000000000000000000000000000000000000000..e8b1040def4d73e532fe5872707e6f1ac162c10b
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.22ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S7.5.3_A1.22;
+ * @section: 7.5.3;
+ * @assertion: The "private" token can be used as identifier in
+ *             non-strict code;
+ * @description: Checking if execution of "private=1" succeeds in
+ *               non-strict code;
+ */
+
+new Function('private = 1');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.23.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.23.js
index 9d5cdedcf6acd52cff4ab8bc053eb21632b97266..fb272f7bcb1c722f89f68300de460e2faf59e588 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.23.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.23.js
@@ -4,9 +4,12 @@
 /**
  * @name: S7.5.3_A1.23;
  * @section: 7.5.3;
- * @assertion: The "protected" token can not be used as identifier;
- * @description: Checking if execution of "protected=1" fails;  
+ * @assertion: The "protected" token can not be used as identifier in
+ *             strict code;
+ * @description: Checking if execution of "protected=1" fails in
+ * strict code;
  * @negative
-*/
+ */
 
+"use strict";
 protected = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.23ns.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.23ns.js
new file mode 100644
index 0000000000000000000000000000000000000000..19bc9f963dade1b56cb231ca36e2ee67ee32587e
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.23ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S7.5.3_A1.23;
+ * @section: 7.5.3;
+ * @assertion: The "protected" token can be used as identifier in
+ *             non-strict code;
+ * @description: Checking if execution of "protected=1" succeeds in
+ *               non-strict code;
+ */
+
+new Function('protected = 1');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.24.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.24.js
index 3947a856e9684f0c29a94930cb8806ca6dcc140b..ff34269494ece29c3cea9fd230cb9ac459746e19 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.24.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.24.js
@@ -4,9 +4,11 @@
 /**
  * @name: S7.5.3_A1.24;
  * @section: 7.5.3;
- * @assertion: The "public" token can not be used as identifier;
- * @description: Checking if execution of "public=1" fails;  
+ * @assertion: The "public" token can not be used as identifier in
+ *             strict code;
+ * @description: Checking if execution of "public=1" fails in strict code;
  * @negative
-*/
+ */
 
+"use strict";
 public = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.24ns.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.24ns.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd4b780b5291df8588660d64485d49695a6da435
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.24ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S7.5.3_A1.24;
+ * @section: 7.5.3;
+ * @assertion: The "public" token can be used as identifier in
+ *             non-strict code;
+ * @description: Checking if execution of "public=1" succeeds in
+ *               non-strict code;
+ */
+
+new Function('public = 1');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.25.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.25.js
index 3ebe35a0ad2bd4fda06b731e480aed513e3c7d43..10218efbcb4d09e3e61552bdde320cf5bd8e9168 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.25.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.25.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.25;
  * @section: 7.5.3;
- * @assertion: The "short" token can not be used as identifier;
- * @description: Checking if execution of "short=1" fails;  
- * @negative
-*/
+ * @assertion: The "short" token can be used as identifier;
+ * @description: Checking if execution of "short=1" succeeds;
+ */
 
 short = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.26.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.26.js
index b1013c0f904ff7881752c7e734289af99f719b29..a26ad6d7f991e976e3176eb9e624372f7cd21a5c 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.26.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.26.js
@@ -4,9 +4,11 @@
 /**
  * @name: S7.5.3_A1.26;
  * @section: 7.5.3;
- * @assertion: The "static" token can not be used as identifier;
- * @description: Checking if execution of "static=1" fails;  
+ * @assertion: The "static" token can not be used as identifier in
+ *             strict code;
+ * @description: Checking if execution of "static=1" fails in strict code;
  * @negative
 */
 
+"use strict";
 static = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.26ns.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.26ns.js
new file mode 100644
index 0000000000000000000000000000000000000000..9d47c76d70a3ec2fc4bcb394df45b336d0e68e93
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.26ns.js
@@ -0,0 +1,13 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S7.5.3_A1.26;
+ * @section: 7.5.3;
+ * @assertion: The "static" token can be used as identifier in
+ *             non-strict code;
+ * @description: Checking if execution of "static=1" succeeds in
+ *               non-strict code;
+ */
+
+new Function('static = 1');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.28.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.28.js
index b2b6a9833d7e216de6afd7f58cd3eb8a687dc202..d70f857abf1cba4a701b210860a8b08307b5df41 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.28.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.28.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.28;
  * @section: 7.5.3;
- * @assertion: The "synchronized" token can not be used as identifier;
- * @description: Checking if execution of "synchronized=1" fails;  
- * @negative
+ * @assertion: The "synchronized" token can be used as identifier;
+ * @description: Checking if execution of "synchronized=1" succeeds;
 */
 
 synchronized = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.29.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.29.js
index 88a95741238f9c568ce7b7aa5e82be88bb7f056a..6aa1b70e4d166a6ff98a3b56f0623e6b493bf60b 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.29.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.29.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.29;
  * @section: 7.5.3;
- * @assertion: The "throws" token can not be used as identifier;
- * @description: Checking if execution of "throws=1" fails;  
- * @negative
+ * @assertion: The "throws" token can be used as identifier;
+ * @description: Checking if execution of "throws=1" succeeds;
 */
 
 throws = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.3.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.3.js
index 7b2f84c4d0ac8ebd78af6875386860d437906017..5d17b3639fb036614da57d42bddbb2d2fefc7707 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.3.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.3.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.3;
  * @section: 7.5.3;
- * @assertion: The "byte" token can not be used as identifier;
- * @description: Checking if execution of "byte=1" fails;  
- * @negative
-*/
+ * @assertion: The "byte" token can be used as identifier;
+ * @description: Checking if execution of "byte=1" succeeds;
+ */
 
 byte = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.30.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.30.js
index 6d931c83b8ca5ea64b6c0ea001bbcb224693dfc1..23d1e296f56d992daa97794067a5cd0df6913616 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.30.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.30.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.30;
  * @section: 7.5.3;
- * @assertion: The "transient" token can not be used as identifier;
- * @description: Checking if execution of "transient=1" fails;  
- * @negative
-*/
+ * @assertion: The "transient" token can be used as identifier;
+ * @description: Checking if execution of "transient=1" succeeds;
+ */
 
 transient = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.31.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.31.js
index 91fbeedcd3bcc4b1489b38c2e65c262838cf3d5d..67fcbc7228cadafc931ab5ce6490079891ce757d 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.31.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.31.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.31;
  * @section: 7.5.3;
- * @assertion: The "volatile" token can not be used as identifier;
- * @description: Checking if execution of "volatile=1" fails;  
- * @negative
-*/
+ * @assertion: The "volatile" token can be used as identifier;
+ * @description: Checking if execution of "volatile=1" succeeds;
+ */
 
 volatile = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.4.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.4.js
index 0cecea07c95d8417a20c6e6bb9d58f8f9d94045a..589c6b55333eca630f7924582b19df5dad1f713d 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.4.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.4.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.4;
  * @section: 7.5.3;
- * @assertion: The "char" token can not be used as identifier;
- * @description: Checking if execution of "char=1" fails;  
- * @negative
-*/
+ * @assertion: The "char" token can be used as identifier;
+ * @description: Checking if execution of "char=1" succeeds;
+ */
 
 char = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.8.js b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.8.js
index c27966f9f6f2cb71b1ba27194c947035fb2bfa5b..40e509a3e7dcce536dc6b54a8bfe43e5652173a1 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.8.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/07_Lexical_Conventions/7.5_Tokens/7.5.3_Future_Reserved_Words/S7.5.3_A1.8.js
@@ -4,9 +4,8 @@
 /**
  * @name: S7.5.3_A1.8;
  * @section: 7.5.3;
- * @assertion: The "double" token can not be used as identifier;
- * @description: Checking if execution of "double=1" fails;  
- * @negative
-*/
+ * @assertion: The "double" token can be used as identifier;
+ * @description: Checking if execution of "double=1" succeeds;
+ */
 
 double = 1;
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A12.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A12.js
new file mode 100644
index 0000000000000000000000000000000000000000..466ae756a26234e619f5c02f6f025e83d5af2730
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A12.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A12;
+* @section: 15.2.4.2;
+* @assertion: If the this value is undefined, return "[object Undefined]".
+*/
+
+if (Object.prototype.toString.call(undefined) !== "[object Undefined]") {
+  $ERROR('If the this value is undefined, return "[object Undefined]".');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A13.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A13.js
new file mode 100644
index 0000000000000000000000000000000000000000..f095a629bc7dbcb80510c958c43ed153796b50c7
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A13.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A13;
+* @section: 15.2.4.2;
+* @assertion: If the this value is null, return "[object Null]".
+*/
+
+if (Object.prototype.toString.call(null) !== "[object Null]") {
+  $ERROR('If the this value is null, return "[object Null]".');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A14.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A14.js
new file mode 100644
index 0000000000000000000000000000000000000000..0ac2023ee34f4b9d8de1b439066eab7348feaf48
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A14.js
@@ -0,0 +1,14 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A14;
+* @section: 15.2.4.2;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+*/
+
+if (Object.prototype.toString.call(33) !== "[object Number]") {
+  $ERROR('Let O be the result of calling ToObject passing the this ' +
+         'value as the argument.');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A15.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A15.js
new file mode 100644
index 0000000000000000000000000000000000000000..2bcdb6bb915d69f8fc48c89d48cd380ea5a90e92
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A15.js
@@ -0,0 +1,14 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A15;
+* @section: 15.2.4.2;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+*/
+
+if (Object.prototype.toString.call(true) !== "[object Boolean]") {
+  $ERROR('Let O be the result of calling ToObject passing the this ' +
+         'value as the argument.');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A16.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A16.js
new file mode 100644
index 0000000000000000000000000000000000000000..30e0ab548e8e3469f0628ceb9cae890ac952cbd8
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.2_Object.prototype.toString/S15.2.4.2_A16.js
@@ -0,0 +1,14 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.2_A16;
+* @section: 15.2.4.2;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+*/
+
+if (Object.prototype.toString.call('foo') !== "[object String]") {
+  $ERROR('Let O be the result of calling ToObject passing the this ' +
+         'value as the argument.');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A12.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A12.js
new file mode 100644
index 0000000000000000000000000000000000000000..bf78b1aa4c732369235780a492b9c2bf5bcc59d9
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A12.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.3_A12;
+* @section: 15.2.4.3;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.toLocaleString.call(undefined);
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A13.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A13.js
new file mode 100644
index 0000000000000000000000000000000000000000..8bc052aaad4e6461320b330c771b198419606498
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.3_Object.prototype.toLocaleString/S15.2.4.3_A13.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.3_A13;
+* @section: 15.2.4.3;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.toLocaleString.call(null);
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A12.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A12.js
new file mode 100644
index 0000000000000000000000000000000000000000..41f87fbd7fa68abc3b9cc7152d2363f854598ed4
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A12.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.4_A12;
+* @section: 15.2.4.4;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.toLocaleString.call(undefined);
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A13.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A13.js
new file mode 100644
index 0000000000000000000000000000000000000000..fceb7609fdc48a4e92ad0ee37f4b8d074bd3ad77
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A13.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.4_A13;
+* @section: 15.2.4.4;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.toLocaleString.call(null);
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A12.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A12.js
new file mode 100644
index 0000000000000000000000000000000000000000..3211141503d6a0ac8c7655644bfb0c13d1c2db34
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A12.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.5_A12;
+* @section: 15.2.4.5;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.hasOwnProperty.call(undefined, 'foo');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A13.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A13.js
new file mode 100644
index 0000000000000000000000000000000000000000..42a8861c0ecb16f4cd7c517e498cc4c781c72cec
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.5_Object.prototype.hasOwnProperty/S15.2.4.5_A13.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.5_A13;
+* @section: 15.2.4.5;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.hasOwnProperty.call(null, 'foo');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A12.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A12.js
new file mode 100644
index 0000000000000000000000000000000000000000..8572d61fa35ba54a88c509a2c57bbe69e6841ff0
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A12.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.6_A12;
+* @section: 15.2.4.6;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.isPrototypeOf.call(undefined, {});
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A13.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A13.js
new file mode 100644
index 0000000000000000000000000000000000000000..d12da2aaa91d1b861c1b569dc39ff99039a12723
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.6_Object.prototype.isPrototypeOf/S15.2.4.6_A13.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.6_A13;
+* @section: 15.2.4.6;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.isPrototypeOf.call(null, {});
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A12.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A12.js
new file mode 100644
index 0000000000000000000000000000000000000000..71f73443eec07ab265a549ede06ec6563d85cec7
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A12.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.7_A12;
+* @section: 15.2.4.7;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.propertyIsEnumerable.call(undefined, 'foo');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A13.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A13.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee855bdd1660135477cd3d33b07912b0829b93e4
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.7_Object.prototype.propertyIsEnumerable/S15.2.4.7_A13.js
@@ -0,0 +1,12 @@
+// Copyright 2011 the Sputnik authors.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.2.4.7_A13;
+* @section: 15.2.4.7;
+* @assertion: Let O be the result of calling ToObject passing the this
+*             value as the argument.
+* @negative
+*/
+
+Object.prototype.propertyIsEnumerable.call(null, 'foo');
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A1.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A1.js
index 99485b95ad48e06a3a363991e347c0fa83dedcf8..4f46396488604fa92f71d7282e1551b055b252d6 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A1.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A1.js
@@ -4,14 +4,12 @@
 /**
 * @name: S15.3.4_A1;
 * @section: 15.3.4;
-* @assertion: The Function prototype object is itself a Function object (its [[Class]] is "Function");
-* @description: first we delete Function.prototype.toString cause it overrides Object prototype toString. 
-* Object.prototype.toString returns [object+[[class]]+];
+* @assertion: The Function prototype object is itself a Function
+*             object (its [[Class]] is "Function");
+* @description: Object.prototype.toString returns [object+[[Class]]+];
 */
 
-delete Function.prototype.toString;
-
-//CHECK#1
-if (Function.prototype.toString() !== "[object "+"Function"+"]") {
-  $ERROR('#1: The Function prototype object is itself a Function object (its [[Class]] is "Function")');
+if (Object.prototype.toString.call(Function.prototype) !== "[object Function]") {
+  $ERROR('#2: The Function prototype object is itself a Function ' +
+         'object (its [[Class]] is "Function") (15.3.4)');
 }
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A3_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A3_T1.js
index dfe8f8000af271574518573446bc8efe9db8c72e..423bf92f1246201089816ad248dae0dbfdd518ec 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A3_T1.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/S15.3.4_A3_T1.js
@@ -3,19 +3,15 @@
 
 /**
 * @name: S15.3.4_A3_T1;
-* @section: 15.3.4, 15.3.2.1;
-* @assertion: The value of the internal [[Prototype]] property of the Function prototype object is the Object prototype object (15.3.2.1);
+* @section: 15.3.4;
+* @assertion: The value of the internal [[Prototype]] property of the
+*             Function prototype object is the Object prototype object
+*             (15.3.4);
 * @description: Checking prototype of Function.prototype;
 */
 
-//CHECK#1
-if (!(Object.prototype.isPrototypeOf(Function.prototype))) {
-  $ERROR('#1: The value of the internal [[Prototype]] property of the Function prototype object is the Object prototype object (15.3.2.1)');
-}
-
-delete Function.prototype.toString;
-
-//CHECK#2
-if (Function.prototype.toString() !== "[object "+"Function"+"]") {
-  $ERROR('#2: The value of the internal [[Prototype]] property of the Function prototype object is the Object prototype object (15.3.2.1)');
+if (Object.getPrototypeOf(Function.prototype) !== Object.prototype) {
+  $ERROR('#1: The value of the internal [[Prototype]] property of ' +
+         'the Function prototype object is the Object prototype ' +
+         'object (15.3.4)');
 }
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5.1_A1_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5.1_A1_T1.js
index 1b02ea9a553994ff2d77e16dc5914bedecf15fef..9f23a6efce02b7d34f648115b7e6d53e73d4ff4d 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5.1_A1_T1.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5.1_A1_T1.js
@@ -4,7 +4,9 @@
 /**
 * @name: S15.3.5.1_A1_T1;
 * @section: 15.3.5.1;
-* @assertion: The value of the length property is usually an integer that indicates the 'typical' number of arguments expected by the function;
+* @assertion: The value of the length property is usually an integer
+*             that indicates the 'typical' number of arguments
+*             expected by the function;
 * @description: Checking length property of Function("arg1,arg2,arg3", null);
 */
 
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T1.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T1.js
index cca1d9eca29948f75188b42dbb1b8166cc1f836e..51444367a75eeb8256e907ae9f79a18e93690841 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T1.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T1.js
@@ -4,17 +4,12 @@
 /**
 * @name: S15.3.5_A1_T1;
 * @section: 15.3.5;
-* @assertion: The value of the [[Class]] property is "Function" ;
-* @description: We delete Function.prototype.toString method to access Object.prototype.toString method. 
-* For testing use variable f = new Function;
+* @assertion: The value of the [[Class]] property is "Function";
+* @description: For testing use variable f = new Function;
 */
 
-f = new Function;
+var f = new Function;
 
-delete Function.prototype.toString;
-
-//CHECK#1
-if (f.toString() !== "[object "+"Function"+"]") {
+if (Object.prototype.toString.call(f) !== "[object Function]") {
   $ERROR('#1: The value of the [[Class]] property is "Function"');
 }
- 
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T2.js
index eda387dedee1335b8119e60664d5c4f0d6d22f05..893dbc3ae1c8f10617806f9d518035e4ae936b0a 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T2.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.3_Function_Objects/15.3.5_Properties_of_Function_Instances/S15.3.5_A1_T2.js
@@ -5,16 +5,12 @@
 * @name: S15.3.5_A1_T2;
 * @section: 15.3.5;
 * @assertion: The value of the [[Class]] property is "Function" ;
-* @description: We delete Function.prototype.toString method to access Object.prototype.toString method 
-* For testing use variable f = Function();
+* @description: For testing use variable f = Function();
 */
 
-f = Function();
+var f = Function();
 
-delete Function.prototype.toString;
-
-//CHECK#1
-if (f.toString() !== "[object "+"Function"+"]") {
+if (Object.prototype.toString.call(f) !== "[object Function]") {
   $ERROR('#1: The value of the [[Class]] property is "Function"');
 }
- 
+
diff --git a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/S15.4.4_A1.1_T2.js b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/S15.4.4_A1.1_T2.js
index 240c71d7bfefd9efb75647855e543ca2b0c1a6ea..e038e553de6a98c8b37935fdaf00f32c29c92821 100644
--- a/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/S15.4.4_A1.1_T2.js
+++ b/external/contributions/Google/sputniktests/tests/Conformance/15_Native_ECMA_Script_Objects/15.4_Array_Objects/15.4.4_Properties_of_the_Array_Prototype_Object/S15.4.4_A1.1_T2.js
@@ -3,15 +3,13 @@
 
 /**
  * @name: S15.4.4_A1.1_T2;
- * @section: 15.4.4, 11.4.1;
- * @assertion: The value of the internal [[Prototype]] property of 
- * the Array prototype object is the Object prototype object;
- * @description: delete Array.prototype.toString;
- * @strict_mode_negative
+ * @section: 15.4.4;
+ * @assertion:The Array prototype object is itself an array; its
+*             [[Class]] is "Array",
 */
 
 //CHECK#1
-delete Array.prototype.toString;
-if (Array.prototype.toString() !== "[object " + "Array" + "]") {
-  $ERROR('#1: delete Array.prototype.toString; var Array.prototype = Object(); Array.prototype.toString() === "[object " + "Array" + "]". Actual: ' + (Array.prototype.toString()));
+if (Object.prototype.toString.call(Array.prototype) !== "[object Array]") {
+  $ERROR('The Array prototype object is itself an array; its' +
+         '[[Class]] is "Array".');
 }