Files
sdk/pkg/dev_compiler/test/codegen_expected/language/statement_test.js
T
Leaf Petersen 0315595d60 Check in codegen test expectations.
Codegen output is checked into repository to make codegen regressions
more visible (especially readability regressions).

BUG=
R=rnystrom@google.com

Review URL: https://codereview.chromium.org/2128353002 .
2016-07-07 15:57:22 -07:00

233 lines
7.1 KiB
JavaScript

dart_library.library('language/statement_test', null, /* Imports */[
'dart_sdk',
'expect'
], function load__statement_test(exports, dart_sdk, expect) {
'use strict';
const core = dart_sdk.core;
const _interceptors = dart_sdk._interceptors;
const dart = dart_sdk.dart;
const dartx = dart_sdk.dartx;
const expect$ = expect.expect;
const statement_test = Object.create(null);
let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))();
let JSArrayOfint = () => (JSArrayOfint = dart.constFn(_interceptors.JSArray$(core.int)))();
let ListOfint = () => (ListOfint = dart.constFn(core.List$(core.int)))();
let JSArrayOfListOfint = () => (JSArrayOfListOfint = dart.constFn(_interceptors.JSArray$(ListOfint())))();
let VoidToint = () => (VoidToint = dart.constFn(dart.definiteFunctionType(core.int, [])))();
let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
statement_test.StatementTest = class StatementTest extends core.Object {
new() {
}
static testMain() {
let test = new statement_test.StatementTest();
test.testIfStatement();
test.testForLoop();
test.testWhileLoops();
test.testSwitch();
test.testExceptions();
test.testBreak();
test.testContinue();
test.testFunction();
test.testReturn();
}
testIfStatement() {
if (true) {
expect$.Expect.equals(true, true);
} else {
expect$.Expect.equals(false, true);
}
if (false) {
expect$.Expect.equals(false, true);
} else {
expect$.Expect.equals(true, true);
}
}
testForLoop() {
let count = 0, count2 = null;
for (let i = 0; i < 10; ++i) {
count = dart.notNull(count) + 1;
}
expect$.Expect.equals(10, count);
count2 = 0;
for (count = 0; dart.notNull(count) < 5; count = dart.notNull(count) + 1) {
count2 = dart.notNull(count2) + 1;
}
expect$.Expect.equals(5, count);
expect$.Expect.equals(5, count2);
count = count2 = 0;
for (; dart.notNull(count) < 10; count = dart.notNull(count) + 1) {
count2 = dart.notNull(count2) + 1;
}
expect$.Expect.equals(10, count);
expect$.Expect.equals(10, count2);
for (count = 0; dart.notNull(count) < 5;) {
count = dart.notNull(count) + 1;
}
expect$.Expect.equals(5, count);
for (count = 0;; count = dart.notNull(count) + 1) {
if (count == 10) {
break;
}
}
expect$.Expect.equals(10, count);
count = 0;
for (;;) {
if (count == 5) {
break;
}
count = dart.notNull(count) + 1;
}
expect$.Expect.equals(5, count);
}
testWhileLoops() {
let count = 0;
while (count < 10) {
++count;
}
expect$.Expect.equals(10, count);
count = 0;
do {
++count;
} while (count < 5);
expect$.Expect.equals(5, count);
}
testSwitch() {
let hit0 = null, hit1 = null, hitDefault = null;
for (let x = 0; x < 3; ++x) {
switch (x) {
case 0:
{
hit0 = true;
break;
}
case 1:
{
hit1 = true;
break;
}
default:
{
hitDefault = true;
break;
}
}
}
expect$.Expect.equals(true, hit0);
expect$.Expect.equals(true, hit1);
expect$.Expect.equals(true, hitDefault);
let strings = JSArrayOfString().of(['a', 'b', 'c']);
let hitA = null, hitB = null;
hitDefault = false;
for (let x = 0; x < 3; ++x) {
switch (strings[dartx.get](x)) {
case 'a':
{
hitA = true;
break;
}
case 'b':
{
hitB = true;
break;
}
default:
{
hitDefault = true;
break;
}
}
}
expect$.Expect.equals(true, hitA);
expect$.Expect.equals(true, hitB);
expect$.Expect.equals(true, hitDefault);
}
testExceptions() {
let hitCatch = null, hitFinally = null;
try {
dart.throw("foo");
} catch (e) {
expect$.Expect.equals(true, dart.equals(e, "foo"));
hitCatch = true;
}
finally {
hitFinally = true;
}
expect$.Expect.equals(true, hitCatch);
expect$.Expect.equals(true, hitFinally);
}
testBreak() {
let ints = JSArrayOfListOfint().of([JSArrayOfint().of([32, 87, 3, 589]), JSArrayOfint().of([12, 1076, 2000, 8]), JSArrayOfint().of([622, 127, 77, 955])]);
let i = null, j = 0;
let foundIt = false;
search:
for (i = 0; dart.notNull(i) < dart.notNull(ints[dartx.length]); i = dart.notNull(i) + 1) {
for (j = 0; j < dart.notNull(ints[dartx.get](i)[dartx.length]); j++) {
if (ints[dartx.get](i)[dartx.get](j) == 12) {
foundIt = true;
break search;
}
}
}
expect$.Expect.equals(true, foundIt);
}
testContinue() {
let searchMe = "Look for a substring in me";
let substring = "sub";
let foundIt = false;
let max = dart.notNull(searchMe[dartx.length]) - dart.notNull(substring[dartx.length]);
test:
for (let i = 0; i <= max; i++) {
let n = substring[dartx.length];
let j = i;
let k = 0;
while ((() => {
let x = n;
n = dart.notNull(x) - 1;
return x;
})() != 0) {
if (searchMe[dartx.get](j++) != substring[dartx.get](k++)) {
continue test;
}
}
foundIt = true;
break test;
}
}
testFunction() {
function foo() {
return 42;
}
dart.fn(foo, VoidToint());
expect$.Expect.equals(42, foo());
}
testReturn() {
if (true) {
return;
}
expect$.Expect.equals(true, false);
}
};
dart.setSignature(statement_test.StatementTest, {
constructors: () => ({new: dart.definiteFunctionType(statement_test.StatementTest, [])}),
methods: () => ({
testIfStatement: dart.definiteFunctionType(dart.dynamic, []),
testForLoop: dart.definiteFunctionType(dart.dynamic, []),
testWhileLoops: dart.definiteFunctionType(dart.dynamic, []),
testSwitch: dart.definiteFunctionType(dart.dynamic, []),
testExceptions: dart.definiteFunctionType(dart.dynamic, []),
testBreak: dart.definiteFunctionType(dart.dynamic, []),
testContinue: dart.definiteFunctionType(dart.dynamic, []),
testFunction: dart.definiteFunctionType(dart.dynamic, []),
testReturn: dart.definiteFunctionType(dart.void, [])
}),
statics: () => ({testMain: dart.definiteFunctionType(dart.dynamic, [])}),
names: ['testMain']
});
statement_test.main = function() {
statement_test.StatementTest.testMain();
};
dart.fn(statement_test.main, VoidTodynamic());
// Exports:
exports.statement_test = statement_test;
});