| Index: test/codegen/expect/language/dynamic_test.js | 
| diff --git a/test/codegen/expect/language/dynamic_test.js b/test/codegen/expect/language/dynamic_test.js | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..80addf98244c3fb9ca1564ccf543fa4df0863586 | 
| --- /dev/null | 
| +++ b/test/codegen/expect/language/dynamic_test.js | 
| @@ -0,0 +1,99 @@ | 
| +dart_library.library('language/dynamic_test', null, /* Imports */[ | 
| +  'dart_sdk', | 
| +  'expect' | 
| +], function load__dynamic_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 dynamic_test = Object.create(null); | 
| +  let Iface = () => (Iface = dart.constFn(dynamic_test.Iface$()))(); | 
| +  let M1 = () => (M1 = dart.constFn(dynamic_test.M1$()))(); | 
| +  let M2 = () => (M2 = dart.constFn(dynamic_test.M2$()))(); | 
| +  let IfaceOfString$dynamic = () => (IfaceOfString$dynamic = dart.constFn(dynamic_test.Iface$(core.String, dart.dynamic)))(); | 
| +  let F1 = () => (F1 = dart.constFn(dynamic_test.F1$()))(); | 
| +  let IfaceOfdynamic$num = () => (IfaceOfdynamic$num = dart.constFn(dynamic_test.Iface$(dart.dynamic, core.num)))(); | 
| +  let IfaceOfString$num = () => (IfaceOfString$num = dart.constFn(dynamic_test.Iface$(core.String, core.num)))(); | 
| +  let IfaceOfnum$String = () => (IfaceOfnum$String = dart.constFn(dynamic_test.Iface$(core.num, core.String)))(); | 
| +  let F1Ofint = () => (F1Ofint = dart.constFn(dynamic_test.F1$(core.int)))(); | 
| +  let StringAndintToString = () => (StringAndintToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.int])))(); | 
| +  let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); | 
| +  dynamic_test.Iface$ = dart.generic((K, V) => { | 
| +    class Iface extends core.Object {} | 
| +    dart.addTypeTests(Iface); | 
| +    return Iface; | 
| +  }); | 
| +  dynamic_test.Iface = Iface(); | 
| +  dynamic_test.M1$ = dart.generic((K, V) => { | 
| +    let IfaceOfK$V = () => (IfaceOfK$V = dart.constFn(dynamic_test.Iface$(K, V)))(); | 
| +    class M1 extends core.Object {} | 
| +    dart.addTypeTests(M1); | 
| +    M1[dart.implements] = () => [IfaceOfK$V()]; | 
| +    return M1; | 
| +  }); | 
| +  dynamic_test.M1 = M1(); | 
| +  dynamic_test.M2$ = dart.generic(K => { | 
| +    let IfaceOfK$dynamic = () => (IfaceOfK$dynamic = dart.constFn(dynamic_test.Iface$(K, dart.dynamic)))(); | 
| +    class M2 extends core.Object {} | 
| +    dart.addTypeTests(M2); | 
| +    M2[dart.implements] = () => [IfaceOfK$dynamic()]; | 
| +    return M2; | 
| +  }); | 
| +  dynamic_test.M2 = M2(); | 
| +  dynamic_test.M3 = class M3 extends core.Object {}; | 
| +  dynamic_test.M3[dart.implements] = () => [IfaceOfString$dynamic()]; | 
| +  dynamic_test.F1$ = dart.generic(T => { | 
| +    const F1 = dart.typedef('F1', () => dart.functionType(dart.dynamic, [dart.dynamic, T])); | 
| +    return F1; | 
| +  }); | 
| +  dynamic_test.F1 = F1(); | 
| +  dynamic_test.HasFieldDynamic = class HasFieldDynamic extends core.Object { | 
| +    new() { | 
| +      this.dynamic = "dynamic"; | 
| +    } | 
| +  }; | 
| +  dart.setSignature(dynamic_test.HasFieldDynamic, { | 
| +    constructors: () => ({new: dart.definiteFunctionType(dynamic_test.HasFieldDynamic, [])}) | 
| +  }); | 
| +  dynamic_test.HasMethodDynamic = class HasMethodDynamic extends core.Object { | 
| +    dynamic() { | 
| +      return "dynamic"; | 
| +    } | 
| +  }; | 
| +  dart.setSignature(dynamic_test.HasMethodDynamic, { | 
| +    methods: () => ({dynamic: dart.definiteFunctionType(dart.dynamic, [])}) | 
| +  }); | 
| +  dynamic_test.main = function() { | 
| +    expect$.Expect.isTrue(core.Type.is(dart.wrapType(dart.dynamic))); | 
| +    expect$.Expect.equals(dart.wrapType(dart.dynamic), dart.wrapType(dart.dynamic)); | 
| +    let m1 = new dynamic_test.M1(); | 
| +    expect$.Expect.isTrue(IfaceOfdynamic$num().is(m1)); | 
| +    expect$.Expect.isTrue(IfaceOfString$dynamic().is(m1)); | 
| +    expect$.Expect.isTrue(IfaceOfString$num().is(m1)); | 
| +    expect$.Expect.isTrue(IfaceOfnum$String().is(m1)); | 
| +    let m2 = new dynamic_test.M2(); | 
| +    expect$.Expect.isTrue(IfaceOfdynamic$num().is(m2)); | 
| +    expect$.Expect.isTrue(IfaceOfString$dynamic().is(m2)); | 
| +    expect$.Expect.isTrue(IfaceOfString$num().is(m2)); | 
| +    expect$.Expect.isTrue(IfaceOfnum$String().is(m2)); | 
| +    let m3 = new dynamic_test.M3(); | 
| +    expect$.Expect.isTrue(IfaceOfdynamic$num().is(m3)); | 
| +    expect$.Expect.isTrue(IfaceOfString$dynamic().is(m3)); | 
| +    expect$.Expect.isTrue(IfaceOfString$num().is(m3)); | 
| +    expect$.Expect.isTrue(!IfaceOfnum$String().is(m3)); | 
| +    let f1 = dart.fn((s, i) => s[dartx.get](i), StringAndintToString()); | 
| +    expect$.Expect.isTrue(F1Ofint().is(f1)); | 
| +    let has_field = new dynamic_test.HasFieldDynamic(); | 
| +    expect$.Expect.equals("dynamic", has_field.dynamic); | 
| +    let has_method = new dynamic_test.HasMethodDynamic(); | 
| +    expect$.Expect.equals("dynamic", has_method.dynamic()); | 
| +    { | 
| +      let dynamic = 0; | 
| +      expect$.Expect.equals(0, dynamic); | 
| +    } | 
| +  }; | 
| +  dart.fn(dynamic_test.main, VoidTodynamic()); | 
| +  // Exports: | 
| +  exports.dynamic_test = dynamic_test; | 
| +}); | 
|  |