blob: 34fc5ee8a1efdfe4b0fba55c03cd8dad7777d4b8 (
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
|
function test(otherGlobal) {
var otherRegExp = otherGlobal.RegExp;
for (let name of ["global", "ignoreCase", "multiline", "sticky", "unicode", "source"]) {
let getter = Object.getOwnPropertyDescriptor(RegExp.prototype, name).get;
assertEq(typeof getter, "function");
// Note: TypeError gets reported from wrong global if cross-compartment,
// so we test both cases.
let ex;
try {
getter.call(otherRegExp.prototype);
} catch (e) {
ex = e;
}
assertEq(ex instanceof TypeError || ex instanceof otherGlobal.TypeError, true);
}
let flagsGetter = Object.getOwnPropertyDescriptor(RegExp.prototype, "flags").get;
assertEq(flagsGetter.call(otherRegExp.prototype), "");
assertEq(RegExp.prototype.toString.call(otherRegExp.prototype), "/(?:)/");
}
test(newGlobal());
test(newGlobal({newCompartment: true}));
if (typeof reportCompare === "function")
reportCompare(0, 0);
|