diff options
author | Bert Belder <bertbelder@gmail.com> | 2019-02-08 20:32:17 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-08 20:32:17 -0800 |
commit | bbe2004f5d2b434fe5942fc3c8954a297b317fd0 (patch) | |
tree | 4beadfe0d7c087977d2c546f55c992d11efd8c4e /libdeno/libdeno_test.cc | |
parent | 7380b19459db3644271f1623428245e29e716f0a (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/libdeno_test.cc')
-rw-r--r-- | libdeno/libdeno_test.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libdeno/libdeno_test.cc b/libdeno/libdeno_test.cc index b14b4758b..0936c53b4 100644 --- a/libdeno/libdeno_test.cc +++ b/libdeno/libdeno_test.cc @@ -289,3 +289,16 @@ TEST(LibDenoTest, Utf8Bug) { EXPECT_EQ(nullptr, deno_last_exception(d)); deno_delete(d); } + +TEST(LibDenoTest, SharedAtomics) { + int32_t s[] = {0, 1, 2}; + deno_buf shared = {nullptr, 0, reinterpret_cast<uint8_t*>(s), sizeof s}; + Deno* d = deno_new(deno_config{0, empty, shared, nullptr}); + deno_execute(d, nullptr, "a.js", + "Atomics.add(new Int32Array(libdeno.shared), 0, 1)"); + EXPECT_EQ(nullptr, deno_last_exception(d)); + EXPECT_EQ(s[0], 1); + EXPECT_EQ(s[1], 1); + EXPECT_EQ(s[2], 2); + deno_delete(d); +} |