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

Side by Side Diff: src/typedarray.js

Issue 1186733002: Add %TypedArray% to proto chain (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: changes from arv's review Created 5 years, 6 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/runtime/runtime-object.cc ('k') | test/mjsunit/es6/built-in-accessor-names.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 (function(global, utils) { 5 (function(global, utils) {
6 6
7 "use strict"; 7 "use strict";
8 8
9 %CheckIsBootstrapping(); 9 %CheckIsBootstrapping();
10 10
(...skipping 29 matching lines...) Expand all
40 40
41 utils.Import(function(from) { 41 utils.Import(function(from) {
42 MathMax = from.MathMax; 42 MathMax = from.MathMax;
43 MathMin = from.MathMin; 43 MathMin = from.MathMin;
44 }); 44 });
45 45
46 var InternalArray = utils.InternalArray; 46 var InternalArray = utils.InternalArray;
47 47
48 // --------------- Typed Arrays --------------------- 48 // --------------- Typed Arrays ---------------------
49 49
50 function TypedArray() {
51 if (!%_IsConstructCall()) {
52 throw MakeTypeError(kConstructorNotFunction, "TypedArray")
53 }
54 // TODO(littledan): When the TypedArrays code is refactored to provide
55 // a common constructor entrypoint for v8:4182, call that here.
56 }
57
58 function TypedArray_GetBuffer() {
59 if (!%_IsTypedArray(this)) {
60 throw MakeTypeError(kIncompatibleMethodReceiver, "TypedArray.buffer", this);
61 }
62 return %TypedArrayGetBuffer(this);
63 }
64
65 function TypedArray_GetByteLength() {
66 if (!%_IsTypedArray(this)) {
67 throw MakeTypeError(kIncompatibleMethodReceiver, "TypedArray.byteLength",
68 this);
69 }
70 return %_ArrayBufferViewGetByteLength(this);
71 }
72
73 function TypedArray_GetByteOffset() {
74 if (!%_IsTypedArray(this)) {
75 throw MakeTypeError(kIncompatibleMethodReceiver, "TypedArray.byteOffset",
76 this);
77 }
78 return %_ArrayBufferViewGetByteOffset(this);
79 }
80
81 function TypedArray_GetLength() {
82 if (!%_IsTypedArray(this)) {
83 throw MakeTypeError(kIncompatibleMethodReceiver, "TypedArray.length", this);
84 }
85 return %_TypedArrayGetLength(this);
86 }
87
50 macro TYPED_ARRAY_CONSTRUCTOR(ARRAY_ID, NAME, ELEMENT_SIZE) 88 macro TYPED_ARRAY_CONSTRUCTOR(ARRAY_ID, NAME, ELEMENT_SIZE)
51 function NAMEConstructByArrayBuffer(obj, buffer, byteOffset, length) { 89 function NAMEConstructByArrayBuffer(obj, buffer, byteOffset, length) {
52 if (!IS_UNDEFINED(byteOffset)) { 90 if (!IS_UNDEFINED(byteOffset)) {
53 byteOffset = 91 byteOffset =
54 $toPositiveInteger(byteOffset, kInvalidTypedArrayLength); 92 $toPositiveInteger(byteOffset, kInvalidTypedArrayLength);
55 } 93 }
56 if (!IS_UNDEFINED(length)) { 94 if (!IS_UNDEFINED(length)) {
57 length = $toPositiveInteger(length, kInvalidTypedArrayLength); 95 length = $toPositiveInteger(length, kInvalidTypedArrayLength);
58 } 96 }
59 97
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 NAMEConstructByArrayLike(this, arg1); 203 NAMEConstructByArrayLike(this, arg1);
166 } else { 204 } else {
167 NAMEConstructByIterable(this, arg1, iteratorFn); 205 NAMEConstructByIterable(this, arg1, iteratorFn);
168 } 206 }
169 } 207 }
170 } else { 208 } else {
171 throw MakeTypeError(kConstructorNotFunction, "NAME") 209 throw MakeTypeError(kConstructorNotFunction, "NAME")
172 } 210 }
173 } 211 }
174 212
175 function NAME_GetBuffer() {
176 if (!(%_ClassOf(this) === 'NAME')) {
177 throw MakeTypeError(kIncompatibleMethodReceiver, "NAME.buffer", this);
178 }
179 return %TypedArrayGetBuffer(this);
180 }
181
182 function NAME_GetByteLength() {
183 if (!(%_ClassOf(this) === 'NAME')) {
184 throw MakeTypeError(kIncompatibleMethodReceiver, "NAME.byteLength", this);
185 }
186 return %_ArrayBufferViewGetByteLength(this);
187 }
188
189 function NAME_GetByteOffset() {
190 if (!(%_ClassOf(this) === 'NAME')) {
191 throw MakeTypeError(kIncompatibleMethodReceiver, "NAME.byteOffset", this);
192 }
193 return %_ArrayBufferViewGetByteOffset(this);
194 }
195
196 function NAME_GetLength() {
197 if (!(%_ClassOf(this) === 'NAME')) {
198 throw MakeTypeError(kIncompatibleMethodReceiver, "NAME.length", this);
199 }
200 return %_TypedArrayGetLength(this);
201 }
202
203 function NAMESubArray(begin, end) { 213 function NAMESubArray(begin, end) {
204 if (!(%_ClassOf(this) === 'NAME')) { 214 if (!(%_ClassOf(this) === 'NAME')) {
205 throw MakeTypeError(kIncompatibleMethodReceiver, "NAME.subarray", this); 215 throw MakeTypeError(kIncompatibleMethodReceiver, "NAME.subarray", this);
206 } 216 }
207 var beginInt = TO_INTEGER(begin); 217 var beginInt = TO_INTEGER(begin);
208 if (!IS_UNDEFINED(end)) { 218 if (!IS_UNDEFINED(end)) {
209 end = TO_INTEGER(end); 219 end = TO_INTEGER(end);
210 } 220 }
211 221
212 var srcLength = %_TypedArrayGetLength(this); 222 var srcLength = %_TypedArrayGetLength(this);
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 350
341 function TypedArrayGetToStringTag() { 351 function TypedArrayGetToStringTag() {
342 if (!%_IsTypedArray(this)) return; 352 if (!%_IsTypedArray(this)) return;
343 var name = %_ClassOf(this); 353 var name = %_ClassOf(this);
344 if (IS_UNDEFINED(name)) return; 354 if (IS_UNDEFINED(name)) return;
345 return name; 355 return name;
346 } 356 }
347 357
348 // ------------------------------------------------------------------- 358 // -------------------------------------------------------------------
349 359
360 utils.InstallGetter(TypedArray.prototype, "buffer", TypedArray_GetBuffer);
361 utils.InstallGetter(TypedArray.prototype, "byteOffset",
362 TypedArray_GetByteOffset, DONT_ENUM);
363 utils.InstallGetter(TypedArray.prototype, "byteLength",
364 TypedArray_GetByteLength, DONT_ENUM);
365 utils.InstallGetter(TypedArray.prototype, "length", TypedArray_GetLength,
366 DONT_ENUM);
367 utils.InstallGetter(TypedArray.prototype, symbolToStringTag,
368 TypedArrayGetToStringTag, DONT_ENUM);
369 utils.InstallFunctions(TypedArray.prototype, DONT_ENUM, [
370 "set", TypedArraySet
371 ]);
372
350 macro SETUP_TYPED_ARRAY(ARRAY_ID, NAME, ELEMENT_SIZE) 373 macro SETUP_TYPED_ARRAY(ARRAY_ID, NAME, ELEMENT_SIZE)
351 %SetCode(GlobalNAME, NAMEConstructor); 374 %SetCode(GlobalNAME, NAMEConstructor);
352 %FunctionSetPrototype(GlobalNAME, new GlobalObject()); 375 %InternalSetPrototype(GlobalNAME, TypedArray);
376 %FunctionSetPrototype(GlobalNAME, new TypedArray());
377 %AddNamedProperty(GlobalNAME.prototype,
378 "BYTES_PER_ELEMENT", ELEMENT_SIZE,
379 READ_ONLY | DONT_ENUM | DONT_DELETE);
353 380
354 %AddNamedProperty(GlobalNAME, "BYTES_PER_ELEMENT", ELEMENT_SIZE, 381 %AddNamedProperty(GlobalNAME, "BYTES_PER_ELEMENT", ELEMENT_SIZE,
355 READ_ONLY | DONT_ENUM | DONT_DELETE); 382 READ_ONLY | DONT_ENUM | DONT_DELETE);
356 %AddNamedProperty(GlobalNAME.prototype, 383 %AddNamedProperty(GlobalNAME.prototype,
357 "constructor", global.NAME, DONT_ENUM); 384 "constructor", global.NAME, DONT_ENUM);
358 %AddNamedProperty(GlobalNAME.prototype,
359 "BYTES_PER_ELEMENT", ELEMENT_SIZE,
360 READ_ONLY | DONT_ENUM | DONT_DELETE);
361 utils.InstallGetter(GlobalNAME.prototype, "buffer", NAME_GetBuffer);
362 utils.InstallGetter(GlobalNAME.prototype, "byteOffset", NAME_GetByteOffset,
363 DONT_ENUM | DONT_DELETE);
364 utils.InstallGetter(GlobalNAME.prototype, "byteLength", NAME_GetByteLength,
365 DONT_ENUM | DONT_DELETE);
366 utils.InstallGetter(GlobalNAME.prototype, "length", NAME_GetLength,
367 DONT_ENUM | DONT_DELETE);
368 utils.InstallGetter(GlobalNAME.prototype, symbolToStringTag,
369 TypedArrayGetToStringTag);
370 utils.InstallFunctions(GlobalNAME.prototype, DONT_ENUM, [ 385 utils.InstallFunctions(GlobalNAME.prototype, DONT_ENUM, [
371 "subarray", NAMESubArray, 386 "subarray", NAMESubArray
372 "set", TypedArraySet
373 ]); 387 ]);
374 endmacro 388 endmacro
375 389
376 TYPED_ARRAYS(SETUP_TYPED_ARRAY) 390 TYPED_ARRAYS(SETUP_TYPED_ARRAY)
377 391
378 // --------------------------- DataView ----------------------------- 392 // --------------------------- DataView -----------------------------
379 393
380 function DataViewConstructor(buffer, byteOffset, byteLength) { // length = 3 394 function DataViewConstructor(buffer, byteOffset, byteLength) { // length = 3
381 if (%_IsConstructCall()) { 395 if (%_IsConstructCall()) {
382 // TODO(binji): support SharedArrayBuffers? 396 // TODO(binji): support SharedArrayBuffers?
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 "setUint32", DataViewSetUint32JS, 514 "setUint32", DataViewSetUint32JS,
501 515
502 "getFloat32", DataViewGetFloat32JS, 516 "getFloat32", DataViewGetFloat32JS,
503 "setFloat32", DataViewSetFloat32JS, 517 "setFloat32", DataViewSetFloat32JS,
504 518
505 "getFloat64", DataViewGetFloat64JS, 519 "getFloat64", DataViewGetFloat64JS,
506 "setFloat64", DataViewSetFloat64JS 520 "setFloat64", DataViewSetFloat64JS
507 ]); 521 ]);
508 522
509 }) 523 })
OLDNEW
« no previous file with comments | « src/runtime/runtime-object.cc ('k') | test/mjsunit/es6/built-in-accessor-names.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698