| dart_library.library('notnull', null, /* Imports */[ |
| 'dart/_runtime', |
| 'dart/core' |
| ], /* Lazy imports */[ |
| ], function(exports, dart, core) { |
| 'use strict'; |
| let dartx = dart.dartx; |
| function intAssignments() { |
| let i = 0; |
| i = i & 1; |
| i = i | 1; |
| i = i ^ 1; |
| i = i >> 1; |
| i = i << 1; |
| i = i - 1; |
| i = i % 1; |
| i = i + 1; |
| let t = i; |
| t == null ? i = 1 : t; |
| i = i * 1; |
| i = (i / 1)[dartx.truncate](); |
| i++; |
| --i; |
| core.print(i + 1); |
| let j = 1; |
| j = i < 10 ? 1 : 2; |
| core.print(j + 1); |
| } |
| dart.fn(intAssignments, dart.void, []); |
| function doubleAssignments() { |
| let d = 0.0; |
| d = d / 1; |
| core.print(d + 1); |
| } |
| dart.fn(doubleAssignments, dart.void, []); |
| function boolAssignments() { |
| let b = true; |
| b != b; |
| core.print(b); |
| } |
| dart.fn(boolAssignments, dart.void, []); |
| function increments() { |
| let i = 1; |
| core.print(++i); |
| core.print(i++); |
| core.print(--i); |
| core.print(i--); |
| let j = null; |
| j = 1; |
| core.print((j = dart.notNull(j) + 1)); |
| core.print((() => { |
| let x = j; |
| j = dart.notNull(x) + 1; |
| return x; |
| })()); |
| core.print((j = dart.notNull(j) - 1)); |
| core.print((() => { |
| let x = j; |
| j = dart.notNull(x) - 1; |
| return x; |
| })()); |
| } |
| dart.fn(increments, dart.void, []); |
| function conditionals(cond) { |
| if (cond === void 0) cond = null; |
| let nullable = null; |
| nullable = 1; |
| let nonNullable = 1; |
| let a = dart.notNull(cond) ? nullable : nullable; |
| let b = dart.notNull(cond) ? nullable : nonNullable; |
| let c = dart.notNull(cond) ? nonNullable : nonNullable; |
| let d = dart.notNull(cond) ? nonNullable : nullable; |
| core.print(dart.notNull(a) + dart.notNull(b) + c + dart.notNull(d)); |
| } |
| dart.fn(conditionals, dart.void, [], [core.bool]); |
| function nullAwareOps() { |
| let nullable = null; |
| let nonNullable = 1; |
| let a = (nullable != null ? nullable : nullable); |
| let b = (nullable != null ? nullable : nonNullable); |
| let c = nonNullable; |
| let d = nonNullable; |
| core.print(dart.notNull(a) + dart.notNull(b) + c + d); |
| let s = ""; |
| core.print(dart.notNull(s[dartx.length]) + 1); |
| } |
| dart.fn(nullAwareOps, dart.void, []); |
| function nullableLocals(param) { |
| core.print(dart.notNull(param) + 1); |
| let i = null; |
| i = 1; |
| core.print(dart.notNull(i) + 1); |
| let j = 1; |
| j = i == 1 ? 1 : null; |
| core.print(dart.notNull(j) + 1); |
| } |
| dart.fn(nullableLocals, dart.void, [core.int]); |
| function optParams(x, y) { |
| if (x === void 0) x = null; |
| if (y === void 0) y = 1; |
| core.print(dart.notNull(x) + dart.notNull(y)); |
| } |
| dart.fn(optParams, dart.void, [], [core.int, core.int]); |
| function namedParams(opts) { |
| let x = opts && 'x' in opts ? opts.x : null; |
| let y = opts && 'y' in opts ? opts.y : 1; |
| core.print(dart.notNull(x) + dart.notNull(y)); |
| } |
| dart.fn(namedParams, dart.void, [], {x: core.int, y: core.int}); |
| function forLoops(length) { |
| for (let i = 0; i < 10; i++) { |
| core.print(i + 1); |
| } |
| for (let i = 0; i < dart.notNull(length()); i++) { |
| core.print(i + 1); |
| } |
| for (let i = 0, n = length(); i < dart.notNull(n); i++) { |
| core.print(i + 1); |
| } |
| for (let i = 0, n = dart.notNull(length()); i < n; i++) { |
| core.print(i + 1); |
| } |
| } |
| dart.fn(forLoops, dart.void, [dart.functionType(core.int, [])]); |
| function nullableCycle() { |
| let x = 1; |
| let y = 2; |
| let z = null; |
| x = y; |
| y = z; |
| z = x; |
| core.print(dart.notNull(x) + dart.notNull(y) + dart.notNull(z)); |
| let s = null; |
| s = s; |
| core.print(dart.notNull(s) + 1); |
| } |
| dart.fn(nullableCycle, dart.void, []); |
| function nonNullableCycle() { |
| let x = 1; |
| let y = 2; |
| let z = 3; |
| x = y; |
| y = z; |
| z = x; |
| core.print(x + y + z); |
| let s = 1; |
| s = s; |
| core.print(s + 1); |
| } |
| dart.fn(nonNullableCycle, dart.void, []); |
| class Foo extends core.Object { |
| Foo() { |
| this.intField = null; |
| this.varField = null; |
| } |
| f(o) { |
| core.print(1 + dart.notNull(dart.as(this.varField, core.num)) + 2); |
| while (dart.notNull(dart.as(dart.dsend(this.varField, '<', 10), core.bool))) { |
| this.varField = dart.dsend(this.varField, '+', 1); |
| } |
| while (dart.notNull(dart.as(dart.dsend(this.varField, '<', 10), core.bool))) |
| this.varField = dart.dsend(this.varField, '+', 1); |
| core.print(1 + dart.notNull(this.intField) + 2); |
| while (dart.notNull(this.intField) < 10) { |
| this.intField = dart.notNull(this.intField) + 1; |
| } |
| while (dart.notNull(this.intField) < 10) |
| this.intField = dart.notNull(this.intField) + 1; |
| core.print(1 + dart.notNull(o.intField) + 2); |
| while (dart.notNull(o.intField) < 10) { |
| o.intField = dart.notNull(o.intField) + 1; |
| } |
| while (dart.notNull(o.intField) < 10) |
| o.intField = dart.notNull(o.intField) + 1; |
| } |
| } |
| dart.setSignature(Foo, { |
| methods: () => ({f: [dart.dynamic, [Foo]]}) |
| }); |
| function _foo() { |
| return 1; |
| } |
| dart.fn(_foo, core.int, []); |
| function calls() { |
| let a = 1; |
| let b = 1; |
| b = dart.as(dart.dcall(dart.fn(x => x), a), core.int); |
| core.print(dart.notNull(b) + 1); |
| let c = _foo(); |
| core.print(dart.notNull(c) + 1); |
| } |
| dart.fn(calls); |
| function localEscapes() { |
| let a = 1; |
| let f = dart.fn(x => a = dart.as(x, core.int)); |
| let b = 1; |
| function g(x) { |
| return b = dart.as(x, core.int); |
| } |
| dart.fn(g); |
| dart.dcall(f, 1); |
| g(1); |
| core.print(dart.notNull(a) + dart.notNull(b)); |
| } |
| dart.fn(localEscapes); |
| function controlFlow() { |
| for (let i = null, j = null;;) { |
| i = j = 1; |
| core.print(dart.notNull(i) + dart.notNull(j) + 1); |
| break; |
| } |
| try { |
| dart.throw(1); |
| } catch (e) { |
| core.print(dart.dsend(e, '+', 1)); |
| } |
| |
| try { |
| dart.dsend(null, 'foo'); |
| } catch (e) { |
| let trace = dart.stackTrace(e); |
| core.print(`${typeof e == 'string' ? e : dart.toString(e)} at ${trace}`); |
| } |
| |
| } |
| dart.fn(controlFlow); |
| function main() { |
| intAssignments(); |
| doubleAssignments(); |
| boolAssignments(); |
| nullableLocals(1); |
| optParams(1, 2); |
| namedParams({x: 1, y: 2}); |
| forLoops(dart.fn(() => 10, core.int, [])); |
| increments(); |
| conditionals(true); |
| calls(); |
| localEscapes(); |
| controlFlow(); |
| nullableCycle(); |
| nonNullableCycle(); |
| } |
| dart.fn(main); |
| // Exports: |
| exports.intAssignments = intAssignments; |
| exports.doubleAssignments = doubleAssignments; |
| exports.boolAssignments = boolAssignments; |
| exports.increments = increments; |
| exports.conditionals = conditionals; |
| exports.nullAwareOps = nullAwareOps; |
| exports.nullableLocals = nullableLocals; |
| exports.optParams = optParams; |
| exports.namedParams = namedParams; |
| exports.forLoops = forLoops; |
| exports.nullableCycle = nullableCycle; |
| exports.nonNullableCycle = nonNullableCycle; |
| exports.Foo = Foo; |
| exports.calls = calls; |
| exports.localEscapes = localEscapes; |
| exports.controlFlow = controlFlow; |
| exports.main = main; |
| }); |