blob: 13837810042523a9e77c81f454446ab80590dd63 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// Exceptions thrown by obj.defineProperties are copied into the debugger compartment.
var g = newGlobal({newCompartment: true});
var dbg = new Debugger;
var gw = dbg.addDebuggee(g);
function test(objexpr, descs) {
var exca, excb;
g.eval("obj = (" + objexpr + ");");
var gobjw = gw.getOwnPropertyDescriptor("obj").value;
try {
gobjw.defineProperties(descs);
} catch (exc) {
exca = exc;
}
var indirectEval = eval;
var obj = indirectEval("(" + objexpr + ");");
try {
Object.defineProperties(obj, descs);
} catch (exc) {
excb = exc;
}
assertEq(Object.getPrototypeOf(exca), Object.getPrototypeOf(excb));
assertEq(exca.message, excb.message);
assertEq(typeof exca.fileName, "string");
assertEq(typeof exca.stack, "string");
}
test("Object.create(null, {p: {value: 1}})", {p: {value: 2}});
test("({})", {x: {get: 'bad'}});
|