3886194414
The following part files were ported from the original .js (lib/runtime/dart/_foo.js -> input_sdk/private/foo.dart):
- input_sdk/private/rtti.dart
- input_sdk/private/types.dart
- input_sdk/private/classes.dart
- input_sdk/private/errors.dart
- input_sdk/private/generators.dart
- input_sdk/private/operations.dart
- input_sdk/private/runtime.dart
Notes:
- Introduced genericTypeConstructor intrinsic: `JS('', '#(type)', genericTypeConstructor(List))` generates `core.List$(type)`
- Used new JS quasiquotes everywhere
- Depends on new internal `@JSExportName` annotation to alias symbols like dart.{as, is, const, assert, export, implements, throw, async, dynamic, void} (see https://codereview.chromium.org/1580413002/)
BUG=
R=jmesserly@google.com
Review URL: https://codereview.chromium.org/1530563003 .
82 lines
1.4 KiB
JavaScript
82 lines
1.4 KiB
JavaScript
dart_library.library('try_catch', null, /* Imports */[
|
|
'dart/_runtime',
|
|
'dart/core'
|
|
], /* Lazy imports */[
|
|
], function(exports, dart, core) {
|
|
'use strict';
|
|
let dartx = dart.dartx;
|
|
function foo() {
|
|
try {
|
|
dart.throw("hi there");
|
|
} catch (e$) {
|
|
if (dart.is(e$, core.String)) {
|
|
let e = e$;
|
|
let t = dart.stackTrace(e);
|
|
} else {
|
|
let e = e$;
|
|
let t = dart.stackTrace(e);
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
}
|
|
dart.fn(foo);
|
|
function bar() {
|
|
try {
|
|
dart.throw("hi there");
|
|
} catch (e$) {
|
|
let e = e$;
|
|
let t = dart.stackTrace(e);
|
|
}
|
|
|
|
}
|
|
dart.fn(bar);
|
|
function baz() {
|
|
try {
|
|
dart.throw("finally only");
|
|
} finally {
|
|
return true;
|
|
}
|
|
}
|
|
dart.fn(baz);
|
|
function qux() {
|
|
try {
|
|
dart.throw("on only");
|
|
} catch (e) {
|
|
if (dart.is(e, core.String)) {
|
|
let t = dart.stackTrace(e);
|
|
throw e;
|
|
} else
|
|
throw e;
|
|
}
|
|
|
|
}
|
|
dart.fn(qux);
|
|
function wub() {
|
|
try {
|
|
dart.throw("on without exception parameter");
|
|
} catch (e) {
|
|
if (dart.is(e, core.String)) {
|
|
} else
|
|
throw e;
|
|
}
|
|
|
|
}
|
|
dart.fn(wub);
|
|
function main() {
|
|
foo();
|
|
bar();
|
|
baz();
|
|
qux();
|
|
wub();
|
|
}
|
|
dart.fn(main);
|
|
// Exports:
|
|
exports.foo = foo;
|
|
exports.bar = bar;
|
|
exports.baz = baz;
|
|
exports.qux = qux;
|
|
exports.wub = wub;
|
|
exports.main = main;
|
|
});
|