v8/test/message/fail/settimeout.js
Clemens Hammacher eee9fcbccb [d8] Report errors in setTimeout
If an error is thrown in a setTimeout callback, exit d8 with an error
code.
This will allow us to test asynchronous failures better, see linked bug.

R=yangguo@chromium.org
CC=mathias@chromium.org

Bug: v8:6981
Change-Id: Ifad152e6039f12dc4ceaac0bdc4b87f709898087
Reviewed-on: https://chromium-review.googlesource.com/738372
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49104}
2017-11-03 12:21:53 +00:00

27 lines
583 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: --no-stress-opt
var state = 0;
function inc() {
console.log("increment state");
state++;
}
function repeat() {
console.log("current state: " + state);
if (state < 3) {
setTimeout(inc, 0);
setTimeout(repeat, 0);
} else {
setTimeout(function() { throw new Error(); });
}
}
setTimeout(inc, 0);
console.log("state: " + state);
setTimeout(repeat, 0);
console.log("state: " + state);