From 6fcbfaf0f0d7dc9b2af714710924f1c45212f23c Mon Sep 17 00:00:00 2001
From: Leonardo Balter <leonardo.balter@gmail.com>
Date: Mon, 27 Jun 2016 16:08:21 -0400
Subject: [PATCH] Assert TypedArray iterators inherit from
 ArrayPrototypeIterator

---
 .../prototype/entries/iter-prototype.js       | 25 +++++++++++++++++++
 .../prototype/keys/iter-prototype.js          | 25 +++++++++++++++++++
 .../prototype/values/iter-prototype.js        | 25 +++++++++++++++++++
 3 files changed, 75 insertions(+)
 create mode 100644 test/built-ins/TypedArray/prototype/entries/iter-prototype.js
 create mode 100644 test/built-ins/TypedArray/prototype/keys/iter-prototype.js
 create mode 100644 test/built-ins/TypedArray/prototype/values/iter-prototype.js

diff --git a/test/built-ins/TypedArray/prototype/entries/iter-prototype.js b/test/built-ins/TypedArray/prototype/entries/iter-prototype.js
new file mode 100644
index 0000000000..47f64cb632
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/entries/iter-prototype.js
@@ -0,0 +1,25 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.6
+esid: sec-%typedarray%.prototype.entries
+description: >
+  The prototype of the returned iterator is ArrayIteratorPrototype
+info: |
+  22.2.3.6 %TypedArray%.prototype.entries ( )
+
+  ...
+  3. Return CreateArrayIterator(O, "key+value").
+includes: [testTypedArray.js]
+features: [Symbol.iterator]
+---*/
+
+var ArrayIteratorProto = Object.getPrototypeOf([][Symbol.iterator]());
+
+testWithTypedArrayConstructors(function(TA) {
+  var sample = new TA([0, 42, 64]);
+  var iter = sample.entries();
+
+  assert.sameValue(Object.getPrototypeOf(iter), ArrayIteratorProto);
+});
diff --git a/test/built-ins/TypedArray/prototype/keys/iter-prototype.js b/test/built-ins/TypedArray/prototype/keys/iter-prototype.js
new file mode 100644
index 0000000000..c9120d601d
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/keys/iter-prototype.js
@@ -0,0 +1,25 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.16
+esid: sec-%typedarray%.prototype.keys
+description: >
+  The prototype of the returned iterator is ArrayIteratorPrototype
+info: |
+  22.2.3.16 %TypedArray%.prototype.keys ( )
+
+  ...
+  3. Return CreateArrayIterator(O, "key").
+includes: [testTypedArray.js]
+features: [Symbol.iterator]
+---*/
+
+var ArrayIteratorProto = Object.getPrototypeOf([][Symbol.iterator]());
+
+testWithTypedArrayConstructors(function(TA) {
+  var sample = new TA([0, 42, 64]);
+  var iter = sample.keys();
+
+  assert.sameValue(Object.getPrototypeOf(iter), ArrayIteratorProto);
+});
diff --git a/test/built-ins/TypedArray/prototype/values/iter-prototype.js b/test/built-ins/TypedArray/prototype/values/iter-prototype.js
new file mode 100644
index 0000000000..f6c1308999
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/values/iter-prototype.js
@@ -0,0 +1,25 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.30
+esid: sec-%typedarray%.prototype.values
+description: >
+  The prototype of the returned iterator is ArrayIteratorPrototype
+info: |
+  22.2.3.30 %TypedArray%.prototype.values ( )
+
+  ...
+  3. Return CreateArrayIterator(O, "value").
+includes: [testTypedArray.js]
+features: [Symbol.iterator]
+---*/
+
+var ArrayIteratorProto = Object.getPrototypeOf([][Symbol.iterator]());
+
+testWithTypedArrayConstructors(function(TA) {
+  var sample = new TA([0, 42, 64]);
+  var iter = sample.values();
+
+  assert.sameValue(Object.getPrototypeOf(iter), ArrayIteratorProto);
+});
-- 
GitLab