| Index: test/codegen/expect/language/arithmetic2_test.js
|
| diff --git a/test/codegen/expect/language/arithmetic2_test.js b/test/codegen/expect/language/arithmetic2_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b9258b4aeba288362706f0f32459a4b0ff86c746
|
| --- /dev/null
|
| +++ b/test/codegen/expect/language/arithmetic2_test.js
|
| @@ -0,0 +1,102 @@
|
| +dart_library.library('language/arithmetic2_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'expect'
|
| +], function load__arithmetic2_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 arithmetic2_test = Object.create(null);
|
| + let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + let VoidToint = () => (VoidToint = dart.constFn(dart.definiteFunctionType(core.int, [])))();
|
| + let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
|
| + let dynamicTonum = () => (dynamicTonum = dart.constFn(dart.definiteFunctionType(core.num, [dart.dynamic])))();
|
| + let dynamicTodouble = () => (dynamicTodouble = dart.constFn(dart.definiteFunctionType(core.double, [dart.dynamic])))();
|
| + let dynamicToint = () => (dynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic])))();
|
| + arithmetic2_test.A = class A extends core.Object {
|
| + static foo() {
|
| + return 499;
|
| + }
|
| + };
|
| + dart.setSignature(arithmetic2_test.A, {
|
| + statics: () => ({foo: dart.definiteFunctionType(dart.dynamic, [])}),
|
| + names: ['foo']
|
| + });
|
| + arithmetic2_test.throwsNoSuchMethod = function(f) {
|
| + try {
|
| + dart.dcall(f);
|
| + return false;
|
| + } catch (e) {
|
| + if (core.NoSuchMethodError.is(e)) {
|
| + return true;
|
| + } else
|
| + throw e;
|
| + }
|
| +
|
| + return false;
|
| + };
|
| + dart.fn(arithmetic2_test.throwsNoSuchMethod, dynamicTobool());
|
| + arithmetic2_test.throwsBecauseOfBadArgument = function(f) {
|
| + try {
|
| + dart.dcall(f);
|
| + return false;
|
| + } catch (e$) {
|
| + if (core.NoSuchMethodError.is(e$)) {
|
| + let e = e$;
|
| + return true;
|
| + } else if (core.ArgumentError.is(e$)) {
|
| + let e = e$;
|
| + return true;
|
| + } else if (core.TypeError.is(e$)) {
|
| + let e = e$;
|
| + return true;
|
| + } else
|
| + throw e$;
|
| + }
|
| +
|
| + return false;
|
| + };
|
| + dart.fn(arithmetic2_test.throwsBecauseOfBadArgument, dynamicTobool());
|
| + arithmetic2_test.numberOpBadSecondArgument = function(f) {
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, true), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, new arithmetic2_test.A()), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, "foo"), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, "5"), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, dart.fn(() => 499, VoidToint())), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, null), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, false), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, []), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, dart.map()), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsBecauseOfBadArgument(dart.fn(() => dart.dcall(f, arithmetic2_test.A.foo), VoidTodynamic())));
|
| + };
|
| + dart.fn(arithmetic2_test.numberOpBadSecondArgument, dynamicTodynamic());
|
| + arithmetic2_test.badOperations = function(b) {
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsNoSuchMethod(dart.fn(() => dart.dsend(b, '-', 3), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsNoSuchMethod(dart.fn(() => dart.dsend(b, '*', 3), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsNoSuchMethod(dart.fn(() => dart.dsend(b, '~/', 3), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsNoSuchMethod(dart.fn(() => dart.dsend(b, '/', 3), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsNoSuchMethod(dart.fn(() => dart.dsend(b, '%', 3), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsNoSuchMethod(dart.fn(() => dart.dsend(b, '+', 3), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsNoSuchMethod(dart.fn(() => dart.dindex(b, 3), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsNoSuchMethod(dart.fn(() => dart.dsend(b, '~'), VoidTodynamic())));
|
| + expect$.Expect.isTrue(arithmetic2_test.throwsNoSuchMethod(dart.fn(() => dart.dsend(b, 'unary-'), VoidTodynamic())));
|
| + };
|
| + dart.fn(arithmetic2_test.badOperations, dynamicTodynamic());
|
| + arithmetic2_test.main = function() {
|
| + arithmetic2_test.numberOpBadSecondArgument(dart.fn(x => 3 + dart.notNull(core.num._check(x)), dynamicTonum()));
|
| + arithmetic2_test.numberOpBadSecondArgument(dart.fn(x => 3 - dart.notNull(core.num._check(x)), dynamicTonum()));
|
| + arithmetic2_test.numberOpBadSecondArgument(dart.fn(x => 3 * dart.notNull(core.num._check(x)), dynamicTonum()));
|
| + arithmetic2_test.numberOpBadSecondArgument(dart.fn(x => 3 / dart.notNull(core.num._check(x)), dynamicTodouble()));
|
| + arithmetic2_test.numberOpBadSecondArgument(dart.fn(x => (3 / dart.notNull(core.num._check(x)))[dartx.truncate](), dynamicToint()));
|
| + arithmetic2_test.numberOpBadSecondArgument(dart.fn(x => (3)[dartx['%']](core.num._check(x)), dynamicTonum()));
|
| + arithmetic2_test.badOperations(true);
|
| + arithmetic2_test.badOperations(false);
|
| + arithmetic2_test.badOperations(dart.fn(() => 499, VoidToint()));
|
| + arithmetic2_test.badOperations(arithmetic2_test.A.foo);
|
| + };
|
| + dart.fn(arithmetic2_test.main, VoidTodynamic());
|
| + // Exports:
|
| + exports.arithmetic2_test = arithmetic2_test;
|
| +});
|
|
|