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 NAMEConstructByArrayLike(this, arg1); | 256 NAMEConstructByArrayLike(this, arg1); |
257 } else { | 257 } else { |
258 NAMEConstructByIterable(this, arg1, iteratorFn); | 258 NAMEConstructByIterable(this, arg1, iteratorFn); |
259 } | 259 } |
260 } | 260 } |
261 } else { | 261 } else { |
262 throw MakeTypeError(kConstructorNotFunction, "NAME") | 262 throw MakeTypeError(kConstructorNotFunction, "NAME") |
263 } | 263 } |
264 } | 264 } |
265 | 265 |
| 266 // TODO(littledan): Remove this performance workaround BUG(chromium:579905) |
| 267 function NAME_GetLength() { |
| 268 if (!(%_ClassOf(this) === 'NAME')) { |
| 269 throw MakeTypeError(kIncompatibleMethodReceiver, "NAME.length", this); |
| 270 } |
| 271 return %_TypedArrayGetLength(this); |
| 272 } |
| 273 |
266 function NAMESubArray(begin, end) { | 274 function NAMESubArray(begin, end) { |
267 var beginInt = TO_INTEGER(begin); | 275 var beginInt = TO_INTEGER(begin); |
268 if (!IS_UNDEFINED(end)) { | 276 if (!IS_UNDEFINED(end)) { |
269 var endInt = TO_INTEGER(end); | 277 var endInt = TO_INTEGER(end); |
270 var srcLength = %_TypedArrayGetLength(this); | 278 var srcLength = %_TypedArrayGetLength(this); |
271 } else { | 279 } else { |
272 var srcLength = %_TypedArrayGetLength(this); | 280 var srcLength = %_TypedArrayGetLength(this); |
273 var endInt = srcLength; | 281 var endInt = srcLength; |
274 } | 282 } |
275 | 283 |
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
822 %InternalSetPrototype(GlobalNAME.prototype, TypedArray.prototype); | 830 %InternalSetPrototype(GlobalNAME.prototype, TypedArray.prototype); |
823 | 831 |
824 %AddNamedProperty(GlobalNAME, "BYTES_PER_ELEMENT", ELEMENT_SIZE, | 832 %AddNamedProperty(GlobalNAME, "BYTES_PER_ELEMENT", ELEMENT_SIZE, |
825 READ_ONLY | DONT_ENUM | DONT_DELETE); | 833 READ_ONLY | DONT_ENUM | DONT_DELETE); |
826 | 834 |
827 %AddNamedProperty(GlobalNAME.prototype, | 835 %AddNamedProperty(GlobalNAME.prototype, |
828 "constructor", global.NAME, DONT_ENUM); | 836 "constructor", global.NAME, DONT_ENUM); |
829 %AddNamedProperty(GlobalNAME.prototype, | 837 %AddNamedProperty(GlobalNAME.prototype, |
830 "BYTES_PER_ELEMENT", ELEMENT_SIZE, | 838 "BYTES_PER_ELEMENT", ELEMENT_SIZE, |
831 READ_ONLY | DONT_ENUM | DONT_DELETE); | 839 READ_ONLY | DONT_ENUM | DONT_DELETE); |
| 840 // TODO(littledan): Remove this performance workaround BUG(chromium:579905) |
| 841 utils.InstallGetter(GlobalNAME.prototype, "length", NAME_GetLength, |
| 842 DONT_ENUM | DONT_DELETE); |
832 endmacro | 843 endmacro |
833 | 844 |
834 TYPED_ARRAYS(SETUP_TYPED_ARRAY) | 845 TYPED_ARRAYS(SETUP_TYPED_ARRAY) |
835 | 846 |
836 // --------------------------- DataView ----------------------------- | 847 // --------------------------- DataView ----------------------------- |
837 | 848 |
838 function DataViewConstructor(buffer, byteOffset, byteLength) { // length = 3 | 849 function DataViewConstructor(buffer, byteOffset, byteLength) { // length = 3 |
839 if (IS_UNDEFINED(new.target)) { | 850 if (IS_UNDEFINED(new.target)) { |
840 throw MakeTypeError(kConstructorNotFunction, "DataView"); | 851 throw MakeTypeError(kConstructorNotFunction, "DataView"); |
841 } | 852 } |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
960 "setUint32", DataViewSetUint32JS, | 971 "setUint32", DataViewSetUint32JS, |
961 | 972 |
962 "getFloat32", DataViewGetFloat32JS, | 973 "getFloat32", DataViewGetFloat32JS, |
963 "setFloat32", DataViewSetFloat32JS, | 974 "setFloat32", DataViewSetFloat32JS, |
964 | 975 |
965 "getFloat64", DataViewGetFloat64JS, | 976 "getFloat64", DataViewGetFloat64JS, |
966 "setFloat64", DataViewSetFloat64JS | 977 "setFloat64", DataViewSetFloat64JS |
967 ]); | 978 ]); |
968 | 979 |
969 }) | 980 }) |
OLD | NEW |