summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/ch08/8.12
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/ch08/8.12')
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_1.js17
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_10.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_11.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_12.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_13.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_14.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_15.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_16.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_17.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_18.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_19.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_2.js17
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_20.js17
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_21.js17
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_22.js17
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_23.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_24.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_25.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_26.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_27.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_28.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_29.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_3.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_30.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_31.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_32.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_33.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_34.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_35.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_36.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_37.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_38.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_39.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_4.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_40.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_41.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_42.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_43.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_44.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_45.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_46.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_47.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_48.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_49.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_5.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_6.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_7.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_8.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_9.js18
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/browser.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.1/shell.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A1.js32
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A2.js28
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A3.js60
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.3/browser.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.3/shell.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.4/8.14.4-8-b_1.js19
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.4/8.14.4-8-b_2.js26
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.4/S8.12.4_A1.js17
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.4/browser.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.4/shell.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-3-b_1.js40
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-3-b_2.js44
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-5-b_1.js39
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.5/S8.12.5_A1.js38
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.5/S8.12.5_A2.js49
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.5/browser.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.5/shell.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A1.js20
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A2_T1.js21
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A2_T2.js43
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A3.js44
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.6/browser.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.6/shell.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A1.js29
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A2_T1.js39
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A2_T2.js40
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A3.js49
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.7/browser.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.7/shell.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A1.js26
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A2.js26
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A3.js28
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A4.js24
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.8/browser.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.8/shell.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-b-i_1.js23
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-b-i_2.js25
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-c-i_1.js23
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-c-i_2.js25
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.9/browser.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/8.12.9/shell.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/browser.js0
-rw-r--r--js/src/tests/test262/ch08/8.12/shell.js0
94 files changed, 1774 insertions, 0 deletions
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_1.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_1.js
new file mode 100644
index 000000000..fc417c8d8
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_1.js
@@ -0,0 +1,17 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_1.js
+ * @description Properties - [[HasOwnProperty]] (property does not exist)
+ */
+
+function testcase() {
+
+ var o = {};
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_10.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_10.js
new file mode 100644
index 000000000..88dd4d998
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_10.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_10.js
+ * @description Properties - [[HasOwnProperty]] (writable, configurable, non-enumerable own value property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {value: 42, writable:true, configurable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_11.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_11.js
new file mode 100644
index 000000000..c000d0861
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_11.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_11.js
+ * @description Properties - [[HasOwnProperty]] (writable, configurable, enumerable own value property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {value: 42, writable:true, enumerable:true, configurable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_12.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_12.js
new file mode 100644
index 000000000..41bc3b61b
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_12.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_12.js
+ * @description Properties - [[HasOwnProperty]] (non-writable, non-configurable, non-enumerable inherited value property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {value: 42});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_13.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_13.js
new file mode 100644
index 000000000..a07ec849f
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_13.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_13.js
+ * @description Properties - [[HasOwnProperty]] (non-writable, non-configurable, enumerable inherited value property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {value: 42, enumerable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_14.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_14.js
new file mode 100644
index 000000000..923e64cb2
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_14.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_14.js
+ * @description Properties - [[HasOwnProperty]] (non-writable, configurable, non-enumerable inherited value property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {value: 42, configurable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_15.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_15.js
new file mode 100644
index 000000000..9cfa1640b
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_15.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_15.js
+ * @description Properties - [[HasOwnProperty]] (writable, non-configurable, non-enumerable inherited value property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {value: 42, writable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_16.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_16.js
new file mode 100644
index 000000000..1115e6ee5
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_16.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_16.js
+ * @description Properties - [[HasOwnProperty]] (non-writable, configurable, enumerable inherited value property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {value: 42, configurable:true, enumerable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_17.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_17.js
new file mode 100644
index 000000000..09bf0f6df
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_17.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_17.js
+ * @description Properties - [[HasOwnProperty]] (writable, non-configurable, enumerable inherited value property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {value: 42, writable:true, enumerable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_18.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_18.js
new file mode 100644
index 000000000..14c1f8c65
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_18.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_18.js
+ * @description Properties - [[HasOwnProperty]] (writable, configurable, non-enumerable inherited value property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {value: 42, writable:true, configurable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_19.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_19.js
new file mode 100644
index 000000000..ef0a55559
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_19.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_19.js
+ * @description Properties - [[HasOwnProperty]] (writable, configurable, enumerable inherited value property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {value: 42, writable:true, enumerable:true, configurable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_2.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_2.js
new file mode 100644
index 000000000..0314123aa
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_2.js
@@ -0,0 +1,17 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_2.js
+ * @description Properties - [[HasOwnProperty]] (old style own property)
+ */
+
+function testcase() {
+
+ var o = {foo: 42};
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_20.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_20.js
new file mode 100644
index 000000000..a4cb6f5f2
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_20.js
@@ -0,0 +1,17 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_20.js
+ * @description Properties - [[HasOwnProperty]] (literal own getter property)
+ */
+
+function testcase() {
+
+ var o = { get foo() { return 42;} };
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_21.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_21.js
new file mode 100644
index 000000000..e52f6e691
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_21.js
@@ -0,0 +1,17 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_21.js
+ * @description Properties - [[HasOwnProperty]] (literal own setter property)
+ */
+
+function testcase() {
+
+ var o = { set foo(x) {;} };
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_22.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_22.js
new file mode 100644
index 000000000..c5a836d52
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_22.js
@@ -0,0 +1,17 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_22.js
+ * @description Properties - [[HasOwnProperty]] (literal own getter/setter property)
+ */
+
+function testcase() {
+
+ var o = { get foo() { return 42;}, set foo(x) {;} };
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_23.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_23.js
new file mode 100644
index 000000000..9e2bc5cf1
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_23.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_23.js
+ * @description Properties - [[HasOwnProperty]] (literal inherited getter property)
+ */
+
+function testcase() {
+
+ var base = { get foo() { return 42;} };
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_24.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_24.js
new file mode 100644
index 000000000..2bc8e3264
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_24.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_24.js
+ * @description Properties - [[HasOwnProperty]] (literal inherited setter property)
+ */
+
+function testcase() {
+
+ var base = { set foo(x) {;} };
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_25.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_25.js
new file mode 100644
index 000000000..b735c28d0
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_25.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_25.js
+ * @description Properties - [[HasOwnProperty]] (literal inherited getter/setter property)
+ */
+
+function testcase() {
+
+ var base = { get foo() { return 42;}, set foo(x) {;} };
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_26.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_26.js
new file mode 100644
index 000000000..fb3555966
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_26.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_26.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, non-enumerable own getter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {get: function() {return 42;}});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_27.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_27.js
new file mode 100644
index 000000000..ff95ff414
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_27.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_27.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, enumerable own getter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {get: function() {return 42;}, enumerable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_28.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_28.js
new file mode 100644
index 000000000..5b177ded6
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_28.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_28.js
+ * @description Properties - [[HasOwnProperty]] (configurable, non-enumerable own getter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {get: function() {return 42;}, configurable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_29.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_29.js
new file mode 100644
index 000000000..b9b2bd5ea
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_29.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_29.js
+ * @description Properties - [[HasOwnProperty]] (configurable, enumerable own getter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {get: function() {return 42;}, enumerable:true, configurable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_3.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_3.js
new file mode 100644
index 000000000..742077a2b
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_3.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_3.js
+ * @description Properties - [[HasOwnProperty]] (old style inherited property)
+ */
+
+function testcase() {
+
+ var base = {foo:42};
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_30.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_30.js
new file mode 100644
index 000000000..db063f6f6
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_30.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_30.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, non-enumerable own setter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {set: function() {;}});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_31.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_31.js
new file mode 100644
index 000000000..4555da40e
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_31.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_31.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, enumerable own setter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {set: function() {;}, enumerable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_32.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_32.js
new file mode 100644
index 000000000..7fcff86a2
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_32.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_32.js
+ * @description Properties - [[HasOwnProperty]] (configurable, non-enumerable own setter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {set: function() {;}, configurable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_33.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_33.js
new file mode 100644
index 000000000..fb0294127
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_33.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_33.js
+ * @description Properties - [[HasOwnProperty]] (configurable, enumerable own setter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {set: function() {;}, enumerable:true, configurable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_34.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_34.js
new file mode 100644
index 000000000..e72c99496
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_34.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_34.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, non-enumerable own getter/setter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {get: function() {return 42;}, set: function() {;}});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_35.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_35.js
new file mode 100644
index 000000000..7f56d79ae
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_35.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_35.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, enumerable own getter/setter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {get: function() {return 42;}, set: function() {;}, enumerable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_36.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_36.js
new file mode 100644
index 000000000..5d6a1162b
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_36.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_36.js
+ * @description Properties - [[HasOwnProperty]] (configurable, non-enumerable own getter/setter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {get: function() {return 42;}, set: function() {;}, configurable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_37.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_37.js
new file mode 100644
index 000000000..c58438ef7
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_37.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_37.js
+ * @description Properties - [[HasOwnProperty]] (configurable, enumerable own getter/setter property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {get: function() {return 42;}, set: function() {;}, enumerable:true, configurable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_38.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_38.js
new file mode 100644
index 000000000..986059292
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_38.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_38.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, non-enumerable inherited getter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {get: function() {return 42;}});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_39.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_39.js
new file mode 100644
index 000000000..2ec9acd72
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_39.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_39.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, enumerable inherited getter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {get: function() {return 42;}, enumerable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_4.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_4.js
new file mode 100644
index 000000000..cb67d3f39
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_4.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_4.js
+ * @description Properties - [[HasOwnProperty]] (non-writable, non-configurable, non-enumerable own value property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {value: 42});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_40.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_40.js
new file mode 100644
index 000000000..f0aad260e
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_40.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_40.js
+ * @description Properties - [[HasOwnProperty]] (configurable, non-enumerable inherited getter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {get: function() {return 42;}, configurable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_41.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_41.js
new file mode 100644
index 000000000..b3e3ecdff
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_41.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_41.js
+ * @description Properties - [[HasOwnProperty]] (configurable, enumerable inherited getter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {get: function() {return 42;}, enumerable:true, configurable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_42.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_42.js
new file mode 100644
index 000000000..5f4679697
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_42.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_42.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, non-enumerable inherited setter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {set: function() {;}});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_43.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_43.js
new file mode 100644
index 000000000..52632881f
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_43.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_43.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, enumerable inherited setter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {set: function() {;}, enumerable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_44.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_44.js
new file mode 100644
index 000000000..e76b7ffa2
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_44.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_44.js
+ * @description Properties - [[HasOwnProperty]] (configurable, non-enumerable inherited setter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {set: function() {;}, configurable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_45.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_45.js
new file mode 100644
index 000000000..c1dda50f5
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_45.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_45.js
+ * @description Properties - [[HasOwnProperty]] (configurable, enumerable inherited setter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {set: function() {;}, enumerable:true, configurable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_46.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_46.js
new file mode 100644
index 000000000..2f2cb4a6d
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_46.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_46.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, non-enumerable inherited getter/setter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {get: function() {return 42;}, set: function() {;}});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_47.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_47.js
new file mode 100644
index 000000000..032dcff5b
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_47.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_47.js
+ * @description Properties - [[HasOwnProperty]] (non-configurable, enumerable inherited getter/setter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {get: function() {return 42;}, set: function() {;}, enumerable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_48.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_48.js
new file mode 100644
index 000000000..f7901fbca
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_48.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_48.js
+ * @description Properties - [[HasOwnProperty]] (configurable, non-enumerable inherited getter/setter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {get: function() {return 42;}, set: function() {;}, configurable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_49.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_49.js
new file mode 100644
index 000000000..c43be6a73
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_49.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_49.js
+ * @description Properties - [[HasOwnProperty]] (configurable, enumerable inherited getter/setter property)
+ */
+
+function testcase() {
+
+ var base = {};
+ Object.defineProperty(base, "foo", {get: function() {return 42;}, set: function() {;}, enumerable:true, configurable:true});
+ var o = Object.create(base);
+ return o.hasOwnProperty("foo")===false;
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_5.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_5.js
new file mode 100644
index 000000000..2c6ff4643
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_5.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_5.js
+ * @description Properties - [[HasOwnProperty]] (non-writable, non-configurable, enumerable own value property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {value: 42, enumerable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_6.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_6.js
new file mode 100644
index 000000000..02b14b206
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_6.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_6.js
+ * @description Properties - [[HasOwnProperty]] (non-writable, configurable, non-enumerable own value property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {value: 42, configurable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_7.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_7.js
new file mode 100644
index 000000000..4b7845365
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_7.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_7.js
+ * @description Properties - [[HasOwnProperty]] (writable, non-configurable, non-enumerable own value property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {value: 42, writable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_8.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_8.js
new file mode 100644
index 000000000..d462883fa
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_8.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_8.js
+ * @description Properties - [[HasOwnProperty]] (non-writable, configurable, enumerable own value property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {value: 42, configurable:true, enumerable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_9.js b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_9.js
new file mode 100644
index 000000000..5fe54362c
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/8.12.1-1_9.js
@@ -0,0 +1,18 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.1/8.12.1-1_9.js
+ * @description Properties - [[HasOwnProperty]] (writable, non-configurable, enumerable own value property)
+ */
+
+function testcase() {
+
+ var o = {};
+ Object.defineProperty(o, "foo", {value: 42, writable:true, enumerable:true});
+ return o.hasOwnProperty("foo");
+
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/browser.js b/js/src/tests/test262/ch08/8.12/8.12.1/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/browser.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.1/shell.js b/js/src/tests/test262/ch08/8.12/8.12.1/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.1/shell.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A1.js b/js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A1.js
new file mode 100644
index 000000000..4bf7b4590
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A1.js
@@ -0,0 +1,32 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * [[Get]](P) method should return value when property P does not exist in instance but prototype contain it
+ *
+ * @path ch08/8.12/8.12.3/S8.12.3_A1.js
+ * @description Try to get P when property P does not exist in instance but prototype contain it
+ */
+
+//Establish foo object
+function FooObj(){}; FooObj.prototype.propFoo="some";
+
+// Invoke instance of foo object
+var __obj= new FooObj;
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__obj.propFoo !== "some"){
+ $ERROR('#1: function FooObj(){}; FooObj.prototype.propFoo="some"; var __obj= new FooObj; __obj.propFoo === "some". Actual: ' + (__obj.propFoo));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__obj['propFoo'] !== "some"){
+ $ERROR('#1: function FooObj(){}; FooObj.prototype.propFoo="some"; var __obj= new FooObj; __obj[\'propFoo\'] === "some". Actual: ' + (__obj['propFoo']));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A2.js b/js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A2.js
new file mode 100644
index 000000000..8f261da8e
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A2.js
@@ -0,0 +1,28 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * [[Get]](P) method should return undefined when property P does not exist both in instance and prototype
+ *
+ * @path ch08/8.12/8.12.3/S8.12.3_A2.js
+ * @description Try to get P when property P does not exist both in instance and prototype
+ */
+
+var __obj={};
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__obj.propFoo !== undefined){
+ $ERROR('#1: var __obj={}; __obj.propFoo === undefined. Actual: ' + (__obj.propFoo));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__obj['propFoo'] !== undefined){
+ $ERROR('#2: var __obj={}; __obj[\'propFoo\'] === undefined. Actual: ' + (__obj['propFoo']));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A3.js b/js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A3.js
new file mode 100644
index 000000000..dbe1250ad
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.3/S8.12.3_A3.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[Get]] method of O is called with property name P value of P returns
+ *
+ * @path ch08/8.12/8.12.3/S8.12.3_A3.js
+ * @description Try to get P property P exist in instance
+ */
+
+var __map={shape:"cube", 5:"five", "6":"six"};
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__map.shape !== "cube"){
+ $ERROR('#1: var __map={shape:"cube", 5:"five", "6":"six"}; __map.shape === "cube". Actual: ' + (__map.shape));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__map["shape"] !== "cube"){
+ $ERROR('#2: var __map={shape:"cube", 5:"five", "6":"six"}; __map["shape"] === "cube". Actual: ' + (__map["shape"]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (__map["5"] !== "five"){
+ $ERROR('#3: var __map={shape:"cube", 5:"five", "6":"six"}; __map["5"] === "five". Actual: ' + (__map["5"]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#4
+if (__map[5] !== "five"){
+ $ERROR('#4: var __map={shape:"cube", 5:"five", "6":"six"}; __map[5] === "five". Actual: ' + (__map[5]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#5
+if (__map["6"] !== "six"){
+ $ERROR('#5: var __map={shape:"cube", 5:"five", "6":"six"}; __map["6"] === "six". Actual: ' + (__map["6"]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#6
+if (__map[6] !== "six"){
+ $ERROR('#6: var __map={shape:"cube", 5:"five", "6":"six"}; __map[6] === "six". Actual: ' + (__map[6]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.3/browser.js b/js/src/tests/test262/ch08/8.12/8.12.3/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.3/browser.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.3/shell.js b/js/src/tests/test262/ch08/8.12/8.12.3/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.3/shell.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.4/8.14.4-8-b_1.js b/js/src/tests/test262/ch08/8.12/8.12.4/8.14.4-8-b_1.js
new file mode 100644
index 000000000..38249d056
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.4/8.14.4-8-b_1.js
@@ -0,0 +1,19 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.4/8.14.4-8-b_1.js
+ * @description Non-writable property on a prototype written to.
+ */
+
+function testcase() {
+ function foo() {};
+ Object.defineProperty(foo.prototype, "bar", {value: "unwritable"});
+
+ var o = new foo();
+ o.bar = "overridden";
+ return o.hasOwnProperty("bar")===false && o.bar==="unwritable";
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.4/8.14.4-8-b_2.js b/js/src/tests/test262/ch08/8.12/8.12.4/8.14.4-8-b_2.js
new file mode 100644
index 000000000..f6b5f1c14
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.4/8.14.4-8-b_2.js
@@ -0,0 +1,26 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.4/8.14.4-8-b_2.js
+ * @description Non-writable property on a prototype written to in strict mode.
+ * @onlyStrict
+ */
+
+function testcase() {
+ "use strict";
+
+ function foo() {};
+ Object.defineProperty(foo.prototype, "bar", {value: "unwritable"});
+
+ var o = new foo();
+ try {
+ o.bar = "overridden";
+ return false;
+ } catch(e) {
+ return (e instanceof TypeError) && (o.bar==="unwritable");
+ }
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.4/S8.12.4_A1.js b/js/src/tests/test262/ch08/8.12/8.12.4/S8.12.4_A1.js
new file mode 100644
index 000000000..cbe11f0f7
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.4/S8.12.4_A1.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If the property has the ReadOnly attribute, [[CanPut]](P) return false
+ *
+ * @path ch08/8.12/8.12.4/S8.12.4_A1.js
+ * @description Try put other value for Math.E property
+ * @noStrict
+ */
+
+var __e = Math.E;
+Math.E = 1;
+if (Math.E !== __e){
+ $ERROR('#1: __e = Math.E; Math.E = 1; Math.E === __e. Actual: ' + (Math.E));
+}
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.4/browser.js b/js/src/tests/test262/ch08/8.12/8.12.4/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.4/browser.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.4/shell.js b/js/src/tests/test262/ch08/8.12/8.12.4/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.4/shell.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-3-b_1.js b/js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-3-b_1.js
new file mode 100644
index 000000000..0ed875ef4
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-3-b_1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.5/8.12.5-3-b_1.js
+ * @description Changing the value of a data property should not affect it's non-value property descriptor attributes.
+ */
+
+
+function testcase() {
+ var origReduce = Array.prototype.reduce;
+ var origDesc = Object.getOwnPropertyDescriptor(Array.prototype, "reduce");
+ var newDesc;
+
+ try {
+ Array.prototype.reduce = function () {;};
+ newDesc = Object.getOwnPropertyDescriptor(Array.prototype, "reduce");
+ var descArray = [origDesc, newDesc];
+
+ for (var j in descArray) { //Ensure no attributes are magically added to newDesc
+ for (var i in descArray[j]) {
+ if (i==="value") {
+ if (origDesc[i]===newDesc[i]) {
+ return false;
+ }
+ }
+ else if (origDesc[i]!==newDesc[i]) {
+ return false;
+ }
+ }
+ }
+ return true;
+
+ } finally {
+ Array.prototype.reduce = origReduce;
+ }
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-3-b_2.js b/js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-3-b_2.js
new file mode 100644
index 000000000..f6b760ce3
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-3-b_2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.5/8.12.5-3-b_2.js
+ * @description Changing the value of a data property should not affect it's non-value property descriptor attributes.
+ */
+
+
+function testcase() {
+ var tempObj = {};
+
+ Object.defineProperty(tempObj, "reduce", { value:456, enumerable:false, writable:true});
+ var origReduce = tempObj.reduce;
+ var origDesc = Object.getOwnPropertyDescriptor(tempObj, "reduce");
+
+ var newDesc;
+
+ try {
+ tempObj.reduce = 123;
+ newDesc = Object.getOwnPropertyDescriptor(tempObj, "reduce");
+ var descArray = [origDesc, newDesc];
+
+ for (var j in descArray) {
+ for (var i in descArray[j]) {
+ if (i==="value") {
+ if (origDesc[i]===newDesc[i]) {
+ return false;
+ }
+ }
+ else if (origDesc[i]!==newDesc[i]) {
+ return false;
+ }
+ }
+ }
+ return true;
+
+ } finally {
+ tempObj.reduce = origReduce;
+ }
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-5-b_1.js b/js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-5-b_1.js
new file mode 100644
index 000000000..b3c013ef5
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.5/8.12.5-5-b_1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.5/8.12.5-5-b_1.js
+ * @description Changing the value of an accessor property should not affect it's property descriptor attributes.
+ */
+
+
+function testcase() {
+ var tempObj = {};
+
+ Object.defineProperty(tempObj, "reduce", { get: function() {return 456;}, enumerable:false, set: function() {;}});
+ var origReduce = tempObj.reduce;
+ var origDesc = Object.getOwnPropertyDescriptor(tempObj, "reduce");
+
+ var newDesc;
+
+ try {
+ tempObj.reduce = 123;
+ newDesc = Object.getOwnPropertyDescriptor(tempObj, "reduce");
+ var descArray = [origDesc, newDesc];
+
+ for (var j in descArray) {
+ for (var i in descArray[j]) {
+ if (origDesc[i]!==newDesc[i]) {
+ return false;
+ }
+ }
+ }
+ return tempObj.reduce===456;
+
+ } finally {
+ tempObj.reduce = origReduce;
+ }
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.5/S8.12.5_A1.js b/js/src/tests/test262/ch08/8.12/8.12.5/S8.12.5_A1.js
new file mode 100644
index 000000000..e6f4bba20
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.5/S8.12.5_A1.js
@@ -0,0 +1,38 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[Put]] method of O is called with property P and value V,
+ * and If O doesn't have a property with name P, then
+ * creates a property with name P, set its value to V and give it empty attributes
+ *
+ * @path ch08/8.12/8.12.5/S8.12.5_A1.js
+ * @description Put to not existent properties
+ */
+
+var __map={}; __map[1]="one"; __map["two"]=2; __map["3"]="tre";
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__map[1] !== "one") {
+ $ERROR('#1: var __map={}; __map[1]="one"; __map["two"]=2; __map["3"]="tre"; __map[1] === "one". Actual: ' + (__map[1]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__map["two"] !== 2) {
+ $ERROR('#2: var __map={}; __map[1]="one"; __map["two"]=2; __map["3"]="tre"; __map["two"] === 2. Actual: ' + (__map["two"]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (__map["3"] !== "tre") {
+ $ERROR('#3: var __map={}; __map[1]="one"; __map["two"]=2; __map["3"]="tre"; __map["3"] === "tre". Actual: ' + (__map["3"]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.5/S8.12.5_A2.js b/js/src/tests/test262/ch08/8.12/8.12.5/S8.12.5_A2.js
new file mode 100644
index 000000000..02f67e0b8
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.5/S8.12.5_A2.js
@@ -0,0 +1,49 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[Put]] method of O is called with property P and value V,
+ * then set the value of the property to V. The attributes of the property are not changed
+ *
+ * @path ch08/8.12/8.12.5/S8.12.5_A2.js
+ * @description Put to existent properties
+ */
+
+var _map={1:"one",two:2};
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+_map[1]="uno";
+if (_map[1] !== "uno") {
+ $ERROR('#1: var _map={1:"one",two:2}; _map[1]="uno"; _map[1] === "uno". Actual: ' + (_map[1]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+_map["1"]=1;
+if (_map[1] !== 1) {
+ $ERROR('#2: var _map={1:"one",two:2}; _map[1]="uno"; _map["1"]=1; _map[1] === 1. Actual: ' + (_map[1]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+_map["two"]="two";
+if (_map["two"] !== "two") {
+ $ERROR('#3: var _map={1:"one",two:2}; _map[1]="uno"; _map["1"]=1; _map["two"]="two"; _map["two"] === "two". Actual: ' + (_map["two"]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#4
+_map.two="duo";
+if (_map.two !== "duo") {
+ $ERROR('#4: var _map={1:"one",two:2}; _map[1]="uno"; _map["1"]=1; _map["two"]="two"; _map.two="duo"; _map.two === "duo". Actual: ' + (_map.two));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.5/browser.js b/js/src/tests/test262/ch08/8.12/8.12.5/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.5/browser.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.5/shell.js b/js/src/tests/test262/ch08/8.12/8.12.5/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.5/shell.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A1.js b/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A1.js
new file mode 100644
index 000000000..20a2676f7
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A1.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[HasProperty]] method of O is called with property name P and if O has a property with name P, return true
+ *
+ * @path ch08/8.12/8.12.6/S8.12.6_A1.js
+ * @description Try find existent property of any Object
+ */
+
+var __obj={fooProp:"fooooooo"};
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (!("fooProp" in __obj)) {
+ $ERROR('#1: var __obj={fooProp:"fooooooo"}; "fooProp" in __obj');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A2_T1.js b/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A2_T1.js
new file mode 100644
index 000000000..4a2eac8a3
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A2_T1.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[HasProperty]] method of O is called with property name P and if O has not a property with name P
+ * then If the [[Prototype]] of O is null, return false or call the [[HasProperty]] method of [[Prototype]] with property name P
+ *
+ * @path ch08/8.12/8.12.6/S8.12.6_A2_T1.js
+ * @description Try find not existent property of any Object
+ */
+
+var __obj={};
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (!("valueOf" in __obj)) {
+ $ERROR('#1: var __obj={}; "valueOf" in __obj');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A2_T2.js b/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A2_T2.js
new file mode 100644
index 000000000..536b8ceb4
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A2_T2.js
@@ -0,0 +1,43 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[HasProperty]] method of O is called with property name P and if O has not a property with name P
+ * then If the [[Prototype]] of O is null, return false or call the [[HasProperty]] method of [[Prototype]] with property name P
+ *
+ * @path ch08/8.12/8.12.6/S8.12.6_A2_T2.js
+ * @description Try find not existent property of any Object, but existent property of this Object prototype
+ */
+
+var __proto={phylum:"avis"};
+
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (!("valueOf" in __proto)) {
+ $ERROR('#1: var __proto={phylum:"avis"}; "valueOf" in __proto');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+function Robin(){this.name="robin"};
+Robin.prototype=__proto;
+
+var __my__robin = new Robin;
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (!("phylum" in __my__robin)) {
+ $ERROR('#2: var __proto={phylum:"avis"}; function Robin(){this.name="robin"}; Robin.prototype=__proto; var __my__robin = new Robin; "phylum" in __my__robin');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (__my__robin.hasOwnProperty("phylum")) {
+ $ERROR('#3: var __proto={phylum:"avis"}; function Robin(){this.name="robin"}; Robin.prototype=__proto; var __my__robin = new Robin; __my__robin.hasOwnProperty("phylum") === false. Actual: ' + (__my__robin.hasOwnProperty("phylum")));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A3.js b/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A3.js
new file mode 100644
index 000000000..c2c34fa2c
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.6/S8.12.6_A3.js
@@ -0,0 +1,44 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * [[hasProperty]] is sensitive to property existence but [[Get]] is not
+ *
+ * @path ch08/8.12/8.12.6/S8.12.6_A3.js
+ * @description Use [[hasProperty]] and [[Get]] for existent and not existent properties
+ */
+
+var __obj={}; __obj.hole=undefined;
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__obj.hole !== undefined) {
+ $ERROR('#1: var __obj={}; __obj.hole=undefined; __obj.hole === undefined. Actual: ' + (__obj.hole));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__obj.notexist !== undefined) {
+ $ERROR('#2: var __obj={}; __obj.hole=undefined; __obj.notexist === undefined. Actual: ' + (__obj.notexist));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (!("hole" in __obj)) {
+ $ERROR('#3: var __obj={}; __obj.hole=undefined; "hole" in __obj');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#4
+if (("notexist" in __obj)) {
+ $ERROR('#4: var __obj={}; __obj.hole=undefined; "notexist" in __obj');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.6/browser.js b/js/src/tests/test262/ch08/8.12/8.12.6/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.6/browser.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.6/shell.js b/js/src/tests/test262/ch08/8.12/8.12.6/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.6/shell.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A1.js b/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A1.js
new file mode 100644
index 000000000..b6944fd48
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A1.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[Delete]] method of O is called with property name P,
+ * and If the property has the DontDelete attribute, return false
+ *
+ * @path ch08/8.12/8.12.7/S8.12.7_A1.js
+ * @description Try to delete Math.E, that has the DontDelete attribute
+ * @noStrict
+ */
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (delete Math.E !== false){
+ $ERROR('#1: delete Math.E === false. Actual: ' + (delete Math.E));
+};
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (Math.E === undefined){
+ $ERROR('#2: delete Math.E; Math.E !== undefined');
+};
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A2_T1.js b/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A2_T1.js
new file mode 100644
index 000000000..6c416b525
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A2_T1.js
@@ -0,0 +1,39 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[Delete]] method of O is called with property name P,
+ * and if O doesn't have a property with name P, return true
+ *
+ * @path ch08/8.12/8.12.7/S8.12.7_A2_T1.js
+ * @description Try to delete not existent properties
+ */
+
+var __color__map = {};
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (delete __color__map.red !== true){
+ $ERROR('#1: var __color__map = {}; delete __color__map.red === true. Actual: ' + (delete __color__map.red));
+};
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (delete __color__map["green"] !== true){
+ $ERROR('#2: var __color__map = {}; delete __color__map["green"] === true. Actual: ' + (delete __color__map["green"]));
+};
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+var blue = 1;
+if (delete __color__map[blue] !== true){
+ $ERROR('#3: var __color__map = {}; var blue = 1; delete __color__map[blue] === true. Actual: ' + (delete __color__map[blue]));
+};
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A2_T2.js b/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A2_T2.js
new file mode 100644
index 000000000..e3182463a
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A2_T2.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[Delete]] method of O is called with property name P,
+ * and if O doesn't have a property with name P, return true
+ *
+ * @path ch08/8.12/8.12.7/S8.12.7_A2_T2.js
+ * @description Try to delete not existent properties of O, but existent property of prototype
+ */
+
+function Palette(){};
+Palette.prototype = {red:0xFF0000, green:0x00FF00};
+var __palette = new Palette;
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__palette.red !== 0xFF0000){
+ $ERROR('#1: function Palette(){}; Palette.prototype = {red:0xFF0000, green:0x00FF00}; __palette = new Palette; __palette.red === 0xFF0000. Actual: ' + (__palette.red));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (delete __palette.red !== true) {
+ $ERROR('#2 function Palette(){}; Palette.prototype = {red:0xFF0000, green:0x00FF00}; __palette = new Palette; delete __palette.red === true. Actual: ' + (delete __palette.red));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (__palette.red !== 0xFF0000){
+ $ERROR('#3: function Palette(){}; Palette.prototype = {red:0xFF0000, green:0x00FF00}; __palette = new Palette; __palette.red === 0xFF0000. Actual: ' + (__palette.red));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A3.js b/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A3.js
new file mode 100644
index 000000000..c9abe19d9
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.7/S8.12.7_A3.js
@@ -0,0 +1,49 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * When the [[Delete]] method of O is called with property name P,
+ * removes the property with name P from O and return true
+ *
+ * @path ch08/8.12/8.12.7/S8.12.7_A3.js
+ * @description Delete existent properties
+ */
+
+var BLUE_NUM=1;
+var BLUE_STR="1";
+var YELLOW_NUM=2;
+var YELLOW_STR="2";
+var __color__map = {red:0xFF0000, BLUE_NUM:0x0000FF, green:0x00FF00, YELLOW_STR:0xFFFF00};
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (delete __color__map[YELLOW_NUM] !== true){
+ $ERROR('#1: var BLUE_NUM=1; var BLUE_STR="1"; var YELLOW_NUM=2; var YELLOW_STR="2"; var __color__map = {red:0xFF0000, BLUE_NUM:0x0000FF, green:0x00FF00, YELLOW_STR:0xFFFF00}; delete __color__map[YELLOW_NUM] === true;');
+};
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__color__map[YELLOW_STR] !== undefined) {
+ $ERROR('#2: var BLUE_NUM=1; var BLUE_STR="1"; var YELLOW_NUM=2; var YELLOW_STR="2"; var __color__map = {red:0xFF0000, BLUE_NUM:0x0000FF, green:0x00FF00, YELLOW_STR:0xFFFF00}; delete __color__map[YELLOW_NUM]; __color__map[YELLOW_STR] === undefined. Actual: ' + (__color__map[YELLOW_STR]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (delete __color__map[BLUE_STR] !== true){
+ $ERROR('#3: var BLUE_NUM=1; var BLUE_STR="1"; var YELLOW_NUM=2; var YELLOW_STR="2"; var __color__map = {red:0xFF0000, BLUE_NUM:0x0000FF, green:0x00FF00, YELLOW_STR:0xFFFF00}; delete __color__map[BLUE_STR] === true. Actual: ' + (delete __color__map[BLUE_STR]));
+};
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#4
+if (__color__map[BLUE_NUM] !== undefined) {
+ $ERROR('#4: var BLUE_NUM=1; var BLUE_STR="1"; var YELLOW_NUM=2; var YELLOW_STR="2"; var __color__map = {red:0xFF0000, BLUE_NUM:0x0000FF, green:0x00FF00, YELLOW_STR:0xFFFF00}; delete __color__map[BLUE_STR]; __color__map[BLUE_NUM] === undefined. Actual: ' + (__color__map[BLUE_NUM]));
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.7/browser.js b/js/src/tests/test262/ch08/8.12/8.12.7/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.7/browser.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.7/shell.js b/js/src/tests/test262/ch08/8.12/8.12.7/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.7/shell.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A1.js b/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A1.js
new file mode 100644
index 000000000..9fa13f537
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A1.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * This should generate a TypeError,
+ * Cause we overload toString method so it return non Primitive value
+ * See ECMA reference at http://bugzilla.mozilla.org/show_bug.cgi?id=167325
+ *
+ * @path ch08/8.12/8.12.8/S8.12.8_A1.js
+ * @description Try to overload toString method
+ */
+
+try
+{
+ var __obj = {toString: function() {return new Object();}}
+ String(__obj);
+ $ERROR('#1.1: var __obj = {toString: function() {return new Object();}}; String(__obj) throw TypeError. Actual: ' + (String(__obj)));
+}
+catch(e)
+{
+ if ((e instanceof TypeError) !== true) {
+ $ERROR('#1.2: var __obj = {toString: function() {return new Object();}}; String(__obj) throw TypeError. Actual: ' + (e));
+ }
+}
+
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A2.js b/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A2.js
new file mode 100644
index 000000000..1a4cd4f91
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A2.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * This should generate no TypeError,
+ * Cause we overload toString method so it return non Primitive value
+ * but we overloaded valueOf method too.
+ * See ECMA reference at http://bugzilla.mozilla.org/show_bug.cgi?id=167325
+ *
+ * @path ch08/8.12/8.12.8/S8.12.8_A2.js
+ * @description Try to overload toString, that returned new Object, and valueOf methods
+ */
+
+try
+{
+ var __obj = {toString: function() {return new Object();}, valueOf: function() {return 1;}}
+ if (String(__obj) !== "1") {
+ $ERROR('#1.1: var __obj = {toString: function() {return new Object();}, valueOf: function() {return 1;}}; String(__obj) === "1". Actual: ' + (String(__obj)));
+ }
+}
+catch(e)
+{
+ $ERROR('#1.2: var __obj = {toString: function() {return new Object();}, valueOf: function() {return 1;}}; String(__obj) === "1". Actual: ' + (e));
+}
+
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A3.js b/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A3.js
new file mode 100644
index 000000000..a54d3c2a8
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A3.js
@@ -0,0 +1,28 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * We overload valueOf method so it return non Primitive value
+ * Thus [[DefaultValue]] must return Object.toString() value
+ *
+ * @path ch08/8.12/8.12.8/S8.12.8_A3.js
+ * @description Try to overload toString method, that returned Primitive, and valueOf method, that returned new Object
+ */
+
+try
+{
+ var __obj = {toString: function() {return "1"}, valueOf: function() {return new Object();}}
+ if (Number(__obj) !== 1) {
+ $ERROR('#1.1: var __obj = {toNumber: function() {return "1"}, valueOf: function() {return new Object();}}; Number(__obj) === 1. Actual: ' + (Number(__obj)));
+ }
+}
+catch(e)
+{
+ $ERROR('#1.2: var __obj = {toNumber: function() {return "1"}, valueOf: function() {return new Object();}}; Number(__obj) === 1. Actual: ' + (e));
+}
+
+
+
+
+
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A4.js b/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A4.js
new file mode 100644
index 000000000..cec14497b
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.8/S8.12.8_A4.js
@@ -0,0 +1,24 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * We overload valueOf method so it return non Primitive value and toString method so it return non Primitive value too
+ * Thus [[DefaultValue]] must generate TypeError error
+ *
+ * @path ch08/8.12/8.12.8/S8.12.8_A4.js
+ * @description Try to overload toString and valueOf methods, they returned new Objects
+ */
+
+try
+{
+ var __obj = {valueOf:function(){return new Object;},toString: function() {return new Object();}}
+ Number(__obj);
+ $ERROR('#1.1: var __obj = {valueOf:function(){return new Object;},toNumber: function() {return new Object();}}; Number(__obj) throw TypeError. Actual: ' + (Number(__obj)));
+}
+catch(e)
+{
+ if ((e instanceof TypeError) !== true) {
+ $ERROR('#1.2: var __obj = {valueOf:function(){return new Object;},toNumber: function() {return new Object();}}; Number(__obj) throw TypeError. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch08/8.12/8.12.8/browser.js b/js/src/tests/test262/ch08/8.12/8.12.8/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.8/browser.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.8/shell.js b/js/src/tests/test262/ch08/8.12/8.12.8/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.8/shell.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-b-i_1.js b/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-b-i_1.js
new file mode 100644
index 000000000..84ea47532
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-b-i_1.js
@@ -0,0 +1,23 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.9/8.12.9-9-b-i_1.js
+ * @description Redefine a configurable data property to be an accessor property on a newly non-extensible object
+ */
+
+
+function testcase() {
+ var o = {};
+ Object.defineProperty(o, "foo",
+ { value: "hello",
+ configurable: true});
+ Object.preventExtensions(o);
+ Object.defineProperty(o, "foo", { get: function() { return 5;} });
+
+ var fooDescrip = Object.getOwnPropertyDescriptor(o, "foo");
+ return o.foo===5 && fooDescrip.get!==undefined && fooDescrip.set===undefined && fooDescrip.value===undefined && fooDescrip.configurable===true && fooDescrip.enumerable===false && fooDescrip.writable===undefined;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-b-i_2.js b/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-b-i_2.js
new file mode 100644
index 000000000..f7ba3048a
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-b-i_2.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.9/8.12.9-9-b-i_2.js
+ * @description Redefine a configurable data property to be an accessor property on a newly non-extensible object
+ */
+
+
+function testcase() {
+ var o = {};
+ Object.defineProperty(o, "foo",
+ { value: "hello",
+ configurable: true,
+ enumerable: true,
+ writable: true});
+ Object.preventExtensions(o);
+ Object.defineProperty(o, "foo", { get: function() { return 5;} });
+
+ var fooDescrip = Object.getOwnPropertyDescriptor(o, "foo");
+ return o.foo===5 && fooDescrip.get!==undefined && fooDescrip.set===undefined && fooDescrip.value===undefined && fooDescrip.configurable===true && fooDescrip.enumerable===true && fooDescrip.writable===undefined;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-c-i_1.js b/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-c-i_1.js
new file mode 100644
index 000000000..bef7ddc7d
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-c-i_1.js
@@ -0,0 +1,23 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.9/8.12.9-9-c-i_1.js
+ * @description Redefine a configurable accessor property to be a data property on a non-extensible object
+ */
+
+
+function testcase() {
+ var o = {};
+ Object.defineProperty(o, "foo",
+ { get: function() { return 5;},
+ configurable: true});
+ Object.preventExtensions(o);
+ Object.defineProperty(o, "foo", { value: "hello"});
+
+ var fooDescrip = Object.getOwnPropertyDescriptor(o, "foo");
+ return o.foo==="hello" && fooDescrip.get===undefined && fooDescrip.set===undefined && fooDescrip.value==="hello" && fooDescrip.configurable===true && fooDescrip.enumerable===false && fooDescrip.writable===false;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-c-i_2.js b/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-c-i_2.js
new file mode 100644
index 000000000..0c4833ab6
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.9/8.12.9-9-c-i_2.js
@@ -0,0 +1,25 @@
+/// Copyright (c) 2012 Ecma International. All rights reserved.
+/// Ecma International makes this code available under the terms and conditions set
+/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+/// "Use Terms"). Any redistribution of this code must retain the above
+/// copyright and this notice and otherwise comply with the Use Terms.
+/**
+ * @path ch08/8.12/8.12.9/8.12.9-9-c-i_2.js
+ * @description Redefine a configurable accessor property to be a data property on a non-extensible object
+ */
+
+
+function testcase() {
+ var o = {};
+ Object.defineProperty(o, "foo",
+ { get: function() { return 5;},
+ configurable: true});
+ Object.preventExtensions(o);
+ Object.defineProperty(o, "foo",
+ { value: "hello",
+ writable: true});
+
+ var fooDescrip = Object.getOwnPropertyDescriptor(o, "foo");
+ return o.foo==="hello" && fooDescrip.get===undefined && fooDescrip.set===undefined && fooDescrip.value==="hello" && fooDescrip.configurable===true && fooDescrip.enumerable===false && fooDescrip.writable===true;
+}
+runTestCase(testcase);
diff --git a/js/src/tests/test262/ch08/8.12/8.12.9/browser.js b/js/src/tests/test262/ch08/8.12/8.12.9/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.9/browser.js
diff --git a/js/src/tests/test262/ch08/8.12/8.12.9/shell.js b/js/src/tests/test262/ch08/8.12/8.12.9/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/8.12.9/shell.js
diff --git a/js/src/tests/test262/ch08/8.12/browser.js b/js/src/tests/test262/ch08/8.12/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/browser.js
diff --git a/js/src/tests/test262/ch08/8.12/shell.js b/js/src/tests/test262/ch08/8.12/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch08/8.12/shell.js