| // Copyright (c) 2013, 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. | |
| // Test that dart2js can handle unexpected exception types. | |
| library native_exception_test; | |
| import 'native_testing.dart'; | |
| main() { | |
| var previous; | |
| check(e) { | |
| print('$e'); | |
| Expect.equals(e, e); | |
| Expect.notEquals(e, new Object()); | |
| Expect.notEquals(e, previous); | |
| previous = e; | |
| return '$e' != '[object Object]'; | |
| } | |
| Expect.throws(() { | |
| JS('void', 'noGlobalVariableWithThisName'); | |
| }, check); | |
| Expect.throws(() { | |
| JS('void', 'throw 3'); | |
| }, check); | |
| Expect.throws(() { | |
| JS('bool', 'Object.prototype.hasOwnProperty.call(undefined, "foo")'); | |
| }, check); | |
| Expect.throws(() { | |
| JS('void', 'throw new ReferenceError()'); | |
| }, check); | |
| Expect.throws(() { | |
| JS('void', 'throw void 0'); | |
| }, check); | |
| Expect.throws(() { | |
| JS('void', 'throw "a string"'); | |
| }, check); | |
| Expect.throws(() { | |
| JS('void', 'throw null'); | |
| }, check); | |
| } |