Files
sdk/pkg/dev_compiler/test/codegen/expect/temps.js
T
Olivier Chafik 3886194414 Generate _runtime.js from dart (https://github.com/dart-lang/dev_compiler/issues/310)
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 .
2016-01-21 00:45:31 +00:00

52 lines
1.4 KiB
JavaScript

dart_library.library('temps', null, /* Imports */[
'dart/_runtime',
'dart/core'
], /* Lazy imports */[
], function(exports, dart, core) {
'use strict';
let dartx = dart.dartx;
const _x = Symbol('_x');
const __x = Symbol('__x');
const _function = Symbol('_function');
class FormalCollision extends core.Object {
FormalCollision(x, _x$, func) {
this[_x] = x;
this[__x] = _x$;
this[_function] = func;
}
}
dart.setSignature(FormalCollision, {
constructors: () => ({FormalCollision: [FormalCollision, [core.int, core.int, core.Function]]})
});
const _opt = Symbol('_opt');
class OptionalArg extends core.Object {
OptionalArg(opt) {
if (opt === void 0) opt = 123;
this[_opt] = opt;
this.opt = null;
}
named(opts) {
let opt = opts && 'opt' in opts ? opts.opt : 456;
this.opt = opt;
this[_opt] = null;
}
}
dart.defineNamedConstructor(OptionalArg, 'named');
dart.setSignature(OptionalArg, {
constructors: () => ({
OptionalArg: [OptionalArg, [], [core.int]],
named: [OptionalArg, [], {opt: core.int}]
})
});
function main() {
core.print(new FormalCollision(1, 2, dart.fn(x => x)));
core.print(new OptionalArg()[_opt]);
core.print(new OptionalArg.named()[_opt]);
}
dart.fn(main);
// Exports:
exports.FormalCollision = FormalCollision;
exports.OptionalArg = OptionalArg;
exports.main = main;
});