OLD | NEW |
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 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 // TODO(littledan): Use the right prototype based on bufferConstructor's realm | 256 // TODO(littledan): Use the right prototype based on bufferConstructor's realm |
257 if (IS_RECEIVER(prototype) && prototype !== GlobalArrayBufferPrototype) { | 257 if (IS_RECEIVER(prototype) && prototype !== GlobalArrayBufferPrototype) { |
258 %InternalSetPrototype(%TypedArrayGetBuffer(obj), prototype); | 258 %InternalSetPrototype(%TypedArrayGetBuffer(obj), prototype); |
259 } | 259 } |
260 } | 260 } |
261 | 261 |
262 function NAMEConstructor(arg1, arg2, arg3) { | 262 function NAMEConstructor(arg1, arg2, arg3) { |
263 if (!IS_UNDEFINED(new.target)) { | 263 if (!IS_UNDEFINED(new.target)) { |
264 if (IS_ARRAYBUFFER(arg1) || IS_SHAREDARRAYBUFFER(arg1)) { | 264 if (IS_ARRAYBUFFER(arg1) || IS_SHAREDARRAYBUFFER(arg1)) { |
265 NAMEConstructByArrayBuffer(this, arg1, arg2, arg3); | 265 NAMEConstructByArrayBuffer(this, arg1, arg2, arg3); |
| 266 } else if (IS_NUMBER(arg1) || IS_STRING(arg1) || |
| 267 IS_BOOLEAN(arg1) || IS_UNDEFINED(arg1)) { |
| 268 NAMEConstructByLength(this, arg1); |
266 } else if (IS_TYPEDARRAY(arg1)) { | 269 } else if (IS_TYPEDARRAY(arg1)) { |
267 NAMEConstructByTypedArray(this, arg1); | 270 NAMEConstructByTypedArray(this, arg1); |
268 } else if (IS_RECEIVER(arg1)) { | 271 } else { |
269 var iteratorFn = arg1[iteratorSymbol]; | 272 var iteratorFn = arg1[iteratorSymbol]; |
270 if (IS_UNDEFINED(iteratorFn) || iteratorFn === ArrayValues) { | 273 if (IS_UNDEFINED(iteratorFn) || iteratorFn === ArrayValues) { |
271 NAMEConstructByArrayLike(this, arg1, arg1.length); | 274 NAMEConstructByArrayLike(this, arg1, arg1.length); |
272 } else { | 275 } else { |
273 NAMEConstructByIterable(this, arg1, iteratorFn); | 276 NAMEConstructByIterable(this, arg1, iteratorFn); |
274 } | 277 } |
275 } else { | |
276 NAMEConstructByLength(this, arg1); | |
277 } | 278 } |
278 } else { | 279 } else { |
279 throw MakeTypeError(kConstructorNotFunction, "NAME") | 280 throw MakeTypeError(kConstructorNotFunction, "NAME") |
280 } | 281 } |
281 } | 282 } |
282 | 283 |
283 function NAMESubArray(begin, end) { | 284 function NAMESubArray(begin, end) { |
284 var beginInt = TO_INTEGER(begin); | 285 var beginInt = TO_INTEGER(begin); |
285 if (!IS_UNDEFINED(end)) { | 286 if (!IS_UNDEFINED(end)) { |
286 var endInt = TO_INTEGER(end); | 287 var endInt = TO_INTEGER(end); |
(...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
905 "setUint32", DataViewSetUint32JS, | 906 "setUint32", DataViewSetUint32JS, |
906 | 907 |
907 "getFloat32", DataViewGetFloat32JS, | 908 "getFloat32", DataViewGetFloat32JS, |
908 "setFloat32", DataViewSetFloat32JS, | 909 "setFloat32", DataViewSetFloat32JS, |
909 | 910 |
910 "getFloat64", DataViewGetFloat64JS, | 911 "getFloat64", DataViewGetFloat64JS, |
911 "setFloat64", DataViewSetFloat64JS | 912 "setFloat64", DataViewSetFloat64JS |
912 ]); | 913 ]); |
913 | 914 |
914 }) | 915 }) |
OLD | NEW |