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

Side by Side Diff: pkg/compiler/lib/src/js_emitter/class_stub_generator.dart

Issue 1299413002: Move common identifiers, names and selectors to a separate library. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 5 years, 4 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
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 dart2js.js_emitter; 5 part of dart2js.js_emitter;
6 6
7 class ClassStubGenerator { 7 class ClassStubGenerator {
8 final Namer namer; 8 final Namer namer;
9 final Compiler compiler; 9 final Compiler compiler;
10 final JavaScriptBackend backend; 10 final JavaScriptBackend backend;
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 List<String> parameterNames = 160 List<String> parameterNames =
161 new List.generate(selector.argumentCount, (i) => '\$$i'); 161 new List.generate(selector.argumentCount, (i) => '\$$i');
162 162
163 List<jsAst.Expression> argNames = 163 List<jsAst.Expression> argNames =
164 selector.callStructure.getOrderedNamedArguments().map((String name) => 164 selector.callStructure.getOrderedNamedArguments().map((String name) =>
165 js.string(name)).toList(); 165 js.string(name)).toList();
166 166
167 jsAst.Name methodName = namer.asName(selector.invocationMirrorMemberName); 167 jsAst.Name methodName = namer.asName(selector.invocationMirrorMemberName);
168 jsAst.Name internalName = namer.invocationMirrorInternalName(selector); 168 jsAst.Name internalName = namer.invocationMirrorInternalName(selector);
169 169
170 assert(backend.isInterceptedName(Compiler.NO_SUCH_METHOD)); 170 assert(backend.isInterceptedName(Identifiers.noSuchMethod_));
171 bool isIntercepted = backend.isInterceptedName(selector.name); 171 bool isIntercepted = backend.isInterceptedName(selector.name);
172 jsAst.Expression expression = 172 jsAst.Expression expression =
173 js('''this.#noSuchMethodName(#receiver, 173 js('''this.#noSuchMethodName(#receiver,
174 #createInvocationMirror(#methodName, 174 #createInvocationMirror(#methodName,
175 #internalName, 175 #internalName,
176 #type, 176 #type,
177 #arguments, 177 #arguments,
178 #namedArguments))''', 178 #namedArguments))''',
179 {'receiver': isIntercepted ? r'$receiver' : 'this', 179 {'receiver': isIntercepted ? r'$receiver' : 'this',
180 'noSuchMethodName': namer.noSuchMethodName, 180 'noSuchMethodName': namer.noSuchMethodName,
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 ? function() { 288 ? function() {
289 if (cache === void 0) cache = #tearOff( 289 if (cache === void 0) cache = #tearOff(
290 this, funcs, reflectionInfo, true, [], name).prototype; 290 this, funcs, reflectionInfo, true, [], name).prototype;
291 return cache; 291 return cache;
292 } 292 }
293 : tearOffGetter(funcs, reflectionInfo, name, isIntercepted); 293 : tearOffGetter(funcs, reflectionInfo, name, isIntercepted);
294 }''', {'tearOff': tearOffAccessExpression}); 294 }''', {'tearOff': tearOffAccessExpression});
295 295
296 return <jsAst.Statement>[tearOffGetter, tearOff]; 296 return <jsAst.Statement>[tearOffGetter, tearOff];
297 } 297 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698