Chromium Code Reviews| Index: pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart |
| diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart |
| index a1d3610313a000087529643d0c114996f2b51616..afd0cae95692e5ba2c44a9070f9d21276d656edc 100644 |
| --- a/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart |
| +++ b/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart |
| @@ -141,11 +141,16 @@ jsAst.Expression getReflectionDataParser(String classesCollector, |
| * [array]. |
| */ |
| jsAst.Statement addStubs = js.statement(''' |
| - function addStubs(descriptor, array, name, isStatic, |
| + function addStubs(descriptor, array, nameTag, isStatic, |
| originalDescriptor, functions) { |
| + // The name could be an aliased method, which is only resolved later in |
| + // finishClasses. We need to use the actual name for the generated stubs. |
| + // Note that no getter for the alias is needed, as getter sends via super |
| + // are handled via the prototype chain and not using the alias. |
| + var name = nameTag.split(':')[0]; |
|
floitsch
2014/11/24 10:47:52
Ideally this code would also be together with the
herhut
2014/11/25 14:03:20
Removed.
|
| var f, funcs = |
| - [originalDescriptor[name] = |
| - descriptor[name] = f = ${readFunction("array", "$FUNCTION_INDEX")}]; |
| + [originalDescriptor[nameTag] = |
| + descriptor[nameTag] = f = ${readFunction("array", "$FUNCTION_INDEX")}]; |
| f.\$stubName = name; |
| functions.push(name); |
| for (var index = $FUNCTION_INDEX; index < array.length; index += 2) { |
| @@ -179,7 +184,7 @@ jsAst.Expression getReflectionDataParser(String classesCollector, |
| if (getterStubName) { |
| f = tearOff(funcs, array, isStatic, name, isIntercepted); |
| - descriptor[name].\$getter = f; |
| + descriptor[nameTag].\$getter = f; |
| f.\$getterStub = true; |
| // Used to create an isolate using spawnFunction. |
| if (isStatic) #[name] = f; // embedded globalFunctions. |