diff --git a/test/suite/converted/08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A8.js b/test/suite/converted/08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A8.js
new file mode 100644
index 0000000000000000000000000000000000000000..d346fa899147437f4a9168218360e08698ab027a
--- /dev/null
+++ b/test/suite/converted/08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A8.js
@@ -0,0 +1,22 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 08_Types/8.6_The_Object_Type/8.6.2_Internal_Properties_and_Methods/S8.6.2_A8.js
+ * @description It should not be possible to change the [[Prototype]]
+ * of a non-extensible object
+ */
+
+var x = Object.preventExtensions({});
+var y = {};
+try {
+  x.__proto__ = y;
+} catch (err) {
+  // As far as this test is concerned, we allow the above assignment
+  // to fail. This failure does violate the spec and should probably
+  // be tested separately.
+}
+if (Object.getPrototypeOf(x) !== Object.prototype) {
+  $ERROR("Prototype of non-extensible object mutated");
+}
+
diff --git a/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.2_Eval_Code/S10.2.2_A1.2_T11.js b/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.2_Eval_Code/S10.2.2_A1.2_T11.js
index 299a9ab4e7f3765d72b361563874d2774fae0ac7..3e9050a1f3f14420cf7470f44964be63b82ae5eb 100644
--- a/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.2_Eval_Code/S10.2.2_A1.2_T11.js
+++ b/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.2_Eval_Code/S10.2.2_A1.2_T11.js
@@ -7,6 +7,7 @@
  *
  * @path 10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.2_Eval_Code/S10.2.2_A1.2_T11.js
  * @description eval within global execution context
+ * @noStrict
  */
 
 function f(){
@@ -14,14 +15,14 @@ function f(){
   var j;
   str1 = '';
   str2 = '';
-  
+
   for(i in this){
     str1+=i;
   }
-  
+
   eval('for(j in this){\nstr2+=j;\n}');
 
-  return (str1 === str2); 
+  return (str1 === str2);
 
   this.x = 1;
   this.y = 2;
diff --git a/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.2_Eval_Code/S10.4.2.1_A1.js b/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.2_Eval_Code/S10.4.2.1_A1.js
new file mode 100644
index 0000000000000000000000000000000000000000..37c713f6750453e08f18a62ab840610b7c2559a4
--- /dev/null
+++ b/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.2_Eval_Code/S10.4.2.1_A1.js
@@ -0,0 +1,16 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.2_Eval_Code/S10.4.2.1_A1.js
+ * @description Strict indirect eval should not leak top level
+ * declarations into the global scope
+ * @strictOnly
+ */
+
+if (!('foo' in this)) {
+  (1,eval)('"use strict"; var foo = 88;');
+  if ('foo' in this) {
+    $ERROR("Strict indirect eval leaked a top level declaration");
+  }
+}
diff --git a/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.3_Entering_Function_Code/S10.4.3_A1.js b/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.3_Entering_Function_Code/S10.4.3_A1.js
new file mode 100644
index 0000000000000000000000000000000000000000..28407d7c96f814bd2248ca0a5eb64f644663ca0f
--- /dev/null
+++ b/test/suite/converted/10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.3_Entering_Function_Code/S10.4.3_A1.js
@@ -0,0 +1,15 @@
+// Copyright 2011 Google, Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 10_Execution_Contexts/10.4_Establishing_An_Execution_Context/10.4.3_Entering_Function_Code/S10.4.3_A1.js
+ * @description When calling a strict anonymous function as a
+ * function, "this" should be bound to undefined.
+ * @strictOnly
+ */
+
+var that = (function() { return this; })();
+if (that !== undefined) {
+  $ERROR('#1: "this" leaked as: ' + that);
+}
+
diff --git a/test/suite/converted/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A4.js b/test/suite/converted/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A4.js
index a90c105c10b9f7609b0555b01b7c05f987d68ec0..ae289316874c95197650155e61ef015547df60ae 100644
--- a/test/suite/converted/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A4.js
+++ b/test/suite/converted/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A4.js
@@ -9,8 +9,8 @@
  */
 
 //CHECK#1
-obj = new Object();
-ref = obj;
+var obj = new Object();
+var ref = obj;
 delete ref;
 if (typeof obj !== "object") {
   $ERROR('#1: obj = new Object(); ref = obj; delete ref; typeof obj === "object". Actual: ' + (typeof obj));
diff --git a/test/suite/converted/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A5.js b/test/suite/converted/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A5.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a5bca31b8288bcecaa0ef61f7831e76dbf2d72b
--- /dev/null
+++ b/test/suite/converted/11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A5.js
@@ -0,0 +1,24 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * A strict delete should either succeed, returning true, or it
+ * should fail by throwing a TypeError. Under no circumstances
+ * should a strict delete return false.
+ *
+ * @path 11_Expressions/11.4_Unary_Operators/11.4.1_The_delete_Operator/S11.4.1_A5.js
+ * @description See if a strict delete returns false when deleting a
+ * non-standard property.
+ * @strictOnly
+ */
+
+var deleted = 'unassigned';
+try {
+  deleted = delete RegExp.leftContext;
+} catch (err) {
+
+}
+if (deleted === false) {
+  $ERROR('Strict delete returned false');
+}
+
diff --git a/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2.2_A19_T8.js b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2.2_A19_T8.js
index 12cc437e678e2e991a95e10c193ed17585c2c660..41b1fe8a0e425348312b2bd9d04784e55f4036cd 100644
--- a/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2.2_A19_T8.js
+++ b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2.2_A19_T8.js
@@ -26,7 +26,7 @@ with (__obj)
         var  __func = function()
         {
             return a;
-        }
+        };
         break;
     }
 }
