diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /js/src/tests/ecma_6/Generators/objects.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/tests/ecma_6/Generators/objects.js')
-rw-r--r-- | js/src/tests/ecma_6/Generators/objects.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/js/src/tests/ecma_6/Generators/objects.js b/js/src/tests/ecma_6/Generators/objects.js new file mode 100644 index 000000000..1ffdf48fa --- /dev/null +++ b/js/src/tests/ecma_6/Generators/objects.js @@ -0,0 +1,49 @@ +// This file was written by Andy Wingo <wingo@igalia.com> and originally +// contributed to V8 as generators-objects.js, available here: +// +// http://code.google.com/p/v8/source/browse/branches/bleeding_edge/test/mjsunit/harmony/generators-objects.js + +// Test aspects of the generator runtime. + +// Test the properties and prototype of a generator object. +function TestGeneratorObject() { + function* g() { yield 1; } + + var iter = g(); + assertEq(Object.getPrototypeOf(iter), g.prototype); + assertTrue(iter instanceof g); + assertEq(String(iter), "[object Generator]"); + assertDeepEq(Object.getOwnPropertyNames(iter), []); + assertNotEq(g(), iter); +} +TestGeneratorObject(); + + +// Test the methods of generator objects. +function TestGeneratorObjectMethods() { + function* g() { yield 1; } + var iter = g(); + + assertEq(iter.next.length, 1); + assertEq(iter.return.length, 1); + assertEq(iter.throw.length, 1); + + function TestNonGenerator(non_generator) { + assertThrowsInstanceOf(function() { iter.next.call(non_generator); }, TypeError); + assertThrowsInstanceOf(function() { iter.next.call(non_generator, 1); }, TypeError); + assertThrowsInstanceOf(function() { iter.return.call(non_generator, 1); }, TypeError); + assertThrowsInstanceOf(function() { iter.throw.call(non_generator, 1); }, TypeError); + assertThrowsInstanceOf(function() { iter.close.call(non_generator); }, TypeError); + } + + TestNonGenerator(1); + TestNonGenerator({}); + TestNonGenerator(function(){}); + TestNonGenerator(g); + TestNonGenerator(g.prototype); +} +TestGeneratorObjectMethods(); + + +if (typeof reportCompare == "function") + reportCompare(true, true); |