Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 062d27e495a341697e99ed4995907e68c844ed51..2ef82dcb73bc184c5adeb20247de0d3ac9a45077 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -7575,7 +7575,11 @@ Local<ArrayBuffer> v8::ArrayBuffer::New(Isolate* isolate, size_t byte_length) { |
ENTER_V8_NO_SCRIPT_NO_EXCEPTION(i_isolate); |
i::Handle<i::JSArrayBuffer> obj = |
i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kNotShared); |
- i::JSArrayBuffer::SetupAllocatingData(obj, i_isolate, byte_length); |
+ // TODO(jbroman): It may be useful in the future to provide a MaybeLocal |
+ // version that throws an exception or otherwise does not crash. |
+ if (!i::JSArrayBuffer::SetupAllocatingData(obj, i_isolate, byte_length)) { |
+ i::FatalProcessOutOfMemory("v8::ArrayBuffer::New"); |
+ } |
return Utils::ToLocal(obj); |
} |
@@ -7765,8 +7769,12 @@ Local<SharedArrayBuffer> v8::SharedArrayBuffer::New(Isolate* isolate, |
ENTER_V8_NO_SCRIPT_NO_EXCEPTION(i_isolate); |
i::Handle<i::JSArrayBuffer> obj = |
i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kShared); |
- i::JSArrayBuffer::SetupAllocatingData(obj, i_isolate, byte_length, true, |
- i::SharedFlag::kShared); |
+ // TODO(jbroman): It may be useful in the future to provide a MaybeLocal |
+ // version that throws an exception or otherwise does not crash. |
+ if (!i::JSArrayBuffer::SetupAllocatingData(obj, i_isolate, byte_length, true, |
+ i::SharedFlag::kShared)) { |
+ i::FatalProcessOutOfMemory("v8::SharedArrayBuffer::New"); |
+ } |
return Utils::ToLocalShared(obj); |
} |