Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Side by Side Diff: test/mjsunit/harmony/collection-iterator.js

Issue 427723002: Enable ES6 Map and Set by default (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remove old test, fix BUILD.gn Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « test/mjsunit/es7/object-observe.js ('k') | test/mjsunit/harmony/collections.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Flags: --harmony-collections --allow-natives-syntax
6
7
8 (function TestSetIterator() {
9 var s = new Set;
10 var iter = s.values();
11 assertEquals('Set Iterator', %_ClassOf(iter));
12
13 var SetIteratorPrototype = iter.__proto__;
14 assertFalse(SetIteratorPrototype.hasOwnProperty('constructor'));
15 assertEquals(SetIteratorPrototype.__proto__, Object.prototype);
16
17 var propertyNames = Object.getOwnPropertyNames(SetIteratorPrototype);
18 assertArrayEquals(['next'], propertyNames);
19
20 assertEquals(new Set().values().__proto__, SetIteratorPrototype);
21 assertEquals(new Set().entries().__proto__, SetIteratorPrototype);
22 })();
23
24
25 (function TestSetIteratorValues() {
26 var s = new Set;
27 s.add(1);
28 s.add(2);
29 s.add(3);
30 var iter = s.values();
31
32 assertEquals({value: 1, done: false}, iter.next());
33 assertEquals({value: 2, done: false}, iter.next());
34 assertEquals({value: 3, done: false}, iter.next());
35 assertEquals({value: undefined, done: true}, iter.next());
36 assertEquals({value: undefined, done: true}, iter.next());
37 })();
38
39
40 (function TestSetIteratorKeys() {
41 assertEquals(Set.prototype.keys, Set.prototype.values);
42 })();
43
44
45 (function TestSetIteratorEntries() {
46 var s = new Set;
47 s.add(1);
48 s.add(2);
49 s.add(3);
50 var iter = s.entries();
51
52 assertEquals({value: [1, 1], done: false}, iter.next());
53 assertEquals({value: [2, 2], done: false}, iter.next());
54 assertEquals({value: [3, 3], done: false}, iter.next());
55 assertEquals({value: undefined, done: true}, iter.next());
56 assertEquals({value: undefined, done: true}, iter.next());
57 })();
58
59
60 (function TestSetIteratorMutations() {
61 var s = new Set;
62 s.add(1);
63 var iter = s.values();
64 assertEquals({value: 1, done: false}, iter.next());
65 s.add(2);
66 s.add(3);
67 s.add(4);
68 s.add(5);
69 assertEquals({value: 2, done: false}, iter.next());
70 s.delete(3);
71 assertEquals({value: 4, done: false}, iter.next());
72 s.delete(5);
73 assertEquals({value: undefined, done: true}, iter.next());
74 s.add(4);
75 assertEquals({value: undefined, done: true}, iter.next());
76 })();
77
78
79 (function TestSetInvalidReceiver() {
80 assertThrows(function() {
81 Set.prototype.values.call({});
82 }, TypeError);
83 assertThrows(function() {
84 Set.prototype.entries.call({});
85 }, TypeError);
86 })();
87
88
89 (function TestSetIteratorInvalidReceiver() {
90 var iter = new Set().values();
91 assertThrows(function() {
92 iter.next.call({});
93 });
94 })();
95
96
97 (function TestSetIteratorSymbol() {
98 assertEquals(Set.prototype[Symbol.iterator], Set.prototype.values);
99 assertTrue(Set.prototype.hasOwnProperty(Symbol.iterator));
100 assertFalse(Set.prototype.propertyIsEnumerable(Symbol.iterator));
101
102 var iter = new Set().values();
103 assertEquals(iter, iter[Symbol.iterator]());
104 assertEquals(iter[Symbol.iterator].name, '[Symbol.iterator]');
105 })();
106
107
108 (function TestMapIterator() {
109 var m = new Map;
110 var iter = m.values();
111 assertEquals('Map Iterator', %_ClassOf(iter));
112
113 var MapIteratorPrototype = iter.__proto__;
114 assertFalse(MapIteratorPrototype.hasOwnProperty('constructor'));
115 assertEquals(MapIteratorPrototype.__proto__, Object.prototype);
116
117 var propertyNames = Object.getOwnPropertyNames(MapIteratorPrototype);
118 assertArrayEquals(['next'], propertyNames);
119
120 assertEquals(new Map().values().__proto__, MapIteratorPrototype);
121 assertEquals(new Map().keys().__proto__, MapIteratorPrototype);
122 assertEquals(new Map().entries().__proto__, MapIteratorPrototype);
123 })();
124
125
126 (function TestMapIteratorValues() {
127 var m = new Map;
128 m.set(1, 11);
129 m.set(2, 22);
130 m.set(3, 33);
131 var iter = m.values();
132
133 assertEquals({value: 11, done: false}, iter.next());
134 assertEquals({value: 22, done: false}, iter.next());
135 assertEquals({value: 33, done: false}, iter.next());
136 assertEquals({value: undefined, done: true}, iter.next());
137 assertEquals({value: undefined, done: true}, iter.next());
138 })();
139
140
141 (function TestMapIteratorKeys() {
142 var m = new Map;
143 m.set(1, 11);
144 m.set(2, 22);
145 m.set(3, 33);
146 var iter = m.keys();
147
148 assertEquals({value: 1, done: false}, iter.next());
149 assertEquals({value: 2, done: false}, iter.next());
150 assertEquals({value: 3, done: false}, iter.next());
151 assertEquals({value: undefined, done: true}, iter.next());
152 assertEquals({value: undefined, done: true}, iter.next());
153 })();
154
155
156 (function TestMapIteratorEntries() {
157 var m = new Map;
158 m.set(1, 11);
159 m.set(2, 22);
160 m.set(3, 33);
161 var iter = m.entries();
162
163 assertEquals({value: [1, 11], done: false}, iter.next());
164 assertEquals({value: [2, 22], done: false}, iter.next());
165 assertEquals({value: [3, 33], done: false}, iter.next());
166 assertEquals({value: undefined, done: true}, iter.next());
167 assertEquals({value: undefined, done: true}, iter.next());
168 })();
169
170
171 (function TestMapInvalidReceiver() {
172 assertThrows(function() {
173 Map.prototype.values.call({});
174 }, TypeError);
175 assertThrows(function() {
176 Map.prototype.keys.call({});
177 }, TypeError);
178 assertThrows(function() {
179 Map.prototype.entries.call({});
180 }, TypeError);
181 })();
182
183
184 (function TestMapIteratorInvalidReceiver() {
185 var iter = new Map().values();
186 assertThrows(function() {
187 iter.next.call({});
188 }, TypeError);
189 })();
190
191
192 (function TestMapIteratorSymbol() {
193 assertEquals(Map.prototype[Symbol.iterator], Map.prototype.entries);
194 assertTrue(Map.prototype.hasOwnProperty(Symbol.iterator));
195 assertFalse(Map.prototype.propertyIsEnumerable(Symbol.iterator));
196
197 var iter = new Map().values();
198 assertEquals(iter, iter[Symbol.iterator]());
199 assertEquals(iter[Symbol.iterator].name, '[Symbol.iterator]');
200 })();
OLDNEW
« no previous file with comments | « test/mjsunit/es7/object-observe.js ('k') | test/mjsunit/harmony/collections.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698