Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 14d3a823ebf637a75322e464704085812ab6dcb5..8cc13840bd7a15a254806a4895a751869c8eb9b2 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -2673,11 +2673,11 @@ bool Value::IsTypedArray() const { |
} |
-#define VALUE_IS_TYPED_ARRAY(Type, typeName, TYPE, ctype, size) \ |
- bool Value::Is##Type##Array() const { \ |
- i::Handle<i::Object> obj = Utils::OpenHandle(this); \ |
- return obj->IsJSTypedArray() && \ |
- i::JSTypedArray::cast(*obj)->type() == kExternal##Type##Array; \ |
+#define VALUE_IS_TYPED_ARRAY(Type, typeName, TYPE, ctype, size) \ |
+ bool Value::Is##Type##Array() const { \ |
+ i::Handle<i::Object> obj = Utils::OpenHandle(this); \ |
+ return obj->IsJSTypedArray() && \ |
+ i::JSTypedArray::cast(*obj)->type() == i::kExternal##Type##Array; \ |
} |
TYPED_ARRAYS(VALUE_IS_TYPED_ARRAY) |
@@ -3091,11 +3091,10 @@ void v8::TypedArray::CheckCast(Value* that) { |
#define CHECK_TYPED_ARRAY_CAST(Type, typeName, TYPE, ctype, size) \ |
void v8::Type##Array::CheckCast(Value* that) { \ |
i::Handle<i::Object> obj = Utils::OpenHandle(that); \ |
- Utils::ApiCheck(obj->IsJSTypedArray() && \ |
- i::JSTypedArray::cast(*obj)->type() == \ |
- kExternal##Type##Array, \ |
- "v8::" #Type "Array::Cast()", \ |
- "Could not convert to " #Type "Array"); \ |
+ Utils::ApiCheck( \ |
+ obj->IsJSTypedArray() && \ |
+ i::JSTypedArray::cast(*obj)->type() == i::kExternal##Type##Array, \ |
+ "v8::" #Type "Array::Cast()", "Could not convert to " #Type "Array"); \ |
} |
@@ -4198,147 +4197,6 @@ bool v8::Object::DeleteHiddenValue(v8::Handle<v8::String> key) { |
} |
-namespace { |
- |
-static i::ElementsKind GetElementsKindFromExternalArrayType( |
- ExternalArrayType array_type) { |
- switch (array_type) { |
-#define ARRAY_TYPE_TO_ELEMENTS_KIND(Type, type, TYPE, ctype, size) \ |
- case kExternal##Type##Array: \ |
- return i::EXTERNAL_##TYPE##_ELEMENTS; |
- |
- TYPED_ARRAYS(ARRAY_TYPE_TO_ELEMENTS_KIND) |
-#undef ARRAY_TYPE_TO_ELEMENTS_KIND |
- } |
- UNREACHABLE(); |
- return i::DICTIONARY_ELEMENTS; |
-} |
- |
- |
-void PrepareExternalArrayElements(i::Handle<i::JSObject> object, |
- void* data, |
- ExternalArrayType array_type, |
- int length) { |
- i::Isolate* isolate = object->GetIsolate(); |
- i::Handle<i::ExternalArray> array = |
- isolate->factory()->NewExternalArray(length, array_type, data); |
- |
- i::Handle<i::Map> external_array_map = |
- i::JSObject::GetElementsTransitionMap( |
- object, |
- GetElementsKindFromExternalArrayType(array_type)); |
- |
- i::JSObject::SetMapAndElements(object, external_array_map, array); |
-} |
- |
-} // namespace |
- |
- |
-void v8::Object::SetIndexedPropertiesToPixelData(uint8_t* data, int length) { |
- auto self = Utils::OpenHandle(this); |
- auto isolate = self->GetIsolate(); |
- ENTER_V8(isolate); |
- i::HandleScope scope(isolate); |
- if (!Utils::ApiCheck(length >= 0 && |
- length <= i::ExternalUint8ClampedArray::kMaxLength, |
- "v8::Object::SetIndexedPropertiesToPixelData()", |
- "length exceeds max acceptable value")) { |
- return; |
- } |
- if (!Utils::ApiCheck(!self->IsJSArray(), |
- "v8::Object::SetIndexedPropertiesToPixelData()", |
- "JSArray is not supported")) { |
- return; |
- } |
- PrepareExternalArrayElements(self, data, kExternalUint8ClampedArray, length); |
-} |
- |
- |
-bool v8::Object::HasIndexedPropertiesInPixelData() { |
- auto self = Utils::OpenHandle(this); |
- return self->HasExternalUint8ClampedElements(); |
-} |
- |
- |
-uint8_t* v8::Object::GetIndexedPropertiesPixelData() { |
- auto self = Utils::OpenHandle(this); |
- if (self->HasExternalUint8ClampedElements()) { |
- return i::ExternalUint8ClampedArray::cast(self->elements())-> |
- external_uint8_clamped_pointer(); |
- } |
- return nullptr; |
-} |
- |
- |
-int v8::Object::GetIndexedPropertiesPixelDataLength() { |
- auto self = Utils::OpenHandle(this); |
- if (self->HasExternalUint8ClampedElements()) { |
- return i::ExternalUint8ClampedArray::cast(self->elements())->length(); |
- } |
- return -1; |
-} |
- |
- |
-void v8::Object::SetIndexedPropertiesToExternalArrayData( |
- void* data, |
- ExternalArrayType array_type, |
- int length) { |
- auto self = Utils::OpenHandle(this); |
- auto isolate = self->GetIsolate(); |
- ENTER_V8(isolate); |
- i::HandleScope scope(isolate); |
- if (!Utils::ApiCheck(length >= 0 && length <= i::ExternalArray::kMaxLength, |
- "v8::Object::SetIndexedPropertiesToExternalArrayData()", |
- "length exceeds max acceptable value")) { |
- return; |
- } |
- if (!Utils::ApiCheck(!self->IsJSArray(), |
- "v8::Object::SetIndexedPropertiesToExternalArrayData()", |
- "JSArray is not supported")) { |
- return; |
- } |
- PrepareExternalArrayElements(self, data, array_type, length); |
-} |
- |
- |
-bool v8::Object::HasIndexedPropertiesInExternalArrayData() { |
- auto self = Utils::OpenHandle(this); |
- return self->HasExternalArrayElements(); |
-} |
- |
- |
-void* v8::Object::GetIndexedPropertiesExternalArrayData() { |
- auto self = Utils::OpenHandle(this); |
- if (self->HasExternalArrayElements()) { |
- return i::ExternalArray::cast(self->elements())->external_pointer(); |
- } |
- return nullptr; |
-} |
- |
- |
-ExternalArrayType v8::Object::GetIndexedPropertiesExternalArrayDataType() { |
- auto self = Utils::OpenHandle(this); |
- switch (self->elements()->map()->instance_type()) { |
-#define INSTANCE_TYPE_TO_ARRAY_TYPE(Type, type, TYPE, ctype, size) \ |
- case i::EXTERNAL_##TYPE##_ARRAY_TYPE: \ |
- return kExternal##Type##Array; |
- TYPED_ARRAYS(INSTANCE_TYPE_TO_ARRAY_TYPE) |
-#undef INSTANCE_TYPE_TO_ARRAY_TYPE |
- default: |
- return static_cast<ExternalArrayType>(-1); |
- } |
-} |
- |
- |
-int v8::Object::GetIndexedPropertiesExternalArrayDataLength() { |
- auto self = Utils::OpenHandle(this); |
- if (self->HasExternalArrayElements()) { |
- return i::ExternalArray::cast(self->elements())->length(); |
- } |
- return -1; |
-} |
- |
- |
bool v8::Object::IsCallable() { |
auto self = Utils::OpenHandle(this); |
return self->IsCallable(); |
@@ -6514,7 +6372,7 @@ size_t v8::TypedArray::Length() { |
} \ |
i::Handle<i::JSArrayBuffer> buffer = Utils::OpenHandle(*array_buffer); \ |
i::Handle<i::JSTypedArray> obj = isolate->factory()->NewJSTypedArray( \ |
- v8::kExternal##Type##Array, buffer, byte_offset, length); \ |
+ i::kExternal##Type##Array, buffer, byte_offset, length); \ |
return Utils::ToLocal##Type##Array(obj); \ |
} |