OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #if V8_TARGET_ARCH_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
6 | 6 |
7 #include "src/ast/scopes.h" | 7 #include "src/ast/scopes.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 2966 matching lines...) Loading... |
2977 VisitForStackValue(property->obj()); | 2977 VisitForStackValue(property->obj()); |
2978 VisitForStackValue(property->key()); | 2978 VisitForStackValue(property->key()); |
2979 CallRuntimeWithOperands(is_strict(language_mode()) | 2979 CallRuntimeWithOperands(is_strict(language_mode()) |
2980 ? Runtime::kDeleteProperty_Strict | 2980 ? Runtime::kDeleteProperty_Strict |
2981 : Runtime::kDeleteProperty_Sloppy); | 2981 : Runtime::kDeleteProperty_Sloppy); |
2982 context()->Plug(x0); | 2982 context()->Plug(x0); |
2983 } else if (proxy != NULL) { | 2983 } else if (proxy != NULL) { |
2984 Variable* var = proxy->var(); | 2984 Variable* var = proxy->var(); |
2985 // Delete of an unqualified identifier is disallowed in strict mode but | 2985 // Delete of an unqualified identifier is disallowed in strict mode but |
2986 // "delete this" is allowed. | 2986 // "delete this" is allowed. |
2987 bool is_this = var->HasThisName(isolate()); | 2987 bool is_this = var->is_this(); |
2988 DCHECK(is_sloppy(language_mode()) || is_this); | 2988 DCHECK(is_sloppy(language_mode()) || is_this); |
2989 if (var->IsUnallocatedOrGlobalSlot()) { | 2989 if (var->IsUnallocatedOrGlobalSlot()) { |
2990 __ LoadGlobalObject(x12); | 2990 __ LoadGlobalObject(x12); |
2991 __ Mov(x11, Operand(var->name())); | 2991 __ Mov(x11, Operand(var->name())); |
2992 __ Push(x12, x11); | 2992 __ Push(x12, x11); |
2993 __ CallRuntime(Runtime::kDeleteProperty_Sloppy); | 2993 __ CallRuntime(Runtime::kDeleteProperty_Sloppy); |
2994 context()->Plug(x0); | 2994 context()->Plug(x0); |
2995 } else if (var->IsStackAllocated() || var->IsContextSlot()) { | 2995 } else if (var->IsStackAllocated() || var->IsContextSlot()) { |
2996 // Result of deleting non-global, non-dynamic variables is false. | 2996 // Result of deleting non-global, non-dynamic variables is false. |
2997 // The subexpression does not have side effects. | 2997 // The subexpression does not have side effects. |
(...skipping 848 matching lines...) Loading... |
3846 } | 3846 } |
3847 | 3847 |
3848 return INTERRUPT; | 3848 return INTERRUPT; |
3849 } | 3849 } |
3850 | 3850 |
3851 | 3851 |
3852 } // namespace internal | 3852 } // namespace internal |
3853 } // namespace v8 | 3853 } // namespace v8 |
3854 | 3854 |
3855 #endif // V8_TARGET_ARCH_ARM64 | 3855 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |