| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body> |
| <script> |
| description('Test ES6 iterator works with DOM objects.'); |
| |
| shouldBeUndefined('internals.iterator'); |
| for (var value of internals) { |
| debug('value = ' + value); |
| } |
| |
| for (var value of internals[Symbol.iterator]()) { |
| debug('value = ' + value); |
| } |
| |
| for (var key of internals.keys()) { |
| debug('key = ' + key); |
| } |
| |
| for (var value of internals.values()) { |
| debug('value = ' + value); |
| } |
| |
| for (var entry of internals.entries()) { |
| debug('entry = ' + entry); |
| } |
| |
| shouldThrow('internals.forEach("not a function")'); |
| shouldThrow('internals.forEach(function () { debug("callback called"); throw Error("stop!"); })'); |
| internals.forEach(function (value, key, object) { |
| debug(this + ', ' + value + ', ' + key + ', ' + object); |
| }, 'thisArg'); |
| internals.forEach(function (value) { |
| debug(value + ': ' + this); |
| }); |
| internals.forEach(function (value) { |
| debug(value + ': ' + this); |
| }, null); |
| internals.forEach(function (value) { |
| 'use strict'; |
| debug(value + ': ' + this); |
| }); |
| internals.forEach(function (value) { |
| 'use strict'; |
| debug(value + ': ' + this); |
| }, null); |
| internals.forEach(function (value) { |
| 'use strict'; |
| debug(value + ': ' + typeof this); |
| }, 3.14); |
| |
| </script> |
| </body> |
| </html> |