diff --git a/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2.3_A1.js b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2.3_A1.js
new file mode 100644
index 0000000000000000000000000000000000000000..89fa057b0f5c1499273326617ab76acd58be5175
--- /dev/null
+++ b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2.3_A1.js
@@ -0,0 +1,48 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 13_Function_Definition/13.2_Creating_Function_Objects/S13.2.3_A1.js
+ * @description check that all poisoning use the [[ThrowTypeError]]
+ * function object.
+ * @strictOnly
+ */
+
+var poison = Object.getOwnPropertyDescriptor(function() {}, 'caller').get;
+
+if (typeof poison !== 'function') {
+  $ERROR("#1: A strict function's .caller should be poisoned with a function");
+}
+var threw = null;
+try {
+  poison();
+} catch (err) {
+  threw = err;
+}
+if (!threw || !(threw instanceof TypeError)) {
+  $ERROR("#2: Poisoned property should throw TypeError");
+}
+
+function checkPoison(obj, name) {
+  var desc = Object.getOwnPropertyDescriptor(obj, name);
+  if (desc.enumerable) {
+    $ERROR("#3: Poisoned " + name + " should not be enumerable");
+  }
+  if (desc.configurable) {
+    $ERROR("#4: Poisoned " + name + " should not be configurable");
+  }
+  if (poison !== desc.get) {
+    $ERROR("#5: " + name + "'s getter not poisoned with same poison");
+  }
+  if (poison !== desc.set) {
+    $ERROR("#6: " + name + "'s setter not poisoned with same poison");
+  }
+}
+
+checkPoison(function() {}, 'caller');
+checkPoison(function() {}, 'arguments');
+checkPoison((function() { return arguments; })(), 'caller');
+checkPoison((function() { return arguments; })(), 'callee');
+checkPoison((function() {}).bind(null), 'caller');
+checkPoison((function() {}).bind(null), 'arguments');
+
diff --git a/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A6_T1.js b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A6_T1.js
new file mode 100644
index 0000000000000000000000000000000000000000..f48c12a8b057c845b68e8f1ee37fc3ddc80a30e7
--- /dev/null
+++ b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A6_T1.js
@@ -0,0 +1,12 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A6_T1.js
+ * @description check if "caller" poisoning poisons
+ * getOwnPropertyDescriptor too
+ * @strictOnly
+ */
+
+Object.getOwnPropertyDescriptor(function(){}, 'caller');
+
diff --git a/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A6_T2.js b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A6_T2.js
new file mode 100644
index 0000000000000000000000000000000000000000..0f8001d4539a9dfd98152a4cd520a4a270fb88e9
--- /dev/null
+++ b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A6_T2.js
@@ -0,0 +1,12 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A6_T2.js
+ * @description check if "arguments" poisoning poisons
+ * getOwnPropertyDescriptor too
+ * @strictOnly
+ */
+
+Object.getOwnPropertyDescriptor(function(){}, 'arguments');
+
diff --git a/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A7_T1.js b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A7_T1.js
new file mode 100644
index 0000000000000000000000000000000000000000..e726974507f1470c790b2a093fdaf20490a874c4
--- /dev/null
+++ b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A7_T1.js
@@ -0,0 +1,13 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A7_T1.js
+ * @description check if "caller" poisoning poisons
+ * hasOwnProperty too
+ * @strictOnly
+ */
+
+(function(){}).hasOwnProperty('caller');
+
+
diff --git a/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A7_T2.js b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A7_T2.js
new file mode 100644
index 0000000000000000000000000000000000000000..4d194528c8a76326f5680ba3dc7bdff0d83e896a
--- /dev/null
+++ b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A7_T2.js
@@ -0,0 +1,13 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A7_T2.js
+ * @description check if "arguments" poisoning poisons
+ * hasOwnProperty too
+ * @strictOnly
+ */
+
+(function(){}).hasOwnProperty('arguments');
+
+
diff --git a/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A8_T1.js b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A8_T1.js
new file mode 100644
index 0000000000000000000000000000000000000000..0b2920c871388ee94314589c8808a1c70101f401
--- /dev/null
+++ b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A8_T1.js
@@ -0,0 +1,13 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A8_T1.js
+ * @description check if "caller" poisoning poisons
+ * "in" too
+ * @strictOnly
+ */
+
+'caller' in function() {};
+
+
diff --git a/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A8_T2.js b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A8_T2.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ab5e1daa8ea7e982858b27fcb621c517c7e9a9a
--- /dev/null
+++ b/test/suite/converted/13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A8_T2.js
@@ -0,0 +1,13 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 13_Function_Definition/13.2_Creating_Function_Objects/S13.2_A8_T2.js
+ * @description check if "arguments" poisoning poisons
+ * "in" too
+ * @strictOnly
+ */
+
+'arguments' in function() {};
+
+
diff --git a/test/suite/converted/15_Native/15.1_The_Global_Object/15.1.2_Function_Properties_of_the_Global_Object/15.1.2.2_parseInt/S15.1.2.2_A5.1_T1.js b/test/suite/converted/15_Native/15.1_The_Global_Object/15.1.2_Function_Properties_of_the_Global_Object/15.1.2.2_parseInt/S15.1.2.2_A5.1_T1.js
index 0ca59a5b29b5ceac8a76167d069d0fb2171aaec1..8b82f600ca743d47b40b7a2bfc973b16cdccbfeb 100644
--- a/test/suite/converted/15_Native/15.1_The_Global_Object/15.1.2_Function_Properties_of_the_Global_Object/15.1.2.2_parseInt/S15.1.2.2_A5.1_T1.js
+++ b/test/suite/converted/15_Native/15.1_The_Global_Object/15.1.2_Function_Properties_of_the_Global_Object/15.1.2.2_parseInt/S15.1.2.2_A5.1_T1.js
@@ -2,35 +2,15 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /**
- * If the length of S is at least 1 and the first character of S is 0,
- * then at the implementation's discretion either let R = 8 or R = 10
+ * parseInt is no longer allowed to treat a leading zero as indicating
+ * octal.  "If radix is undefined or 0, it is assumed to be 10 except
+ * when the number begins with the character pairs 0x or 0X, in which
+ * case a radix of 16 is assumed."
  *
  * @path 15_Native/15.1_The_Global_Object/15.1.2_Function_Properties_of_the_Global_Object/15.1.2.2_parseInt/S15.1.2.2_A5.1_T1.js
- * @description Either R = 8, or R = 10
+ * @description Check if parseInt still accepts octal
  */
 
