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

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

Issue 1316933002: [es6] Initial steps towards a correct implementation of IsCallable. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase again. 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 | « src/full-codegen/x64/full-codegen-x64.cc ('k') | src/hydrogen.h » ('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 (function(global, utils) { 5 (function(global, utils) {
6 6
7 'use strict'; 7 'use strict';
8 8
9 %CheckIsBootstrapping(); 9 %CheckIsBootstrapping();
10 10
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 function ArrayCopyWithin(target, start, end) { 84 function ArrayCopyWithin(target, start, end) {
85 CHECK_OBJECT_COERCIBLE(this, "Array.prototype.copyWithin"); 85 CHECK_OBJECT_COERCIBLE(this, "Array.prototype.copyWithin");
86 86
87 var array = TO_OBJECT(this); 87 var array = TO_OBJECT(this);
88 var length = $toLength(array.length); 88 var length = $toLength(array.length);
89 89
90 return InnerArrayCopyWithin(target, start, end, array, length); 90 return InnerArrayCopyWithin(target, start, end, array, length);
91 } 91 }
92 92
93 function InnerArrayFind(predicate, thisArg, array, length) { 93 function InnerArrayFind(predicate, thisArg, array, length) {
94 if (!IS_SPEC_FUNCTION(predicate)) { 94 if (!IS_CALLABLE(predicate)) {
95 throw MakeTypeError(kCalledNonCallable, predicate); 95 throw MakeTypeError(kCalledNonCallable, predicate);
96 } 96 }
97 97
98 var needs_wrapper = false; 98 var needs_wrapper = false;
99 if (IS_NULL(thisArg)) { 99 if (IS_NULL(thisArg)) {
100 if (%IsSloppyModeFunction(predicate)) thisArg = UNDEFINED; 100 if (%IsSloppyModeFunction(predicate)) thisArg = UNDEFINED;
101 } else if (!IS_UNDEFINED(thisArg)) { 101 } else if (!IS_UNDEFINED(thisArg)) {
102 needs_wrapper = SHOULD_CREATE_WRAPPER(predicate, thisArg); 102 needs_wrapper = SHOULD_CREATE_WRAPPER(predicate, thisArg);
103 } 103 }
104 104
(...skipping 12 matching lines...) Expand all
117 function ArrayFind(predicate, thisArg) { 117 function ArrayFind(predicate, thisArg) {
118 CHECK_OBJECT_COERCIBLE(this, "Array.prototype.find"); 118 CHECK_OBJECT_COERCIBLE(this, "Array.prototype.find");
119 119
120 var array = TO_OBJECT(this); 120 var array = TO_OBJECT(this);
121 var length = $toInteger(array.length); 121 var length = $toInteger(array.length);
122 122
123 return InnerArrayFind(predicate, thisArg, array, length); 123 return InnerArrayFind(predicate, thisArg, array, length);
124 } 124 }
125 125
126 function InnerArrayFindIndex(predicate, thisArg, array, length) { 126 function InnerArrayFindIndex(predicate, thisArg, array, length) {
127 if (!IS_SPEC_FUNCTION(predicate)) { 127 if (!IS_CALLABLE(predicate)) {
128 throw MakeTypeError(kCalledNonCallable, predicate); 128 throw MakeTypeError(kCalledNonCallable, predicate);
129 } 129 }
130 130
131 var needs_wrapper = false; 131 var needs_wrapper = false;
132 if (IS_NULL(thisArg)) { 132 if (IS_NULL(thisArg)) {
133 if (%IsSloppyModeFunction(predicate)) thisArg = UNDEFINED; 133 if (%IsSloppyModeFunction(predicate)) thisArg = UNDEFINED;
134 } else if (!IS_UNDEFINED(thisArg)) { 134 } else if (!IS_UNDEFINED(thisArg)) {
135 needs_wrapper = SHOULD_CREATE_WRAPPER(predicate, thisArg); 135 needs_wrapper = SHOULD_CREATE_WRAPPER(predicate, thisArg);
136 } 136 }
137 137
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 }); 203 });
204 } 204 }
205 } 205 }
206 206
207 // ES6, draft 10-14-14, section 22.1.2.1 207 // ES6, draft 10-14-14, section 22.1.2.1
208 function ArrayFrom(arrayLike, mapfn, receiver) { 208 function ArrayFrom(arrayLike, mapfn, receiver) {
209 var items = TO_OBJECT(arrayLike); 209 var items = TO_OBJECT(arrayLike);
210 var mapping = !IS_UNDEFINED(mapfn); 210 var mapping = !IS_UNDEFINED(mapfn);
211 211
212 if (mapping) { 212 if (mapping) {
213 if (!IS_SPEC_FUNCTION(mapfn)) { 213 if (!IS_CALLABLE(mapfn)) {
214 throw MakeTypeError(kCalledNonCallable, mapfn); 214 throw MakeTypeError(kCalledNonCallable, mapfn);
215 } else if (%IsSloppyModeFunction(mapfn)) { 215 } else if (%IsSloppyModeFunction(mapfn)) {
216 if (IS_NULL(receiver)) { 216 if (IS_NULL(receiver)) {
217 receiver = UNDEFINED; 217 receiver = UNDEFINED;
218 } else if (!IS_UNDEFINED(receiver)) { 218 } else if (!IS_UNDEFINED(receiver)) {
219 receiver = TO_OBJECT(receiver); 219 receiver = TO_OBJECT(receiver);
220 } 220 }
221 } 221 }
222 } 222 }
223 223
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 313
314 utils.Export(function(to) { 314 utils.Export(function(to) {
315 to.ArrayFrom = ArrayFrom; 315 to.ArrayFrom = ArrayFrom;
316 to.InnerArrayCopyWithin = InnerArrayCopyWithin; 316 to.InnerArrayCopyWithin = InnerArrayCopyWithin;
317 to.InnerArrayFill = InnerArrayFill; 317 to.InnerArrayFill = InnerArrayFill;
318 to.InnerArrayFind = InnerArrayFind; 318 to.InnerArrayFind = InnerArrayFind;
319 to.InnerArrayFindIndex = InnerArrayFindIndex; 319 to.InnerArrayFindIndex = InnerArrayFindIndex;
320 }); 320 });
321 321
322 }) 322 })
OLDNEW
« no previous file with comments | « src/full-codegen/x64/full-codegen-x64.cc ('k') | src/hydrogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698