X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/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 index 0000000..aac8f4f --- /dev/null +++ b/tests/stress/static-getter-put.js @@ -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'); +}());