| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library dart2js_incremental.library_updater; | 5 library dart2js_incremental.library_updater; |
| 6 | 6 |
| 7 import 'dart:async' show | 7 import 'dart:async' show |
| 8 Future; | 8 Future; |
| 9 | 9 |
| 10 import 'dart:convert' show | 10 import 'dart:convert' show |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 | 60 |
| 61 import 'package:compiler/src/js_emitter/js_emitter.dart' show | 61 import 'package:compiler/src/js_emitter/js_emitter.dart' show |
| 62 ClassBuilder, | 62 ClassBuilder, |
| 63 ClassEmitter, | 63 ClassEmitter, |
| 64 CodeEmitterTask, | 64 CodeEmitterTask, |
| 65 ContainerBuilder, | 65 ContainerBuilder, |
| 66 MemberInfo, | 66 MemberInfo, |
| 67 computeMixinClass; | 67 computeMixinClass; |
| 68 | 68 |
| 69 import 'package:compiler/src/js_emitter/model.dart' show | 69 import 'package:compiler/src/js_emitter/model.dart' show |
| 70 Class; | 70 Class, |
| 71 Member; |
| 71 import 'package:compiler/src/js_emitter/program_builder.dart' show | 72 import 'package:compiler/src/js_emitter/program_builder.dart' show |
| 72 ProgramBuilder; | 73 ProgramBuilder; |
| 73 | 74 |
| 74 import 'package:_internal/compiler/js_lib/shared/embedded_names.dart' | 75 import 'package:_internal/compiler/js_lib/shared/embedded_names.dart' |
| 75 as embeddedNames; | 76 as embeddedNames; |
| 76 | 77 |
| 77 import 'package:compiler/src/js_backend/js_backend.dart' show | 78 import 'package:compiler/src/js_backend/js_backend.dart' show |
| 78 JavaScriptBackend, | 79 JavaScriptBackend, |
| 79 Namer; | 80 Namer; |
| 80 | 81 |
| (...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 924 (new Function( | 925 (new Function( |
| 925 "$collectedClasses", "$desc", | 926 "$collectedClasses", "$desc", |
| 926 this.defineClass(#name, #computeFields) +"\n;return " + #name))( | 927 this.defineClass(#name, #computeFields) +"\n;return " + #name))( |
| 927 {#name: #descriptor})''', | 928 {#name: #descriptor})''', |
| 928 {'name': js.string(name), | 929 {'name': js.string(name), |
| 929 'computeFields': js.stringArray(computeFields(cls)), | 930 'computeFields': js.stringArray(computeFields(cls)), |
| 930 'descriptor': descriptor}); | 931 'descriptor': descriptor}); |
| 931 } | 932 } |
| 932 | 933 |
| 933 jsAst.Node computeMethodUpdateJs(Element element) { | 934 jsAst.Node computeMethodUpdateJs(Element element) { |
| 934 MemberInfo info = containerBuilder.analyzeMemberMethod(element); | 935 Member member = new ProgramBuilder(compiler, namer, emitter) |
| 935 if (info == null) { | 936 .buildMethodHackForIncrementalCompilation(element); |
| 937 if (member == null) { |
| 936 compiler.internalError(element, '${element.runtimeType}'); | 938 compiler.internalError(element, '${element.runtimeType}'); |
| 937 } | 939 } |
| 938 ClassBuilder builder = new ClassBuilder(element, namer); | 940 ClassBuilder builder = new ClassBuilder(element, namer); |
| 939 containerBuilder.addMemberMethodFromInfo(info, builder); | 941 containerBuilder.addMemberMethod(member, builder); |
| 940 jsAst.Node partialDescriptor = | 942 jsAst.Node partialDescriptor = |
| 941 builder.toObjectInitializer(emitClassDescriptor: false); | 943 builder.toObjectInitializer(emitClassDescriptor: false); |
| 942 | 944 |
| 943 String name = info.name; | 945 String name = member.name; |
| 944 jsAst.Node function = info.code; | 946 jsAst.Node function = member.code; |
| 945 bool isStatic = !element.isInstanceMember; | 947 bool isStatic = !element.isInstanceMember; |
| 946 | 948 |
| 947 /// Either a global object (non-instance members) or a prototype (instance | 949 /// Either a global object (non-instance members) or a prototype (instance |
| 948 /// members). | 950 /// members). |
| 949 jsAst.Node holder; | 951 jsAst.Node holder; |
| 950 | 952 |
| 951 if (element.isInstanceMember) { | 953 if (element.isInstanceMember) { |
| 952 holder = emitter.prototypeAccess(element.enclosingClass); | 954 holder = emitter.prototypeAccess(element.enclosingClass); |
| 953 } else { | 955 } else { |
| 954 holder = js('#', namer.globalObjectFor(element)); | 956 holder = js('#', namer.globalObjectFor(element)); |
| (...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1478 .buildClassWithFieldsForTry(classElement); | 1480 .buildClassWithFieldsForTry(classElement); |
| 1479 // TODO(ahe): Rewrite for new emitter. | 1481 // TODO(ahe): Rewrite for new emitter. |
| 1480 ClassBuilder builder = new ClassBuilder(classElement, namer); | 1482 ClassBuilder builder = new ClassBuilder(classElement, namer); |
| 1481 classEmitter.emitFields(cls, builder); | 1483 classEmitter.emitFields(cls, builder); |
| 1482 return builder.fields; | 1484 return builder.fields; |
| 1483 } | 1485 } |
| 1484 } | 1486 } |
| 1485 | 1487 |
| 1486 // TODO(ahe): Remove this method. | 1488 // TODO(ahe): Remove this method. |
| 1487 NO_WARN(x) => x; | 1489 NO_WARN(x) => x; |
| OLD | NEW |