Index: frog/leg/native_handler.dart |
=================================================================== |
--- frog/leg/native_handler.dart (revision 5159) |
+++ frog/leg/native_handler.dart (working copy) |
@@ -137,10 +137,23 @@ |
compiler.registerStaticUse( |
compiler.findHelper(new SourceString('captureStackTrace'))); |
+ FunctionElement element = builder.work.element; |
kasperl
2012/03/08 13:22:00
Please add a comment here explaining what this doe
ngeoffray
2012/03/08 13:34:07
Done.
|
+ NativeEmitter nativeEmitter = compiler.emitter.nativeEmitter; |
+ if (element.name == const SourceString('typeName') |
+ && element.isGetter() |
+ && nativeEmitter.toNativeName(element.enclosingElement) == 'DOMType') { |
+ DartString jsCode = new DartString.literal( |
+ '${nativeEmitter.typeNameOfName}(\$0)'); |
+ List<HInstruction> inputs = |
+ <HInstruction>[builder.localsHandler.readThis()]; |
+ builder.push(new HForeign( |
+ jsCode, const LiteralDartString('String'), inputs)); |
+ return; |
+ } |
+ |
if (node.arguments.isEmpty()) { |
List<String> arguments = <String>[]; |
List<HInstruction> inputs = <HInstruction>[]; |
- FunctionElement element = builder.work.element; |
FunctionParameters parameters = element.computeParameters(builder.compiler); |
int i = 0; |
String receiver = ''; |