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

Side by Side Diff: src/array-iterator.js

Issue 1325023003: [es6] Fix invalid ToObject in String/Array iterator next. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 3 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
« no previous file with comments | « no previous file | src/string-iterator.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 var $arrayValues; 5 var $arrayValues;
6 6
7 (function(global, utils) { 7 (function(global, utils) {
8 8
9 "use strict"; 9 "use strict";
10 10
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 69
70 70
71 // 22.1.5.2.2 %ArrayIteratorPrototype%[@@iterator] 71 // 22.1.5.2.2 %ArrayIteratorPrototype%[@@iterator]
72 function ArrayIteratorIterator() { 72 function ArrayIteratorIterator() {
73 return this; 73 return this;
74 } 74 }
75 75
76 76
77 // 15.4.5.2.2 ArrayIterator.prototype.next( ) 77 // 15.4.5.2.2 ArrayIterator.prototype.next( )
78 function ArrayIteratorNext() { 78 function ArrayIteratorNext() {
79 var iterator = TO_OBJECT(this); 79 var iterator = this;
80 80
81 if (!HAS_DEFINED_PRIVATE(iterator, arrayIteratorNextIndexSymbol)) { 81 if (!IS_SPEC_OBJECT(iterator) ||
82 !HAS_DEFINED_PRIVATE(iterator, arrayIteratorNextIndexSymbol)) {
Jarin 2015/09/02 06:41:01 Technically, you should check for presence of the
Benedikt Meurer 2015/09/02 06:42:05 Yeah, I'll remove all of this soonish and replace
82 throw MakeTypeError(kIncompatibleMethodReceiver, 83 throw MakeTypeError(kIncompatibleMethodReceiver,
83 'Array Iterator.prototype.next', this); 84 'Array Iterator.prototype.next', this);
84 } 85 }
85 86
86 var array = GET_PRIVATE(iterator, arrayIteratorObjectSymbol); 87 var array = GET_PRIVATE(iterator, arrayIteratorObjectSymbol);
87 if (IS_UNDEFINED(array)) { 88 if (IS_UNDEFINED(array)) {
88 return CreateIteratorResultObject(UNDEFINED, true); 89 return CreateIteratorResultObject(UNDEFINED, true);
89 } 90 }
90 91
91 var index = GET_PRIVATE(iterator, arrayIteratorNextIndexSymbol); 92 var index = GET_PRIVATE(iterator, arrayIteratorNextIndexSymbol);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 169
169 utils.Export(function(to) { 170 utils.Export(function(to) {
170 to.ArrayIteratorCreateResultObject = CreateIteratorResultObject; 171 to.ArrayIteratorCreateResultObject = CreateIteratorResultObject;
171 }); 172 });
172 173
173 $arrayValues = ArrayValues; 174 $arrayValues = ArrayValues;
174 175
175 %InstallToContext(["array_values_iterator", ArrayValues]); 176 %InstallToContext(["array_values_iterator", ArrayValues]);
176 177
177 }) 178 })
OLDNEW
« no previous file with comments | « no previous file | src/string-iterator.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698