Index: src/harmony-sharedarraybuffer.js |
diff --git a/src/harmony-sharedarraybuffer.js b/src/harmony-sharedarraybuffer.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9843e79a2896d98da54ea6c9109adfdbd2a370b5 |
--- /dev/null |
+++ b/src/harmony-sharedarraybuffer.js |
@@ -0,0 +1,56 @@ |
+// Copyright 2015 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+(function(global, shared, exports) { |
+ |
+"use strict"; |
+ |
+%CheckIsBootstrapping(); |
+ |
+var GlobalSharedArrayBuffer = global.SharedArrayBuffer; |
+var GlobalObject = global.Object; |
+ |
+// ------------------------------------------------------------------- |
+ |
+function SharedArrayBufferConstructor(length) { // length = 1 |
+ if (%_IsConstructCall()) { |
+ var byteLength = $toPositiveInteger(length, kInvalidArrayBufferLength); |
+ %ArrayBufferInitialize(this, byteLength, kShared); |
+ } else { |
+ throw MakeTypeError(kConstructorNotFunction, "SharedArrayBuffer"); |
+ } |
+} |
+ |
+function SharedArrayBufferGetByteLen() { |
+ if (!IS_SHAREDARRAYBUFFER(this)) { |
+ throw MakeTypeError(kIncompatibleMethodReceiver, |
+ 'SharedArrayBuffer.prototype.byteLength', this); |
+ } |
+ return %_ArrayBufferGetByteLength(this); |
+} |
+ |
+function SharedArrayBufferIsViewJS(obj) { |
+ return %ArrayBufferIsView(obj); |
+} |
+ |
+ |
+// Set up the SharedArrayBuffer constructor function. |
+%SetCode(GlobalSharedArrayBuffer, SharedArrayBufferConstructor); |
+%FunctionSetPrototype(GlobalSharedArrayBuffer, new GlobalObject()); |
+ |
+// Set up the constructor property on the SharedArrayBuffer prototype object. |
+%AddNamedProperty(GlobalSharedArrayBuffer.prototype, "constructor", |
+ GlobalSharedArrayBuffer, DONT_ENUM); |
+ |
+%AddNamedProperty(GlobalSharedArrayBuffer.prototype, |
+ symbolToStringTag, "SharedArrayBuffer", DONT_ENUM | READ_ONLY); |
+ |
+$installGetter(GlobalSharedArrayBuffer.prototype, "byteLength", |
+ SharedArrayBufferGetByteLen); |
+ |
+$installFunctions(GlobalSharedArrayBuffer, DONT_ENUM, [ |
+ "isView", SharedArrayBufferIsViewJS |
+]); |
+ |
+}) |