| // 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. |
| |
| // @dart = 2.7 |
| |
| // 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); |
| } |