-//CHECK#
-var res8 = 1;
-var res10 = 1;
-if (parseInt("08") !== parseInt("08", 8)) {
-  res8 = 0;
+if (parseInt('010') !== 10) {
+  $ERROR("parseInt should no longer accept octal");
 }
-if (parseInt("08") !== parseInt("08", 10)) {
-  res10 = 0;
-}
-if (parseInt("09") !== parseInt("09", 8)) {
-  res8 = 0;
-}
-if (parseInt("09") !== parseInt("09", 10)) {
-  res10 = 0;
-}
-if (parseInt("010") !== parseInt("010", 8)) {
-  res8 = 0;
-}
-if (parseInt("010") !== parseInt("010", 10)) {
-  res10 = 0;
-}
-if (res8 + res10 !== 1) {
-  $ERROR('#1: If the length of S is at least 1 and the first character of S is 0, then at the implementation\'s discretion either let R = 8 or R = 10');
-}    
-
diff --git a/test/suite/converted/15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.4_Object.getOwnPropertyNames/S15.2.3.4_A1_T1.js b/test/suite/converted/15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.4_Object.getOwnPropertyNames/S15.2.3.4_A1_T1.js
new file mode 100644
index 0000000000000000000000000000000000000000..2c7eb4ef990cda21d786a1843ccf2da2b6c7e52a
--- /dev/null
+++ b/test/suite/converted/15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.4_Object.getOwnPropertyNames/S15.2.3.4_A1_T1.js
@@ -0,0 +1,22 @@
+// Copyright 2011 Google, Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Object.getOwnProperties and Object.prototype.hasOwnProperty should
+ * agree on what the own properties are.
+ *
+ * @path 15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.4_Object.getOwnPropertyNames/S15.2.3.4_A1_T1.js
+ * @description Check that all the own property names reported by
+ * Object.getOwnPropertyNames on a strict function are names that
+ * hasOwnProperty agrees are own properties.
+ * @strictOnly
+ */
+
+function foo() {}
+
+var names = Object.getOwnPropertyNames(foo);
+for (var i = 0, len = names.length; i < len; i++) {
+  if (!foo.hasOwnProperty(names[i])) {
+    $ERROR('Phantom own property: ' + names[i]);
+  }
+}
diff --git a/test/suite/converted/15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.6_Object.defineProperty/S15.2.3.6_A1.js b/test/suite/converted/15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.6_Object.defineProperty/S15.2.3.6_A1.js
new file mode 100644
index 0000000000000000000000000000000000000000..ea2995f4f28a226956d3c026213f60517b0548b9
--- /dev/null
+++ b/test/suite/converted/15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.6_Object.defineProperty/S15.2.3.6_A1.js
@@ -0,0 +1,36 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If a particular API exists (document.createElement, as happens to
+ * exist in a browser environment), check if the form objects it makes
+ * obey the constraints that even host objects must obey. In this
+ * case, that if defineProperty seems to have successfully installed a
+ * non-configurable getter, that it is still there.
+ *
+ * @path 15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.6_Object.defineProperty/S15.2.3.6_A1.js
+ * @description Do getters on HTMLFormElements disappear?
+ */
+
+function getter() { return 'gotten'; }
+
+if (typeof document !== 'undefined' &&
+    typeof document.createElement === 'function') {
+  var f = document.createElement("form");
+  var refused = false;
+  try {
+    Object.defineProperty(f, 'foo', {
+      get: getter,
+      set: void 0
+    });
+  } catch (err) {
+    // A host object may refuse to install the getter
+    refused = true;
+  }
+  if (!refused) {
+    var desc = Object.getOwnPropertyDescriptor(f, 'foo');
+    if (desc.get !== getter) {
+      $ERROR('Getter on HTMLFormElement disappears');
+    }
+  }
+}
diff --git a/test/suite/converted/15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.6_Object.defineProperty/S15.2.3.6_A2.js b/test/suite/converted/15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.6_Object.defineProperty/S15.2.3.6_A2.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d336dd95fef1d4bedd2592b416115d1db6e24b6
--- /dev/null
+++ b/test/suite/converted/15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.6_Object.defineProperty/S15.2.3.6_A2.js
@@ -0,0 +1,17 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 15_Native/15.2_Object_Objects/15.2.3_Properties_of_the_Object_Constructor/15.2.3.6_Object.defineProperty/S15.2.3.6_A2.js
+ * @description Checks if an inherited accessor property appears to be
+ * an own property.
+ */
+
+var base = {};
+var derived = Object.create(base);
+function getter() { return 'gotten'; }
+Object.defineProperty(base, 'foo', {get: getter});
+if (derived.hasOwnProperty('foo')) {
+  $ERROR('Accessor properties inherit as own properties');
+}
+
diff --git a/test/suite/converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A15.js b/test/suite/converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A15.js
new file mode 100644
index 0000000000000000000000000000000000000000..2882ee4fa1e808d5d52a744630e1bb164920056f
--- /dev/null
+++ b/test/suite/converted/15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_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.
+
+/**
+ * Let O be the result of calling ToObject passing the this value as the argument.
+ *
+ * @path 15_Native/15.2_Object_Objects/15.2.4_Properties_of_the_Object_Prototype_Object/15.2.4.4_Object.prototype.valueOf/S15.2.4.4_A15.js
+ * @description Checking Object.prototype.valueOf when called as a global function.
+ * @negative
+ */
+
+var v = Object.prototype.valueOf;
+v();
+
diff --git a/test/suite/converted/15_Native/15.3_Function_Objects/15.3.3_Properties_of_the_Function_Constructor/15.3.3.1_Function.prototype/S15.3.3.1_A4.js b/test/suite/converted/15_Native/15.3_Function_Objects/15.3.3_Properties_of_the_Function_Constructor/15.3.3.1_Function.prototype/S15.3.3.1_A4.js
new file mode 100644
index 0000000000000000000000000000000000000000..652e04458c5147ad6d99cb4432f4599ed973985e
--- /dev/null
+++ b/test/suite/converted/15_Native/15.3_Function_Objects/15.3.3_Properties_of_the_Function_Constructor/15.3.3.1_Function.prototype/S15.3.3.1_A4.js
@@ -0,0 +1,22 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Detects whether the value of a function's "prototype" property
+ * as seen by normal object operations might deviate from the value
+ * as seem by Object.getOwnPropertyDescriptor
+ *
+ * @path 15_Native/15.3_Function_Objects/15.3.3_Properties_of_the_Function_Constructor/15.3.3.1_Function.prototype/S15.3.3.1_A4.js
+ * @description Checks if reading a function's .prototype directly
+ * agrees with reading it via Object.getOwnPropertyDescriptor, after
+ * having set it by Object.defineProperty.
+ */
+
+function foo() {}
+
+Object.defineProperty(foo, 'prototype', { value: {} });
+if (foo.prototype !==
+    Object.getOwnPropertyDescriptor(foo, 'prototype').value) {
+  $ERROR("A function.prototype's descriptor lies");
+}
+
diff --git a/test/suite/converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A3.js b/test/suite/converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A3.js
new file mode 100644
index 0000000000000000000000000000000000000000..00bf0cb0eda55c6c52f7978c99cddfee1e43bef3
--- /dev/null
+++ b/test/suite/converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A3.js
@@ -0,0 +1,12 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A3.js
+ * @description Function.prototype.bind must exist
+ */
+
+if (!('bind' in Function.prototype)) {
+  $ERROR('Function.prototype.bind is missing');
+}
+
diff --git a/test/suite/converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A4.js b/test/suite/converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A4.js
new file mode 100644
index 0000000000000000000000000000000000000000..ef0686b514224004af20d489e2c990d507fa9ea9
--- /dev/null
+++ b/test/suite/converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A4.js
@@ -0,0 +1,17 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A4.js
+ * @description Function.prototype.bind call the original's internal
+ * [[Call]] method rather than its .apply method.
+ */
+
+function foo() {}
+
+var b = foo.bind(33, 44);
+foo.apply = function() {
+  $ERROR("Function.prototype.bind called original's .apply method");
+};
+b(55, 66);
+
diff --git a/test/suite/converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A5.js b/test/suite/converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A5.js
new file mode 100644
index 0000000000000000000000000000000000000000..87e499e38b4d21648a78b96859d1a3971eb8fcc5
--- /dev/null
+++ b/test/suite/converted/15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A5.js
@@ -0,0 +1,17 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @path 15_Native/15.3_Function_Objects/15.3.4_Properties_of_the_Function_Prototype_Object/15.3.4.5_Function.prototype.bind/S15.3.4.5_A5.js
+ * @description Function.prototype.bind must curry [[Construct]] as
+ * well as [[Call]].
+ */
+
+function construct(f, args) {
+  var bound = Function.prototype.bind.apply(f, [null].concat(args));
+  return new bound();
+}
+var d = construct(Date, [1957, 5, 27]);
+if (Object.prototype.toString.call(d) !== '[object Date]') {
+  $ERROR('Using the Date constructor via .bind did not create a Date.');
+}