Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: dart/tests/compiler/dart2js/mirrors_used_test.dart

Issue 103863004: Revert "Generate tear-off closures dynamically." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// Test that the @MirrorsUsed annotation suppress hints and that only 5 /// Test that the @MirrorsUsed annotation suppress hints and that only
6 /// requested elements are retained for reflection. 6 /// requested elements are retained for reflection.
7 library dart2js.test.mirrors_used_test; 7 library dart2js.test.mirrors_used_test;
8 8
9 import 'package:expect/expect.dart'; 9 import 'package:expect/expect.dart';
10 import "package:async_helper/async_helper.dart"; 10 import "package:async_helper/async_helper.dart";
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 for (var element in generatedCode) { 51 for (var element in generatedCode) {
52 print(element); 52 print(element);
53 } 53 }
54 print(''); 54 print('');
55 55
56 // This assertion can fail for two reasons: 56 // This assertion can fail for two reasons:
57 // 1. Too many elements retained for reflection. 57 // 1. Too many elements retained for reflection.
58 // 2. Some code was refactored, and there are more methods. 58 // 2. Some code was refactored, and there are more methods.
59 // Either situation could be problematic, but in situation 2, it is often 59 // Either situation could be problematic, but in situation 2, it is often
60 // acceptable to increase [expectedMethodCount] a little. 60 // acceptable to increase [expectedMethodCount] a little.
61 int expectedMethodCount = 350; 61 int expectedMethodCount = 346;
62 Expect.isTrue( 62 Expect.isTrue(
63 generatedCode.length <= expectedMethodCount, 63 generatedCode.length <= expectedMethodCount,
64 'Too many compiled methods: ' 64 'Too many compiled methods: '
65 '${generatedCode.length} > $expectedMethodCount'); 65 '${generatedCode.length} > $expectedMethodCount');
66 66
67 // The following names should be retained: 67 // The following names should be retained:
68 List expectedNames = [ 68 List expectedNames = [
69 'Foo', // The name of class Foo. 69 'Foo', // The name of class Foo.
70 r'Foo$', // The name of class Foo's constructor. 70 r'Foo$', // The name of class Foo's constructor.
71 r'get$field']; // The (getter) name of Foo.field.
72 // TODO(ahe): Check for the following names, currently they are not being
73 // recorded correctly, but are being emitted.
74 [
75 'Foo_staticMethod', // The name of Foo.staticMethod. 71 'Foo_staticMethod', // The name of Foo.staticMethod.
72 r'get$field', // The (getter) name of Foo.field.
76 r'instanceMethod$0']; // The name of Foo.instanceMethod. 73 r'instanceMethod$0']; // The name of Foo.instanceMethod.
77 Set recordedNames = new Set() 74 Set recordedNames = new Set()
78 ..addAll(compiler.backend.emitter.recordedMangledNames) 75 ..addAll(compiler.backend.emitter.recordedMangledNames)
79 ..addAll(compiler.backend.emitter.mangledFieldNames.keys) 76 ..addAll(compiler.backend.emitter.mangledFieldNames.keys)
80 ..addAll(compiler.backend.emitter.mangledGlobalFieldNames.keys); 77 ..addAll(compiler.backend.emitter.mangledGlobalFieldNames.keys);
81 Expect.setEquals(new Set.from(expectedNames), recordedNames); 78 Expect.setEquals(new Set.from(expectedNames), recordedNames);
82 79
83 for (var library in compiler.libraries.values) { 80 for (var library in compiler.libraries.values) {
84 library.forEachLocalMember((member) { 81 library.forEachLocalMember((member) {
85 if (library == compiler.mainApp && member.name == 'Foo') { 82 if (library == compiler.mainApp && member.name == 'Foo') {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 library lib; 147 library lib;
151 148
152 import 'dart:mirrors'; 149 import 'dart:mirrors';
153 150
154 useReflect(type) { 151 useReflect(type) {
155 print(new Symbol('Foo')); 152 print(new Symbol('Foo'));
156 print(MirrorSystem.getName(reflectClass(type).owner.qualifiedName)); 153 print(MirrorSystem.getName(reflectClass(type).owner.qualifiedName));
157 } 154 }
158 """, 155 """,
159 }; 156 };
OLDNEW
« no previous file with comments | « dart/sdk/lib/_internal/lib/js_rti.dart ('k') | dart/tests/compiler/dart2js/static_closure_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698