diff options
Diffstat (limited to 'deps/v8/test/mjsunit/wasm/compilation-hints-streaming-lazy-validation.js')
-rw-r--r-- | deps/v8/test/mjsunit/wasm/compilation-hints-streaming-lazy-validation.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/wasm/compilation-hints-streaming-lazy-validation.js b/deps/v8/test/mjsunit/wasm/compilation-hints-streaming-lazy-validation.js new file mode 100644 index 0000000000..6db4c0e328 --- /dev/null +++ b/deps/v8/test/mjsunit/wasm/compilation-hints-streaming-lazy-validation.js @@ -0,0 +1,33 @@ +// Copyright 2019 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: --experimental-wasm-compilation-hints --wasm-test-streaming --wasm-lazy-validation + +load('test/mjsunit/wasm/wasm-module-builder.js'); + +(function testInstantiateStreamingLazyValidation() { + print(arguments.callee.name); + let builder = new WasmModuleBuilder(); + builder.addFunction('id', kSig_i_i) + .addBody([kExprGetLocal, 0, + kExprI64Const, 1, + kExprI32Mul]) + .setCompilationHint(kCompilationHintStrategyLazy, + kCompilationHintTierDefault, + kCompilationHintTierDefault) + .exportFunc(); + + let expected_error_msg = "Compiling function #0:\"id\" failed: i32.mul[1] " + + "expected type i32, found i64.const of type i64 " + + "@+56"; + let assertCompileErrorOnInvocation = function(instance) { + assertThrows(() => instance.exports.id(3), + WebAssembly.CompileError, + expected_error_msg) + }; + + let bytes = builder.toBuffer(); + assertPromiseResult(WebAssembly.instantiateStreaming(Promise.resolve(bytes)) + .then(({module, instance}) => assertCompileErrorOnInvocation(instance))); +})(); |