| Index: dart/sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart
|
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart b/dart/sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart
|
| index 6fb21d33098f5aeeee2ffdad53fd302aee7c1aa9..85570b2841f16fff2b813b6a84ed793cd8b5d5c7 100644
|
| --- a/dart/sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart
|
| +++ b/dart/sdk/lib/_internal/compiler/implementation/js_emitter/metadata_emitter.dart
|
| @@ -42,9 +42,9 @@ class MetadataEmitter extends CodeEmitterHelper {
|
| });
|
| }
|
|
|
| - jsAst.Node reifyDefaultArguments(FunctionElement function) {
|
| + List<int> reifyDefaultArguments(FunctionElement function) {
|
| FunctionSignature signature = function.computeSignature(compiler);
|
| - if (signature.optionalParameterCount == 0) return null;
|
| + if (signature.optionalParameterCount == 0) return const [];
|
| List<int> defaultValues = <int>[];
|
| for (Element element in signature.orderedOptionalParameters) {
|
| Constant value =
|
| @@ -55,7 +55,7 @@ class MetadataEmitter extends CodeEmitterHelper {
|
| .getText();
|
| defaultValues.add(addGlobalMetadata(stringRepresentation));
|
| }
|
| - return js.toExpression(defaultValues);
|
| + return defaultValues;
|
| }
|
|
|
| int reifyMetadata(MetadataAnnotation annotation) {
|
| @@ -118,21 +118,10 @@ class MetadataEmitter extends CodeEmitterHelper {
|
| buffer.write('];$n');
|
| }
|
|
|
| - jsAst.Fun extendWithMetadata(FunctionElement element, jsAst.Fun code) {
|
| - if (!backend.retainMetadataOf(element)) return code;
|
| + List<int> computeMetadata(FunctionElement element) {
|
| return compiler.withCurrentElement(element, () {
|
| + if (!backend.retainMetadataOf(element)) return const <int>[];
|
| List<int> metadata = <int>[];
|
| - FunctionSignature signature = element.functionSignature;
|
| - if (element.isConstructor()) {
|
| - metadata.add(reifyType(element.getEnclosingClass().thisType));
|
| - } else {
|
| - metadata.add(reifyType(signature.returnType));
|
| - }
|
| - signature.forEachParameter((Element parameter) {
|
| - metadata
|
| - ..add(reifyName(parameter.name))
|
| - ..add(reifyType(parameter.computeType(compiler)));
|
| - });
|
| Link link = element.metadata;
|
| // TODO(ahe): Why is metadata sometimes null?
|
| if (link != null) {
|
| @@ -140,8 +129,7 @@ class MetadataEmitter extends CodeEmitterHelper {
|
| metadata.add(reifyMetadata(link.head));
|
| }
|
| }
|
| - code.body.statements.add(js.string(metadata.join(',')).toStatement());
|
| - return code;
|
| + return metadata;
|
| });
|
| }
|
| }
|
|
|