| Index: frog/element.dart
|
| diff --git a/frog/element.dart b/frog/element.dart
|
| index f041e3b3b4d64e39df54a317001d033b8de5ae7f..6f6a1223d3c2bd83c85dc093cd483bb2fd2d0749 100644
|
| --- a/frog/element.dart
|
| +++ b/frog/element.dart
|
| @@ -18,7 +18,11 @@ class Element implements Hashable {
|
| Element _enclosingElement;
|
|
|
| Element(this.name, this._enclosingElement) {
|
| - _jsname = world.toJsIdentifier(name);
|
| + if (name !== null) {
|
| + String mangled = mangleJsName();
|
| + assert(!mangled.contains(':'));
|
| + _jsname = mangled;
|
| + }
|
| }
|
|
|
| // TODO - walk tree
|
| @@ -51,6 +55,12 @@ class Element implements Hashable {
|
| void resolve() {}
|
|
|
| /**
|
| + * By default we mangle the JS name of an element to avoid
|
| + * giving them names that clash with JS keywords.
|
| + */
|
| + String mangleJsName() => world.toJsIdentifier(name);
|
| +
|
| + /**
|
| * Any type parameters that this element defines to setup a generic
|
| * type resolution context. This is currently used for both generic
|
| * types and the semi-magical generic factory methods - but it will
|
|
|