mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 19:55:39 +00:00
37 lines
902 B
JavaScript
37 lines
902 B
JavaScript
const Cu = Components.utils;
|
|
function run_test() {
|
|
|
|
var toEval = [
|
|
"var customIterator = {",
|
|
" _array: [6, 7, 8, 9],",
|
|
" __iterator__: function() {",
|
|
" for (var i = 0; i < this._array.length; ++i)",
|
|
" yield this._array[i];",
|
|
" }",
|
|
"}"
|
|
].join('\n');
|
|
|
|
function checkIterator(iterator) {
|
|
var control = [6, 7, 8, 9];
|
|
var i = 0;
|
|
for (var item in iterator) {
|
|
do_check_eq(item, control[i]);
|
|
++i;
|
|
}
|
|
}
|
|
|
|
// First, try in our own scope.
|
|
eval(toEval);
|
|
checkIterator(customIterator);
|
|
|
|
// Next, try a vanilla CCW.
|
|
var sbChrome = Cu.Sandbox(this);
|
|
Cu.evalInSandbox(toEval, sbChrome, '1.7');
|
|
checkIterator(sbChrome.customIterator);
|
|
|
|
// Finally, try an Xray waiver.
|
|
var sbContent = Cu.Sandbox('http://www.example.com');
|
|
Cu.evalInSandbox(toEval, sbContent, '1.7');
|
|
checkIterator(Cu.waiveXrays(sbContent.customIterator));
|
|
}
|