Index: pkg/compiler/lib/src/js_emitter/model.dart |
diff --git a/pkg/compiler/lib/src/js_emitter/model.dart b/pkg/compiler/lib/src/js_emitter/model.dart |
index 23f7703a08a4ba75baa0e79553008e8ed9f86cdf..8dec1941f99c4a3cdcd3a83cc5a3eac2e818149f 100644 |
--- a/pkg/compiler/lib/src/js_emitter/model.dart |
+++ b/pkg/compiler/lib/src/js_emitter/model.dart |
@@ -4,7 +4,7 @@ |
library dart2js.new_js_emitter.model; |
-import '../js/js.dart' as js show Expression, Statement; |
+import '../js/js.dart' as js show Expression, Statement, Name, Literal; |
import '../constants/values.dart' show ConstantValue; |
import '../deferred_load.dart' show OutputUnit; |
@@ -165,7 +165,7 @@ class DeferredFragment extends Fragment { |
} |
class Constant { |
- final String name; |
+ final js.Name name; |
final Holder holder; |
final ConstantValue value; |
@@ -196,7 +196,7 @@ class StaticField { |
/// Uses indicate missing information in the model. |
final Element element; |
- final String name; |
+ js.Name name; |
// TODO(floitsch): the holder for static fields is the isolate object. We |
// could remove this field and use the isolate object directly. |
final Holder holder; |
@@ -214,7 +214,7 @@ class Class implements FieldContainer { |
/// Uses indicate missing information in the model. |
final Element element; |
- final String name; |
+ final js.Name name; |
final Holder holder; |
Class _superclass; |
final List<Method> methods; |
@@ -242,7 +242,7 @@ class Class implements FieldContainer { |
bool isEager = false; |
/// Data that must be emitted with the class for native interop. |
- String nativeInfo; |
+ js.Literal nativeInfo; |
Class(this.element, this.name, this.holder, |
this.methods, |
@@ -268,8 +268,9 @@ class Class implements FieldContainer { |
_superclass = superclass; |
} |
- String get superclassName |
- => (superclass == null) ? "" : superclass.name; |
+ js.Name get superclassName |
+ => superclass == null ? null : superclass.name; |
+ |
int get superclassHolderIndex |
=> (superclass == null) ? 0 : superclass.holder.index; |
} |
@@ -277,7 +278,7 @@ class Class implements FieldContainer { |
class MixinApplication extends Class { |
Class _mixinClass; |
- MixinApplication(Element element, String name, Holder holder, |
+ MixinApplication(Element element, js.Name name, Holder holder, |
List<Field> instanceFields, |
List<Field> staticFieldsForReflection, |
List<StubMethod> callStubs, |
@@ -316,8 +317,8 @@ class Field { |
/// Uses indicate missing information in the model. |
final Element element; |
- final String name; |
- final String accessorName; |
+ final js.Name name; |
+ final js.Name accessorName; |
/// 00: Does not need any getter. |
/// 01: function() { return this.field; } |
@@ -349,7 +350,7 @@ abstract class Method { |
/// The element should only be used during the transition to the new model. |
/// Uses indicate missing information in the model. |
final Element element; |
- final String name; |
+ final js.Name name; |
final js.Expression code; |
Method(this.element, this.name, this.code); |
@@ -358,7 +359,7 @@ abstract class Method { |
/// A method that corresponds to a method in the original Dart program. |
class DartMethod extends Method { |
final bool needsTearOff; |
- final String tearOffName; |
+ final js.Name tearOffName; |
final List<ParameterStubMethod> parameterStubs; |
final bool canBeApplied; |
final bool canBeReflected; |
@@ -378,9 +379,9 @@ class DartMethod extends Method { |
// If this method can be torn off, contains the name of the corresponding |
// call method. For example, for the member `foo$1$name` it would be |
// `call$1$name` (in unminified mode). |
- final String callName; |
+ final js.Name callName; |
- DartMethod(Element element, String name, js.Expression code, |
+ DartMethod(Element element, js.Name name, js.Expression code, |
this.parameterStubs, this.callName, |
{this.needsTearOff, this.tearOffName, this.canBeApplied, |
this.canBeReflected, this.requiredParameterCount, |
@@ -401,15 +402,15 @@ class InstanceMethod extends DartMethod { |
/// a method via `super`. If [aliasName] is non-null, the emitter has to |
/// ensure that this method is registered on the prototype under both [name] |
/// and [aliasName]. |
- final String aliasName; |
+ final js.Name aliasName; |
final bool isClosure; |
- InstanceMethod(Element element, String name, js.Expression code, |
+ InstanceMethod(Element element, js.Name name, js.Expression code, |
List<ParameterStubMethod> parameterStubs, |
- String callName, |
+ js.Name callName, |
{bool needsTearOff, |
- String tearOffName, |
+ js.Name tearOffName, |
this.aliasName, |
bool canBeApplied, |
bool canBeReflected, |
@@ -433,7 +434,7 @@ class InstanceMethod extends DartMethod { |
/// to a method in the original Dart program. Examples are getter and setter |
/// stubs and stubs to dispatch calls to methods with optional parameters. |
class StubMethod extends Method { |
- StubMethod(String name, js.Expression code, |
+ StubMethod(js.Name name, js.Expression code, |
{Element element}) |
: super(element, name, code); |
} |
@@ -453,9 +454,9 @@ class ParameterStubMethod extends StubMethod { |
/// name when it is used this way. |
/// |
/// If a stub's member can not be torn off, the [callName] is `null`. |
- String callName; |
+ js.Name callName; |
- ParameterStubMethod(String name, this.callName, js.Expression code) |
+ ParameterStubMethod(js.Name name, this.callName, js.Expression code) |
: super(name, code); |
} |
@@ -466,11 +467,12 @@ abstract class StaticMethod implements Method { |
class StaticDartMethod extends DartMethod implements StaticMethod { |
final Holder holder; |
- StaticDartMethod(Element element, String name, this.holder, |
+ StaticDartMethod(Element element, js.Name name, this.holder, |
js.Expression code, List<ParameterStubMethod> parameterStubs, |
- String callName, |
- {bool needsTearOff, String tearOffName, bool canBeApplied, |
- bool canBeReflected, int requiredParameterCount, |
+ js.Name callName, |
+ {bool needsTearOff, js.Name tearOffName, |
+ bool canBeApplied, bool canBeReflected, |
+ int requiredParameterCount, |
/* List | Map */ optionalParameterDefaultValues, |
js.Expression functionType}) |
: super(element, name, code, parameterStubs, callName, |
@@ -485,6 +487,6 @@ class StaticDartMethod extends DartMethod implements StaticMethod { |
class StaticStubMethod extends StubMethod implements StaticMethod { |
Holder holder; |
- StaticStubMethod(String name, this.holder, js.Expression code) |
+ StaticStubMethod(js.Name name, this.holder, js.Expression code) |
: super(name, code); |
} |