var g = newGlobal({newCompartment: true});
g.A = A;
// cross_compartment_target is a cross compartment wrapper to an empty object. var cross_compartment_target = g.eval('this.x = {}; this.x');
// #x gets stamped into the target of the CCW. new A(cross_compartment_target);
assertEq(A.hasx(cross_compartment_target), true);
// Can we update and read from this compartment?
assertEq(A.gx(cross_compartment_target), 10); var o = {test: 12};
A.sx(cross_compartment_target, o);
assertEq(A.gx(cross_compartment_target), o);
// Can we read and update from the other compartment?
assertEq(g.eval('this.A.gx(this.x)'), o); var y = g.eval('this.y = {test: 13}; this.A.sx(this.x, this.y); this.y');
assertEq(g.eval('this.A.gx(this.x)'), y);
assertEq(A.gx(cross_compartment_target), y);
if (typeof nukeCCW === 'function') { // Nuke the CCW. Now things should throw.
nukeCCW(cross_compartment_target); var threw = true; try {
A.gx(cross_compartment_target);
threw = false;
} catch (e) {
}
assertEq(threw, true);
}
if (typeof reportCompare === 'function') reportCompare(0, 0);
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.