12345678910111213141516171819202122232425262728293031323334353637 |
- 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));
- }
|