diff options
Diffstat (limited to 'test/built-ins/Reflect/enumerate/return-iterator.js')
-rw-r--r-- | test/built-ins/Reflect/enumerate/return-iterator.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/built-ins/Reflect/enumerate/return-iterator.js b/test/built-ins/Reflect/enumerate/return-iterator.js new file mode 100644 index 000000000..3d7c9f628 --- /dev/null +++ b/test/built-ins/Reflect/enumerate/return-iterator.js @@ -0,0 +1,62 @@ +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es6id: 26.1.5 +description: > + Return an iterator. +info: > + 26.1.5 Reflect.enumerate ( target ) + + ... + 2. Return target.[[Enumerate]](). +---*/ + +var iter, step; +var arr = ['a', 'b', 'c']; + +iter = Reflect.enumerate(arr); + +step = iter.next(); +assert.sameValue(step.value, '0'); +assert.sameValue(step.done, false); + +step = iter.next(); +assert.sameValue(step.value, '1'); +assert.sameValue(step.done, false); + +step = iter.next(); +assert.sameValue(step.value, '2'); +assert.sameValue(step.done, false); + +step = iter.next(); +assert.sameValue(step.value, undefined); +assert.sameValue(step.done, true); + +var o = { + 'a': 42, + 'b': 43, + 'c': 44 +}; + +Object.defineProperty(o, 'd', { + enumerable: false, + value: 45 +}); + +iter = Reflect.enumerate(o); + +step = iter.next(); +assert.sameValue(step.value, 'a'); +assert.sameValue(step.done, false); + +step = iter.next(); +assert.sameValue(step.value, 'b'); +assert.sameValue(step.done, false); + +step = iter.next(); +assert.sameValue(step.value, 'c'); +assert.sameValue(step.done, false); + +step = iter.next(); +assert.sameValue(step.value, undefined); +assert.sameValue(step.done, true); |