5e8eb624fa
This fixes a corner case which allowed warnings during the asm.js instantiation to be promoted to actual exceptions. Even instantiation attempts that fail are not allowed to throw exceptions observable by JavaScript, but need to fall back to JavaScript execution. R=clemensh@chromium.org TEST=mjsunit/regress/regress-6203 BUG=v8:6203 Change-Id: I86f5a3adda4bcfe63b5cddc42d8ae1c3dbb88147 Reviewed-on: https://chromium-review.googlesource.com/468808 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44414}
21 lines
551 B
JavaScript
21 lines
551 B
JavaScript
// 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.
|
|
|
|
function Module(stdlib, imports, buffer) {
|
|
"use asm";
|
|
var a = imports.x | 0;
|
|
function f() {
|
|
return a | 0;
|
|
}
|
|
return { f:f };
|
|
}
|
|
try {
|
|
Module(this).f();
|
|
} catch(e) {
|
|
assertInstanceof(e, TypeError);
|
|
// The following print is needed to cross the API boundary and thereby flush
|
|
// out any leftover scheduled exceptions. Any other API function would do.
|
|
print(e);
|
|
}
|