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

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

Issue 2306813003: Rename $builtinType to $ti (Closed)
Patch Set: reformat Created 4 years, 3 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
« no previous file with comments | « pkg/compiler/lib/src/js_backend/namer.dart ('k') | pkg/compiler/lib/src/ssa/codegen.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // Function signatures used in the generation of runtime type information. 7 // Function signatures used in the generation of runtime type information.
8 typedef void FunctionTypeSignatureEmitter( 8 typedef void FunctionTypeSignatureEmitter(
9 Element method, FunctionType methodType); 9 Element method, FunctionType methodType);
10 10
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 } 313 }
314 314
315 StubMethod _generateTypeVariableReader( 315 StubMethod _generateTypeVariableReader(
316 ClassElement cls, TypeVariableElement element) { 316 ClassElement cls, TypeVariableElement element) {
317 jsAst.Name name = namer.nameForReadTypeVariable(element); 317 jsAst.Name name = namer.nameForReadTypeVariable(element);
318 int index = element.index; 318 int index = element.index;
319 jsAst.Expression computeTypeVariable; 319 jsAst.Expression computeTypeVariable;
320 320
321 Substitution substitution = 321 Substitution substitution =
322 backend.rti.getSubstitution(cls, element.typeDeclaration); 322 backend.rti.getSubstitution(cls, element.typeDeclaration);
323 jsAst.Name rtiFieldName = backend.namer.rtiFieldName;
323 if (substitution != null) { 324 if (substitution != null) {
324 computeTypeVariable = js( 325 computeTypeVariable = js(r'#.apply(null, this.#)', [
325 r'#.apply(null, this.$builtinTypeInfo)', 326 backend.rtiEncoder.getSubstitutionCodeForVariable(substitution, index),
326 backend.rtiEncoder 327 rtiFieldName
327 .getSubstitutionCodeForVariable(substitution, index)); 328 ]);
328 } else { 329 } else {
329 // TODO(ahe): These can be generated dynamically. 330 // TODO(ahe): These can be generated dynamically.
330 computeTypeVariable = js( 331 computeTypeVariable = js(r'this.# && this.#[#]',
331 r'this.$builtinTypeInfo && this.$builtinTypeInfo[#]', 332 [rtiFieldName, rtiFieldName, js.number(index)]);
332 js.number(index));
333 } 333 }
334 jsAst.Expression convertRtiToRuntimeType = backend.emitter 334 jsAst.Expression convertRtiToRuntimeType = backend.emitter
335 .staticFunctionAccess(backend.helpers.convertRtiToRuntimeType); 335 .staticFunctionAccess(backend.helpers.convertRtiToRuntimeType);
336 336
337 return new StubMethod( 337 return new StubMethod(
338 name, 338 name,
339 js('function () { return #(#) }', 339 js('function () { return #(#) }',
340 [convertRtiToRuntimeType, computeTypeVariable])); 340 [convertRtiToRuntimeType, computeTypeVariable]));
341 } 341 }
342 } 342 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_backend/namer.dart ('k') | pkg/compiler/lib/src/ssa/codegen.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698