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

Side by Side Diff: runtime/vm/kernel_to_il.h

Issue 2891053003: Add support for converted closures with explicit contexts to VM (Closed)
Patch Set: Created 3 years, 7 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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 #ifndef RUNTIME_VM_KERNEL_TO_IL_H_ 5 #ifndef RUNTIME_VM_KERNEL_TO_IL_H_
6 #define RUNTIME_VM_KERNEL_TO_IL_H_ 6 #define RUNTIME_VM_KERNEL_TO_IL_H_
7 7
8 #if !defined(DART_PRECOMPILED_RUNTIME) 8 #if !defined(DART_PRECOMPILED_RUNTIME)
9 9
10 #include "vm/growable_array.h" 10 #include "vm/growable_array.h"
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 virtual void VisitFunctionType(FunctionType* node); 444 virtual void VisitFunctionType(FunctionType* node);
445 445
446 virtual void VisitTypeParameterType(TypeParameterType* node); 446 virtual void VisitTypeParameterType(TypeParameterType* node);
447 447
448 virtual void VisitInterfaceType(InterfaceType* node); 448 virtual void VisitInterfaceType(InterfaceType* node);
449 449
450 virtual void VisitDynamicType(DynamicType* node); 450 virtual void VisitDynamicType(DynamicType* node);
451 451
452 virtual void VisitVoidType(VoidType* node); 452 virtual void VisitVoidType(VoidType* node);
453 453
454 virtual void VisitVectorType(VectorType* node);
455
454 virtual void VisitBottomType(BottomType* node); 456 virtual void VisitBottomType(BottomType* node);
455 457
456 // Will return `TypeArguments::null()` in case any of the arguments are 458 // Will return `TypeArguments::null()` in case any of the arguments are
457 // malformed. 459 // malformed.
458 const TypeArguments& TranslateInstantiatedTypeArguments( 460 const TypeArguments& TranslateInstantiatedTypeArguments(
459 const dart::Class& receiver_class, 461 const dart::Class& receiver_class,
460 DartType** receiver_type_arguments, 462 DartType** receiver_type_arguments,
461 intptr_t length); 463 intptr_t length);
462 464
463 // Will return `TypeArguments::null()` in case any of the arguments are 465 // Will return `TypeArguments::null()` in case any of the arguments are
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 virtual void VisitLogicalExpression(LogicalExpression* node); 825 virtual void VisitLogicalExpression(LogicalExpression* node);
824 virtual void VisitNot(Not* node); 826 virtual void VisitNot(Not* node);
825 virtual void VisitThisExpression(ThisExpression* node); 827 virtual void VisitThisExpression(ThisExpression* node);
826 virtual void VisitStringConcatenation(StringConcatenation* node); 828 virtual void VisitStringConcatenation(StringConcatenation* node);
827 virtual void VisitListLiteral(ListLiteral* node); 829 virtual void VisitListLiteral(ListLiteral* node);
828 virtual void VisitMapLiteral(MapLiteral* node); 830 virtual void VisitMapLiteral(MapLiteral* node);
829 virtual void VisitFunctionExpression(FunctionExpression* node); 831 virtual void VisitFunctionExpression(FunctionExpression* node);
830 virtual void VisitLet(Let* node); 832 virtual void VisitLet(Let* node);
831 virtual void VisitThrow(Throw* node); 833 virtual void VisitThrow(Throw* node);
832 virtual void VisitRethrow(Rethrow* node); 834 virtual void VisitRethrow(Rethrow* node);
835 virtual void VisitVectorCreation(VectorCreation* node);
836 virtual void VisitVectorGet(VectorGet* node);
837 virtual void VisitVectorSet(VectorSet* node);
838 virtual void VisitVectorCopy(VectorCopy* node);
839 virtual void VisitClosureCreation(ClosureCreation* node);
833 840
834 virtual void VisitInvalidStatement(InvalidStatement* node); 841 virtual void VisitInvalidStatement(InvalidStatement* node);
835 virtual void VisitEmptyStatement(EmptyStatement* node); 842 virtual void VisitEmptyStatement(EmptyStatement* node);
836 virtual void VisitBlock(Block* node); 843 virtual void VisitBlock(Block* node);
837 virtual void VisitReturnStatement(ReturnStatement* node); 844 virtual void VisitReturnStatement(ReturnStatement* node);
838 virtual void VisitExpressionStatement(ExpressionStatement* node); 845 virtual void VisitExpressionStatement(ExpressionStatement* node);
839 virtual void VisitVariableDeclaration(VariableDeclaration* node); 846 virtual void VisitVariableDeclaration(VariableDeclaration* node);
840 virtual void VisitFunctionDeclaration(FunctionDeclaration* node); 847 virtual void VisitFunctionDeclaration(FunctionDeclaration* node);
841 virtual void VisitIfStatement(IfStatement* node); 848 virtual void VisitIfStatement(IfStatement* node);
842 virtual void VisitWhileStatement(WhileStatement* node); 849 virtual void VisitWhileStatement(WhileStatement* node);
(...skipping 11 matching lines...) Expand all
854 861
855 private: 862 private:
856 FlowGraph* BuildGraphOfFunction(FunctionNode* node, 863 FlowGraph* BuildGraphOfFunction(FunctionNode* node,
857 Constructor* constructor = NULL); 864 Constructor* constructor = NULL);
858 FlowGraph* BuildGraphOfFieldAccessor(Field* node, 865 FlowGraph* BuildGraphOfFieldAccessor(Field* node,
859 LocalVariable* setter_value); 866 LocalVariable* setter_value);
860 FlowGraph* BuildGraphOfStaticFieldInitializer(Field* node); 867 FlowGraph* BuildGraphOfStaticFieldInitializer(Field* node);
861 FlowGraph* BuildGraphOfMethodExtractor(const Function& method); 868 FlowGraph* BuildGraphOfMethodExtractor(const Function& method);
862 FlowGraph* BuildGraphOfImplicitClosureFunction(FunctionNode* kernel_function, 869 FlowGraph* BuildGraphOfImplicitClosureFunction(FunctionNode* kernel_function,
863 const Function& function); 870 const Function& function);
871 FlowGraph* BuildGraphOfConvertedClosureFunction(FunctionNode* kernel_function,
872 const Function& function);
864 FlowGraph* BuildGraphOfNoSuchMethodDispatcher(const Function& function); 873 FlowGraph* BuildGraphOfNoSuchMethodDispatcher(const Function& function);
865 FlowGraph* BuildGraphOfInvokeFieldDispatcher(const Function& function); 874 FlowGraph* BuildGraphOfInvokeFieldDispatcher(const Function& function);
866 875
867 Fragment NativeFunctionBody(FunctionNode* kernel_function, 876 Fragment NativeFunctionBody(FunctionNode* kernel_function,
868 const Function& function); 877 const Function& function);
869 878
870 void SetupDefaultParameterValues(FunctionNode* function); 879 void SetupDefaultParameterValues(FunctionNode* function);
871 880
872 TargetEntryInstr* BuildTargetEntry(); 881 TargetEntryInstr* BuildTargetEntry();
873 JoinEntryInstr* BuildJoinEntry(); 882 JoinEntryInstr* BuildJoinEntry();
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
1361 namespace kernel { 1370 namespace kernel {
1362 1371
1363 RawObject* EvaluateMetadata(const dart::Field& metadata_field); 1372 RawObject* EvaluateMetadata(const dart::Field& metadata_field);
1364 RawObject* BuildParameterDescriptor(const Function& function); 1373 RawObject* BuildParameterDescriptor(const Function& function);
1365 1374
1366 } // namespace kernel 1375 } // namespace kernel
1367 } // namespace dart 1376 } // namespace dart
1368 1377
1369 #endif // !defined(DART_PRECOMPILED_RUNTIME) 1378 #endif // !defined(DART_PRECOMPILED_RUNTIME)
1370 #endif // RUNTIME_VM_KERNEL_TO_IL_H_ 1379 #endif // RUNTIME_VM_KERNEL_TO_IL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698