summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/realms/bug1610189.js
blob: c65f8120f82d861969ee6a160f7e95f1c4e600b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var g = newGlobal({sameCompartmentAs: this});
var newTarget = g.Function();
newTarget.prototype = undefined;

// Reflect.construct returns an object in the current realm
// but its prototype is g's Array.prototype.
var arr1 = Reflect.construct(Array, [], newTarget);
assertEq(objectGlobal(arr1), this);
assertEq(arr1.__proto__, g.Array.prototype);

// Calling cross-realm slice creates an object in that realm.
for (var i = 0; i < 10; i++) {
    var arr2 = arr1.slice();
    assertEq(objectGlobal(arr2), g);
}