blob: b4959a4af9309b71b3e84314557d0d2790e5662b [file] [log] [blame]
/*
* Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
* for details. All rights reserved. Use of this source code is governed by a
* BSD-style license that can be found in the LICENSE file.
*/
/**
* @assertion void handleUncaughtError(error, StackTrace stackTrace)
* Handles uncaught asynchronous errors.
* @description Checks that handleUncaughtError callback can be set via
* ZoneSpecification and that correct callback is invoked.
* @author ilya
*/
import "dart:async";
import "../../../Utils/expect.dart";
var error = 1;
var stackTrace;
void test() {
try {
throw error;
} catch (e, st) {
stackTrace = st;
Zone.current.handleUncaughtError(e, st);
}
}
void myErrorHandler(Zone self, ZoneDelegate parent, Zone zone, e, st) {
Expect.identical(error, e);
Expect.identical(stackTrace, st);
}
main() {
Zone.current.fork(
specification: new ZoneSpecification(
handleUncaughtError: myErrorHandler
)
).run(test);
}