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

Side by Side Diff: pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart

Issue 2042293002: Adds status entries for initializing_formal tests. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 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
« no previous file with comments | « no previous file | pkg/compiler/lib/src/resolution/members.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) 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 library dart2js.ir_builder_task; 5 library dart2js.ir_builder_task;
6 6
7 import 'package:js_runtime/shared/embedded_names.dart' 7 import 'package:js_runtime/shared/embedded_names.dart'
8 show JsBuiltin, JsGetName; 8 show JsBuiltin, JsGetName;
9 9
10 import '../closure.dart' as closure; 10 import '../closure.dart' as closure;
(...skipping 3841 matching lines...) Expand 10 before | Expand all | Expand 10 after
3852 handleSend(node); 3852 handleSend(node);
3853 node.visitChildren(this); 3853 node.visitChildren(this);
3854 } 3854 }
3855 3855
3856 visitSendSet(ast.SendSet node) { 3856 visitSendSet(ast.SendSet node) {
3857 handleSend(node); 3857 handleSend(node);
3858 Element element = elements[node]; 3858 Element element = elements[node];
3859 if (Elements.isLocal(element)) { 3859 if (Elements.isLocal(element)) {
3860 LocalElement local = element; 3860 LocalElement local = element;
3861 if (insideInitializer && 3861 if (insideInitializer &&
3862 local.isParameter && 3862 (local.isParameter || local.isInitializingFormal) &&
3863 local.enclosingElement == currentFunction) { 3863 local.enclosingElement == currentFunction) {
3864 assert(local.enclosingElement.isConstructor); 3864 assert(local.enclosingElement.isConstructor);
3865 // Initializers in an initializer-list can communicate via parameters. 3865 // Initializers in an initializer-list can communicate via parameters.
3866 // If a parameter is stored in an initializer list we box it. 3866 // If a parameter is stored in an initializer list we box it.
3867 // TODO(sigurdm): Fix this. 3867 // TODO(sigurdm): Fix this.
3868 // Though these variables do not outlive the activation of the 3868 // Though these variables do not outlive the activation of the
3869 // function, they still need to be boxed. As a simplification, we 3869 // function, they still need to be boxed. As a simplification, we
3870 // treat them as if they are captured by a closure (i.e., they do 3870 // treat them as if they are captured by a closure (i.e., they do
3871 // outlive the activation of the function). 3871 // outlive the activation of the function).
3872 markAsCaptured(local); 3872 markAsCaptured(local);
3873 } else if (inTryStatement) { 3873 } else if (inTryStatement) {
3874 assert(local.isParameter || local.isVariable); 3874 assert(local.isParameter ||
3875 local.isVariable ||
3876 local.isInitializingFormal);
3875 // Search for the position of the try block containing the variable 3877 // Search for the position of the try block containing the variable
3876 // declaration, or -1 if it is declared outside the outermost try. 3878 // declaration, or -1 if it is declared outside the outermost try.
3877 int i = tryNestingStack.length - 1; 3879 int i = tryNestingStack.length - 1;
3878 while (i >= 0 && !tryNestingStack[i].declared.contains(local)) { 3880 while (i >= 0 && !tryNestingStack[i].declared.contains(local)) {
3879 --i; 3881 --i;
3880 } 3882 }
3881 // If there is a next inner try, then the variable should be boxed on 3883 // If there is a next inner try, then the variable should be boxed on
3882 // entry to it. 3884 // entry to it.
3883 if (i + 1 < tryNestingStack.length) { 3885 if (i + 1 < tryNestingStack.length) {
3884 tryNestingStack[i + 1].boxedOnEntry.add(local); 3886 tryNestingStack[i + 1].boxedOnEntry.add(local);
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
4022 _backend.jsInteropAnalysis.hasAnonymousAnnotation(element.contextClass); 4024 _backend.jsInteropAnalysis.hasAnonymousAnnotation(element.contextClass);
4023 4025
4024 String getJsInteropTargetPath(FunctionElement element) { 4026 String getJsInteropTargetPath(FunctionElement element) {
4025 return '${_backend.namer.fixedBackendPath(element)}.' 4027 return '${_backend.namer.fixedBackendPath(element)}.'
4026 '${_backend.nativeData.getFixedBackendName(element)}'; 4028 '${_backend.nativeData.getFixedBackendName(element)}';
4027 } 4029 }
4028 4030
4029 DartType get jsJavascriptObjectType => 4031 DartType get jsJavascriptObjectType =>
4030 _backend.helpers.jsJavaScriptObjectClass.thisType; 4032 _backend.helpers.jsJavaScriptObjectClass.thisType;
4031 } 4033 }
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/resolution/members.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698