| Index: test/codegen/expect/language/nullaware_opt_test.js
|
| diff --git a/test/codegen/expect/language/nullaware_opt_test.js b/test/codegen/expect/language/nullaware_opt_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..36f759f8bd67ab1e799ce3acfccd249b5cf70960
|
| --- /dev/null
|
| +++ b/test/codegen/expect/language/nullaware_opt_test.js
|
| @@ -0,0 +1,95 @@
|
| +dart_library.library('language/nullaware_opt_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'expect'
|
| +], function load__nullaware_opt_test(exports, dart_sdk, expect) {
|
| + 'use strict';
|
| + const core = dart_sdk.core;
|
| + const dart = dart_sdk.dart;
|
| + const dartx = dart_sdk.dartx;
|
| + const expect$ = expect.expect;
|
| + const nullaware_opt_test = Object.create(null);
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + nullaware_opt_test.C = class C extends core.Object {
|
| + new(f) {
|
| + this.f = f;
|
| + }
|
| + m(a) {
|
| + return a;
|
| + }
|
| + };
|
| + dart.setSignature(nullaware_opt_test.C, {
|
| + constructors: () => ({new: dart.definiteFunctionType(nullaware_opt_test.C, [dart.dynamic])}),
|
| + methods: () => ({m: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])})
|
| + });
|
| + nullaware_opt_test.bomb = function() {
|
| + expect$.Expect.fail('Should not be executed');
|
| + return 100;
|
| + };
|
| + dart.fn(nullaware_opt_test.bomb, VoidTodynamic());
|
| + nullaware_opt_test.getNull = function() {
|
| + return null;
|
| + };
|
| + dart.fn(nullaware_opt_test.getNull, VoidTodynamic());
|
| + nullaware_opt_test.test = function() {
|
| + let c = null;
|
| + let d = new nullaware_opt_test.C(5);
|
| + expect$.Expect.equals(null, dart.nullSafe(c, _ => dart.dsend(_, 'm', nullaware_opt_test.bomb())));
|
| + expect$.Expect.equals(null, dart.nullSafe(nullaware_opt_test.getNull(), _ => dart.dsend(_, 'anything', nullaware_opt_test.bomb())));
|
| + expect$.Expect.equals(1, dart.nullSafe(d, _ => _.m(1)));
|
| + expect$.Expect.equals(1, new nullaware_opt_test.C(1).f);
|
| + expect$.Expect.equals(null, dart.nullSafe(c, _ => dart.dload(_, 'v')));
|
| + expect$.Expect.equals(10, (c != null ? c : 10));
|
| + expect$.Expect.equals(d, (d != null ? d : nullaware_opt_test.bomb()));
|
| + let e = null;
|
| + let t = d;
|
| + t == null ? d = nullaware_opt_test.C._check((() => {
|
| + let t = e;
|
| + return t == null ? e = new nullaware_opt_test.C(100) : t;
|
| + })()) : t;
|
| + expect$.Expect.equals(null, e);
|
| + let t$ = e;
|
| + t$ == null ? e = new nullaware_opt_test.C(100) : t$;
|
| + expect$.Expect.equals(100, dart.nullSafe(e, _ => dart.dload(_, 'f')));
|
| + let t$0 = dart.nullSafe(e, _ => dart.dload(_, 'f'));
|
| + t$0 == null ? (() => {
|
| + let l = e;
|
| + return l == null ? null : dart.dput(l, 'f', 200);
|
| + })() : t$0;
|
| + expect$.Expect.equals(100, dart.nullSafe(e, _ => dart.dload(_, 'f')));
|
| + dart.dput(e, 'f', null);
|
| + let t$1 = dart.nullSafe(e, _ => dart.dload(_, 'f'));
|
| + t$1 == null ? (() => {
|
| + let l = e;
|
| + return l == null ? null : dart.dput(l, 'f', 200);
|
| + })() : t$1;
|
| + expect$.Expect.equals(200, dart.nullSafe(e, _ => dart.dload(_, 'f')));
|
| + let t$2 = dart.nullSafe(c, _ => dart.dload(_, 'f'));
|
| + t$2 == null ? (c == null ? null : dart.dput(c, 'f', 400)) : t$2;
|
| + expect$.Expect.equals(null, dart.nullSafe(c, _ => dart.dload(_, 'f')));
|
| + expect$.Expect.equals(null, (() => {
|
| + let x = dart.nullSafe(c, _ => dart.dload(_, 'f'));
|
| + c == null ? null : dart.dput(c, 'f', dart.dsend(x, '+', 1));
|
| + return x;
|
| + })());
|
| + let l = e;
|
| + l == null ? null : dart.dput(l, 'f', dart.dsend(dart.nullSafe(e, _ => dart.dload(_, 'f')), '+', 1));
|
| + expect$.Expect.equals(201, dart.dload(e, 'f'));
|
| + let x = 5;
|
| + };
|
| + dart.fn(nullaware_opt_test.test, VoidTodynamic());
|
| + nullaware_opt_test.test2 = function() {
|
| + let c = null;
|
| + dart.nullSafe(c, _ => dart.dload(_, 'v'));
|
| + dart.nullSafe(c, _ => dart.dsend(_, 'm', nullaware_opt_test.bomb()));
|
| + };
|
| + dart.fn(nullaware_opt_test.test2, VoidTodynamic());
|
| + nullaware_opt_test.main = function() {
|
| + for (let i = 0; i < 10; i++) {
|
| + nullaware_opt_test.test();
|
| + nullaware_opt_test.test2();
|
| + }
|
| + };
|
| + dart.fn(nullaware_opt_test.main, VoidTodynamic());
|
| + // Exports:
|
| + exports.nullaware_opt_test = nullaware_opt_test;
|
| +});
|
|
|