Source code
Revision control
Copy as Markdown
Other Tools
function raisesException(exception) {
return function (code) {
eval(code);
};
};
function obj() {
var o = { assertEq: true, y: 1 };
Object.defineProperty(o, 'x', { writable: false });
return o;
}
function in_strict_with(expr) {
return "with(obj()) { (function () { 'use strict'; " + expr + " })(); }";
}
try { assertEq(raisesException(TypeError)(in_strict_with('x++;')), true); } catch (e) {}