fc327e2308
We did not associate any position to the stack check in the wasm function prologue, hence a check failed later when trying to map the non-existent position to the asm.js source position. With this CL, we add a mapping to the source position table, mapping the stack check call to byte offset 0 (which is distinct from any valid instruction position). Also, we add another entry to the asm.js source position sidetable, mapping byte offset 0 to the start source position of the function body. R=titzer@chromium.org, ahaas@chromium.org BUG=chromium:677685 Review-Url: https://codereview.chromium.org/2609363004 Cr-Commit-Position: refs/heads/master@{#42130}
33 lines
586 B
JavaScript
33 lines
586 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.
|
|
|
|
// Flags: --ignition-staging --stack-size=100
|
|
|
|
function Module(stdlib) {
|
|
"use asm";
|
|
|
|
var fround = stdlib.Math.fround;
|
|
|
|
// f: double -> float
|
|
function f(a) {
|
|
a = +a;
|
|
return fround(a);
|
|
}
|
|
|
|
return { f: f };
|
|
}
|
|
|
|
var f = Module({ Math: Math }).f;
|
|
|
|
function runNearStackLimit() {
|
|
function g() { try { g(); } catch(e) { f(); } };
|
|
g();
|
|
}
|
|
|
|
(function () {
|
|
function g() {}
|
|
|
|
runNearStackLimit(g);
|
|
})();
|