summaryrefslogtreecommitdiff
path: root/test/built-ins/Reflect/enumerate/return-iterator.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/built-ins/Reflect/enumerate/return-iterator.js')
-rw-r--r--test/built-ins/Reflect/enumerate/return-iterator.js62
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);