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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/js_backend/emitter_no_eval.dart

Issue 15888010: Re-apply "Implement operator== and hashCode for bound closures." (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 months 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 part of js_backend; 5 part of js_backend;
6 6
7 class CodeEmitterNoEvalTask extends CodeEmitterTask { 7 class CodeEmitterNoEvalTask extends CodeEmitterTask {
8 CodeEmitterNoEvalTask(Compiler compiler, 8 CodeEmitterNoEvalTask(Compiler compiler,
9 Namer namer, 9 Namer namer,
10 bool generateSourceMap) 10 bool generateSourceMap)
11 : super(compiler, namer, generateSourceMap); 11 : super(compiler, namer, generateSourceMap);
12 12
13 bool get getterAndSetterCanBeImplementedByFieldSpec => false; 13 bool get getterAndSetterCanBeImplementedByFieldSpec => false;
14 bool get generateTrivialNsmHandlers => false; 14 bool get generateTrivialNsmHandlers => false;
15 15
16 void emitSuper(String superName, ClassBuilder builder) { 16 void emitSuper(String superName, ClassBuilder builder) {
17 if (superName != '') { 17 if (superName != '') {
18 builder.addProperty('super', js.string(superName)); 18 builder.addProperty('super', js.string(superName));
19 } 19 }
20 } 20 }
21 21
22 void emitRuntimeName(String runtimeName, ClassBuilder builder) { 22 void emitRuntimeName(String runtimeName, ClassBuilder builder) {
23 if (runtimeName != null) { 23 if (runtimeName != null) {
24 builder.addProperty(r'$name', js.string(runtimeName)); 24 builder.addProperty(r'$name', js.string(runtimeName));
25 } 25 }
26 } 26 }
27 27
28 void emitBoundClosureClassHeader(String mangledName, 28 void emitClosureClassHeader(String mangledName,
29 String superName, 29 String superName,
30 List<String> fieldNames, 30 List<String> fieldNames,
31 ClassBuilder builder) { 31 ClassBuilder builder) {
32 builder.addProperty('', buildConstructor(mangledName, fieldNames)); 32 builder.addProperty('', buildConstructor(mangledName, fieldNames));
33 emitSuper(superName, builder); 33 emitSuper(superName, builder);
34 } 34 }
35 35
36 36
37 bool emitClassFields(ClassElement classElement, 37 bool emitClassFields(ClassElement classElement,
38 ClassBuilder builder, 38 ClassBuilder builder,
39 String superName, 39 String superName,
40 { bool classIsNative: false }) { 40 { bool classIsNative: false }) {
41 // Class fields are dynamically generated so they have to be 41 // Class fields are dynamically generated so they have to be
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 makeGetter(1), 169 makeGetter(1),
170 makeGetter(0)]; 170 makeGetter(0)];
171 171
172 return js(ref(backend.initializeDispatchPropertyMethod))([ 172 return js(ref(backend.initializeDispatchPropertyMethod))([
173 js.fun(['a'], [ js('${ref(backend.getDispatchPropertyMethod)} = a')]), 173 js.fun(['a'], [ js('${ref(backend.getDispatchPropertyMethod)} = a')]),
174 new jsAst.ArrayInitializer.from(getters), 174 new jsAst.ArrayInitializer.from(getters),
175 js('${ref(backend.jsInterceptorClass)}.prototype') 175 js('${ref(backend.jsInterceptorClass)}.prototype')
176 ]); 176 ]);
177 } 177 }
178 } 178 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698