OLD | NEW |
---|---|
1 // Copyright 2014 the V8 project authors. All rights reserved. | 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 | 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 |
11 // ------------------------------------------------------------------- | 11 // ------------------------------------------------------------------- |
12 // Imports | 12 // Imports |
13 | 13 |
14 macro TYPED_ARRAYS(FUNCTION) | |
15 // arrayIds below should be synchronized with Runtime_TypedArrayInitialize. | |
16 FUNCTION(Uint8Array) | |
17 FUNCTION(Int8Array) | |
18 FUNCTION(Uint16Array) | |
19 FUNCTION(Int16Array) | |
20 FUNCTION(Uint32Array) | |
21 FUNCTION(Int32Array) | |
22 FUNCTION(Float32Array) | |
23 FUNCTION(Float64Array) | |
24 FUNCTION(Uint8ClampedArray) | |
25 endmacro | |
26 | 14 |
27 macro DECLARE_GLOBALS(NAME) | 15 macro DECLARE_GLOBALS(NAME) |
28 var GlobalNAME = global.NAME; | 16 var GlobalNAME = global.NAME; |
29 endmacro | 17 endmacro |
30 | 18 |
31 TYPED_ARRAYS(DECLARE_GLOBALS) | |
32 DECLARE_GLOBALS(Array) | 19 DECLARE_GLOBALS(Array) |
20 DECLARE_GLOBALS(Uint8Array) | |
21 DECLARE_GLOBALS(Int8Array) | |
22 DECLARE_GLOBALS(Uint16Array) | |
23 DECLARE_GLOBALS(Int16Array) | |
24 DECLARE_GLOBALS(Uint32Array) | |
25 DECLARE_GLOBALS(Int32Array) | |
26 DECLARE_GLOBALS(Float32Array) | |
27 DECLARE_GLOBALS(Float64Array) | |
28 DECLARE_GLOBALS(Uint8ClampedArray) | |
33 | 29 |
34 var ArrayFrom; | 30 var ArrayFrom; |
35 var ArrayToString; | 31 var ArrayToString; |
36 var InnerArrayCopyWithin; | 32 var InnerArrayCopyWithin; |
37 var InnerArrayEvery; | 33 var InnerArrayEvery; |
38 var InnerArrayFill; | 34 var InnerArrayFill; |
39 var InnerArrayFilter; | 35 var InnerArrayFilter; |
40 var InnerArrayFind; | 36 var InnerArrayFind; |
41 var InnerArrayFindIndex; | 37 var InnerArrayFindIndex; |
42 var InnerArrayForEach; | 38 var InnerArrayForEach; |
43 var InnerArrayIndexOf; | 39 var InnerArrayIndexOf; |
44 var InnerArrayJoin; | 40 var InnerArrayJoin; |
45 var InnerArrayLastIndexOf; | 41 var InnerArrayLastIndexOf; |
46 var InnerArrayMap; | 42 var InnerArrayMap; |
47 var InnerArrayReverse; | 43 var InnerArrayReverse; |
48 var InnerArraySome; | 44 var InnerArraySome; |
49 var InnerArraySort; | 45 var InnerArraySort; |
50 var InnerArrayToLocaleString; | 46 var InnerArrayToLocaleString; |
51 var IsNaN; | 47 var IsNaN; |
52 var MathMax; | 48 var MathMax; |
53 var MathMin; | 49 var MathMin; |
50 var TypedArray = GlobalUint8Array.__proto__; | |
51 var TypedArrayPrototype = GlobalUint8Array.prototype.__proto__; | |
arv (Not doing code reviews)
2015/06/16 16:24:49
This is the same as TypedArray.prototype which rea
Dan Ehrenberg
2015/06/16 22:38:23
TypedArray is not exposed.
arv (Not doing code reviews)
2015/06/16 22:48:42
You defined it on line 50.
| |
54 | 52 |
55 utils.Import(function(from) { | 53 utils.Import(function(from) { |
56 ArrayFrom = from.ArrayFrom; | 54 ArrayFrom = from.ArrayFrom; |
57 ArrayToString = from.ArrayToString; | 55 ArrayToString = from.ArrayToString; |
58 InnerArrayCopyWithin = from.InnerArrayCopyWithin; | 56 InnerArrayCopyWithin = from.InnerArrayCopyWithin; |
59 InnerArrayEvery = from.InnerArrayEvery; | 57 InnerArrayEvery = from.InnerArrayEvery; |
60 InnerArrayFill = from.InnerArrayFill; | 58 InnerArrayFill = from.InnerArrayFill; |
61 InnerArrayFilter = from.InnerArrayFilter; | 59 InnerArrayFilter = from.InnerArrayFilter; |
62 InnerArrayFind = from.InnerArrayFind; | 60 InnerArrayFind = from.InnerArrayFind; |
63 InnerArrayFindIndex = from.InnerArrayFindIndex; | 61 InnerArrayFindIndex = from.InnerArrayFindIndex; |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
369 | 367 |
370 | 368 |
371 function TypedArrayFrom(source, mapfn, thisArg) { | 369 function TypedArrayFrom(source, mapfn, thisArg) { |
372 // TODO(littledan): Investigate if there is a receiver which could be | 370 // TODO(littledan): Investigate if there is a receiver which could be |
373 // faster to accumulate on than Array, e.g., a TypedVector. | 371 // faster to accumulate on than Array, e.g., a TypedVector. |
374 var array = %_CallFunction(GlobalArray, source, mapfn, thisArg, ArrayFrom); | 372 var array = %_CallFunction(GlobalArray, source, mapfn, thisArg, ArrayFrom); |
375 return ConstructTypedArray(this, array); | 373 return ConstructTypedArray(this, array); |
376 } | 374 } |
377 %FunctionSetLength(TypedArrayFrom, 1); | 375 %FunctionSetLength(TypedArrayFrom, 1); |
378 | 376 |
379 // TODO(littledan): Fix the TypedArray proto chain (bug v8:4085). | |
380 macro EXTEND_TYPED_ARRAY(NAME) | |
381 // Set up non-enumerable functions on the object. | 377 // Set up non-enumerable functions on the object. |
382 utils.InstallFunctions(GlobalNAME, DONT_ENUM | DONT_DELETE | READ_ONLY, [ | 378 utils.InstallFunctions(TypedArray, DONT_ENUM | DONT_DELETE | READ_ONLY, [ |
383 "from", TypedArrayFrom, | 379 "from", TypedArrayFrom, |
384 "of", TypedArrayOf | 380 "of", TypedArrayOf |
385 ]); | 381 ]); |
386 | 382 |
387 // Set up non-enumerable functions on the prototype object. | 383 // Set up non-enumerable functions on the prototype object. |
388 utils.InstallFunctions(GlobalNAME.prototype, DONT_ENUM, [ | 384 utils.InstallFunctions(TypedArrayPrototype, DONT_ENUM, [ |
389 "copyWithin", TypedArrayCopyWithin, | 385 "copyWithin", TypedArrayCopyWithin, |
390 "every", TypedArrayEvery, | 386 "every", TypedArrayEvery, |
391 "fill", TypedArrayFill, | 387 "fill", TypedArrayFill, |
392 "filter", TypedArrayFilter, | 388 "filter", TypedArrayFilter, |
393 "find", TypedArrayFind, | 389 "find", TypedArrayFind, |
394 "findIndex", TypedArrayFindIndex, | 390 "findIndex", TypedArrayFindIndex, |
395 "indexOf", TypedArrayIndexOf, | 391 "indexOf", TypedArrayIndexOf, |
396 "join", TypedArrayJoin, | 392 "join", TypedArrayJoin, |
397 "lastIndexOf", TypedArrayLastIndexOf, | 393 "lastIndexOf", TypedArrayLastIndexOf, |
398 "forEach", TypedArrayForEach, | 394 "forEach", TypedArrayForEach, |
399 "map", TypedArrayMap, | 395 "map", TypedArrayMap, |
400 "reduce", TypedArrayReduce, | 396 "reduce", TypedArrayReduce, |
401 "reduceRight", TypedArrayReduceRight, | 397 "reduceRight", TypedArrayReduceRight, |
402 "reverse", TypedArrayReverse, | 398 "reverse", TypedArrayReverse, |
403 "slice", TypedArraySlice, | 399 "slice", TypedArraySlice, |
404 "some", TypedArraySome, | 400 "some", TypedArraySome, |
405 "sort", TypedArraySort, | 401 "sort", TypedArraySort, |
406 "toString", TypedArrayToString, | 402 "toString", TypedArrayToString, |
407 "toLocaleString", TypedArrayToLocaleString | 403 "toLocaleString", TypedArrayToLocaleString |
408 ]); | 404 ]); |
409 endmacro | |
410 | |
411 TYPED_ARRAYS(EXTEND_TYPED_ARRAY) | |
412 | 405 |
413 }) | 406 }) |
OLD | NEW |