OLD | NEW |
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 #include <set> | 5 #include <set> |
6 | 6 |
7 #include "vm/kernel_to_il.h" | 7 #include "vm/kernel_to_il.h" |
8 | 8 |
9 #include "vm/compiler.h" | 9 #include "vm/compiler.h" |
10 #include "vm/intermediate_language.h" | 10 #include "vm/intermediate_language.h" |
(...skipping 4035 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4046 } | 4046 } |
4047 return instructions; | 4047 return instructions; |
4048 } | 4048 } |
4049 | 4049 |
4050 | 4050 |
4051 Fragment FlowGraphBuilder::CheckAssignableInCheckedMode( | 4051 Fragment FlowGraphBuilder::CheckAssignableInCheckedMode( |
4052 const AbstractType& dst_type, | 4052 const AbstractType& dst_type, |
4053 const dart::String& dst_name) { | 4053 const dart::String& dst_name) { |
4054 Fragment instructions; | 4054 Fragment instructions; |
4055 if (I->type_checks() && !dst_type.IsDynamicType() && | 4055 if (I->type_checks() && !dst_type.IsDynamicType() && |
4056 !dst_type.IsObjectType()) { | 4056 !dst_type.IsObjectType() && !dst_type.IsVoidType()) { |
4057 LocalVariable* top_of_stack = MakeTemporary(); | 4057 LocalVariable* top_of_stack = MakeTemporary(); |
4058 instructions += LoadLocal(top_of_stack); | 4058 instructions += LoadLocal(top_of_stack); |
4059 instructions += AssertAssignable(dst_type, dst_name); | 4059 instructions += AssertAssignable(dst_type, dst_name); |
4060 instructions += Drop(); | 4060 instructions += Drop(); |
4061 } | 4061 } |
4062 return instructions; | 4062 return instructions; |
4063 } | 4063 } |
4064 | 4064 |
4065 | 4065 |
4066 Fragment FlowGraphBuilder::AssertBool() { | 4066 Fragment FlowGraphBuilder::AssertBool() { |
(...skipping 2807 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6874 thread->clear_sticky_error(); | 6874 thread->clear_sticky_error(); |
6875 return error.raw(); | 6875 return error.raw(); |
6876 } | 6876 } |
6877 } | 6877 } |
6878 | 6878 |
6879 | 6879 |
6880 } // namespace kernel | 6880 } // namespace kernel |
6881 } // namespace dart | 6881 } // namespace dart |
6882 | 6882 |
6883 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 6883 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
OLD | NEW |