]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/static-getter-put.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / static-getter-put.js
diff --git a/tests/stress/static-getter-put.js b/tests/stress/static-getter-put.js
new file mode 100644 (file)
index 0000000..aac8f4f
--- /dev/null
@@ -0,0 +1,38 @@
+function shouldBe(actual, expected) {
+    if (actual !== expected)
+        throw new Error('bad value: ' + actual);
+}
+
+function shouldThrow(func, errorMessage) {
+    var errorThrown = false;
+    var error = null;
+    try {
+        func();
+    } catch (e) {
+        errorThrown = true;
+        error = e;
+    }
+    if (!errorThrown)
+        throw new Error('not thrown');
+    if (String(error) !== errorMessage)
+        throw new Error(`bad error: ${String(error)}`);
+}
+
+shouldThrow(function () {
+    'use strict';
+    RegExp.prototype.global = 'Cocoa';
+}, 'TypeError: Attempted to assign to readonly property.');
+
+// Twice.
+shouldThrow(function () {
+    'use strict';
+    RegExp.prototype.global = 'Cocoa';
+}, 'TypeError: Attempted to assign to readonly property.');
+
+(function () {
+    'use strict';
+    delete RegExp.prototype.global;
+    RegExp.prototype.global = 'Cocoa';
+    shouldBe(RegExp.prototype.global, 'Cocoa');
+    shouldBe(/Cappuccino/.global, 'Cocoa');
+}());