summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/asm/noexpose-wasm.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/asm/noexpose-wasm.js')
-rw-r--r--deps/v8/test/mjsunit/asm/noexpose-wasm.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/asm/noexpose-wasm.js b/deps/v8/test/mjsunit/asm/noexpose-wasm.js
new file mode 100644
index 0000000000..7336ab2727
--- /dev/null
+++ b/deps/v8/test/mjsunit/asm/noexpose-wasm.js
@@ -0,0 +1,37 @@
+// Copyright 2017 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --noexpose-wasm --validate-asm
+
+assertThrows(() => { let x = WebAssembly.Module; });
+
+function Module(stdlib, foreign, heap) {
+ "use asm";
+ function f1(i) {
+ i = i|0;
+ return (i | 0) / 3 | 0;
+ }
+ function f2(i) {
+ i = i|0;
+ return (i | 0) / 13 | 0;
+ }
+ function f3(i) {
+ i = i|0;
+ return (i | 0) / 1024 | 0;
+ }
+ function f4(i) {
+ i = i|0;
+ return (i | 0) / 3733331 | 0;
+ }
+ return { f1: f1, f2: f2, f3: f3, f4: f4 };
+}
+
+var m = Module(this, {}, new ArrayBuffer(1024));
+
+for (var i = -2147483648; i < 2147483648; i += 3999777) {
+ assertEquals(i / 3 | 0, m.f1(i));
+ assertEquals(i / 13 | 0, m.f2(i));
+ assertEquals(i / 1024 | 0, m.f3(i));
+ assertEquals(i / 3733331 | 0, m.f4(i));
+}