summaryrefslogtreecommitdiff
path: root/libdeno/binding.cc
diff options
context:
space:
mode:
authorBert Belder <bertbelder@gmail.com>2019-02-08 20:32:17 -0800
committerGitHub <noreply@github.com>2019-02-08 20:32:17 -0800
commitbbe2004f5d2b434fe5942fc3c8954a297b317fd0 (patch)
tree4beadfe0d7c087977d2c546f55c992d11efd8c4e /libdeno/binding.cc
parent7380b19459db3644271f1623428245e29e716f0a (diff)
Shared buffer fixes (#1644)
* makes `libdeno.shared` a `SharedArrayBuffer` instead of a regular `ArrayBuffer`. * fixes `libdeno.shared` becoming undefined after accessing it once.
Diffstat (limited to 'libdeno/binding.cc')
-rw-r--r--libdeno/binding.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/libdeno/binding.cc b/libdeno/binding.cc
index 961fd1797..78e4cad29 100644
--- a/libdeno/binding.cc
+++ b/libdeno/binding.cc
@@ -316,14 +316,15 @@ void Shared(v8::Local<v8::Name> property,
if (d->shared_.data_ptr == nullptr) {
return;
}
- v8::Local<v8::ArrayBuffer> ab;
+ v8::Local<v8::SharedArrayBuffer> ab;
if (d->shared_ab_.IsEmpty()) {
// Lazily initialize the persistent external ArrayBuffer.
- ab = v8::ArrayBuffer::New(isolate, d->shared_.data_ptr, d->shared_.data_len,
- v8::ArrayBufferCreationMode::kExternalized);
+ ab = v8::SharedArrayBuffer::New(isolate, d->shared_.data_ptr,
+ d->shared_.data_len,
+ v8::ArrayBufferCreationMode::kExternalized);
d->shared_ab_.Reset(isolate, ab);
}
- info.GetReturnValue().Set(ab);
+ info.GetReturnValue().Set(d->shared_ab_);
}
void DenoIsolate::ClearModules() {