Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index b19db9e0b9f439f8a81a2e1655aa29fafe2b9650..37e5d1d25ddd519e7aec2f423ec36e826ddc059d 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -56,6 +56,7 @@ |
// - JSReceiver (suitable for property access) |
// - JSObject |
// - JSArray |
+// - JSArrayBuffer |
// - JSSet |
// - JSMap |
// - JSWeakMap |
@@ -399,6 +400,7 @@ const int kStubMinorKeyBits = kBitsPerInt - kSmiTagSize - kStubMajorKeyBits; |
V(JS_BUILTINS_OBJECT_TYPE) \ |
V(JS_GLOBAL_PROXY_TYPE) \ |
V(JS_ARRAY_TYPE) \ |
+ V(JS_ARRAY_BUFFER_TYPE) \ |
V(JS_PROXY_TYPE) \ |
V(JS_WEAK_MAP_TYPE) \ |
V(JS_REGEXP_TYPE) \ |
@@ -729,6 +731,7 @@ enum InstanceType { |
JS_BUILTINS_OBJECT_TYPE, |
JS_GLOBAL_PROXY_TYPE, |
JS_ARRAY_TYPE, |
+ JS_ARRAY_BUFFER_TYPE, |
JS_SET_TYPE, |
JS_MAP_TYPE, |
JS_WEAK_MAP_TYPE, |
@@ -974,6 +977,7 @@ class MaybeObject BASE_EMBEDDED { |
V(Foreign) \ |
V(Boolean) \ |
V(JSArray) \ |
+ V(JSArrayBuffer) \ |
V(JSProxy) \ |
V(JSFunctionProxy) \ |
V(JSSet) \ |
@@ -8472,6 +8476,30 @@ class JSWeakMap: public JSObject { |
}; |
+class JSArrayBuffer: public JSObject { |
+ public: |
+ // [backing_store]: backing memory for thsi array |
+ DECL_ACCESSORS(backing_store, void) |
+ |
+ // [byte_length]: length in bytes |
+ DECL_ACCESSORS(byte_length, Object) |
+ |
+ // Casting. |
+ static inline JSArrayBuffer* cast(Object* obj); |
+ |
+ // Dispatched behavior. |
+ DECLARE_PRINTER(JSArrayBuffer) |
+ DECLARE_VERIFIER(JSArrayBuffer) |
+ |
+ static const int kBackingStoreOffset = JSObject::kHeaderSize; |
+ static const int kByteLengthOffset = kBackingStoreOffset + kPointerSize; |
+ static const int kSize = kByteLengthOffset + kPointerSize; |
+ |
+ private: |
+ DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayBuffer); |
+}; |
+ |
+ |
// Foreign describes objects pointing from JavaScript to C structures. |
// Since they cannot contain references to JS HeapObjects they can be |
// placed in old_data_space. |