summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/self-hosting/object-define-hazard.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/self-hosting/object-define-hazard.js')
-rw-r--r--js/src/jit-test/tests/self-hosting/object-define-hazard.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/self-hosting/object-define-hazard.js b/js/src/jit-test/tests/self-hosting/object-define-hazard.js
new file mode 100644
index 0000000000..7a1ccc2243
--- /dev/null
+++ b/js/src/jit-test/tests/self-hosting/object-define-hazard.js
@@ -0,0 +1,18 @@
+// We shouldn't do the wrong thing in the face of an evil Object.prototype
+
+Object.prototype.get = function() {};
+var x = {};
+var setter = function () {};
+x.__defineSetter__("a", setter);
+var desc = Object.getOwnPropertyDescriptor(x, "a");
+assertEq(desc.get, undefined);
+assertEq(desc.set, setter);
+delete Object.prototype.get;
+
+Object.prototype.set = function() {};
+x = {};
+var getter = function () {};
+x.__defineGetter__("a", getter);
+desc = Object.getOwnPropertyDescriptor(x, "a");
+assertEq(desc.set, undefined);
+assertEq(desc.get, getter);