| Index: src/d8.cc
|
| diff --git a/src/d8.cc b/src/d8.cc
|
| index cf448172f7a9f8afd500a240abbe0d9312647034..9f14109091aeb9c1310a06624093877adbdf6f88 100644
|
| --- a/src/d8.cc
|
| +++ b/src/d8.cc
|
| @@ -1593,6 +1593,18 @@ class ShellArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
|
| };
|
|
|
|
|
| +class ShellSharedArrayBufferAllocator
|
| + : public v8::SharedArrayBuffer::Allocator {
|
| + public:
|
| + virtual void* Allocate(size_t length) {
|
| + void* data = AllocateUninitialized(length);
|
| + return data == NULL ? data : memset(data, 0, length);
|
| + }
|
| + virtual void* AllocateUninitialized(size_t length) { return malloc(length); }
|
| + virtual void Free(void* data, size_t) { free(data); }
|
| +};
|
| +
|
| +
|
| class MockArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
|
| public:
|
| void* Allocate(size_t) override { return malloc(1); }
|
| @@ -1601,6 +1613,14 @@ class MockArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
|
| };
|
|
|
|
|
| +class MockSharedArrayBufferAllocator : public v8::SharedArrayBuffer::Allocator {
|
| + public:
|
| + void* Allocate(size_t) override { return malloc(1); }
|
| + void* AllocateUninitialized(size_t length) override { return malloc(1); }
|
| + void Free(void* p, size_t) override { free(p); }
|
| +};
|
| +
|
| +
|
| int Shell::Main(int argc, char* argv[]) {
|
| #if (defined(_WIN32) || defined(_WIN64))
|
| UINT new_flags =
|
| @@ -1631,10 +1651,14 @@ int Shell::Main(int argc, char* argv[]) {
|
| SetFlagsFromString("--redirect-code-traces-to=code.asm");
|
| ShellArrayBufferAllocator array_buffer_allocator;
|
| MockArrayBufferAllocator mock_arraybuffer_allocator;
|
| + ShellSharedArrayBufferAllocator shared_array_buffer_allocator;
|
| + MockSharedArrayBufferAllocator mock_shared_arraybuffer_allocator;
|
| if (options.mock_arraybuffer_allocator) {
|
| v8::V8::SetArrayBufferAllocator(&mock_arraybuffer_allocator);
|
| + v8::V8::SetSharedArrayBufferAllocator(&mock_shared_arraybuffer_allocator);
|
| } else {
|
| v8::V8::SetArrayBufferAllocator(&array_buffer_allocator);
|
| + v8::V8::SetSharedArrayBufferAllocator(&shared_array_buffer_allocator);
|
| }
|
| int result = 0;
|
| Isolate::CreateParams create_params;
|
|
|