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

Side by Side Diff: src/full-codegen/arm/full-codegen-arm.cc

Issue 1517673002: Fix Object.prototype.toString.call(proxy) (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add test Created 5 years 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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_ARM 5 #if V8_TARGET_ARCH_ARM
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 3321 matching lines...) Expand 10 before | Expand all | Expand 10 after
3332 __ JumpIfSmi(r0, &null); 3332 __ JumpIfSmi(r0, &null);
3333 3333
3334 // Check that the object is a JS object but take special care of JS 3334 // Check that the object is a JS object but take special care of JS
3335 // functions to make sure they have 'Function' as their class. 3335 // functions to make sure they have 'Function' as their class.
3336 // Assume that there are only two callable types, and one of them is at 3336 // Assume that there are only two callable types, and one of them is at
3337 // either end of the type range for JS object types. Saves extra comparisons. 3337 // either end of the type range for JS object types. Saves extra comparisons.
3338 STATIC_ASSERT(NUM_OF_CALLABLE_SPEC_OBJECT_TYPES == 2); 3338 STATIC_ASSERT(NUM_OF_CALLABLE_SPEC_OBJECT_TYPES == 2);
3339 __ CompareObjectType(r0, r0, r1, FIRST_JS_RECEIVER_TYPE); 3339 __ CompareObjectType(r0, r0, r1, FIRST_JS_RECEIVER_TYPE);
3340 // Map is now in r0. 3340 // Map is now in r0.
3341 __ b(lt, &null); 3341 __ b(lt, &null);
3342 STATIC_ASSERT(FIRST_NONCALLABLE_SPEC_OBJECT_TYPE ==
3343 FIRST_JS_RECEIVER_TYPE + 1);
3344 __ b(eq, &function);
3345 3342
3346 __ cmp(r1, Operand(LAST_JS_RECEIVER_TYPE)); 3343 __ cmp(r1, Operand(LAST_JS_RECEIVER_TYPE));
3347 STATIC_ASSERT(LAST_NONCALLABLE_SPEC_OBJECT_TYPE == 3344 STATIC_ASSERT(LAST_NONCALLABLE_SPEC_OBJECT_TYPE ==
3348 LAST_JS_RECEIVER_TYPE - 1); 3345 LAST_JS_RECEIVER_TYPE - 1);
3349 __ b(eq, &function); 3346 __ b(eq, &function);
3350 // Assume that there is no larger type. 3347 // Assume that there is no larger type.
3351 STATIC_ASSERT(LAST_NONCALLABLE_SPEC_OBJECT_TYPE == LAST_TYPE - 1); 3348 STATIC_ASSERT(LAST_NONCALLABLE_SPEC_OBJECT_TYPE == LAST_TYPE - 1);
3352 3349
3353 // Check if the constructor in the map is a JS function. 3350 // Check if the constructor in the map is a JS function.
3354 Register instance_type = r2; 3351 Register instance_type = r2;
(...skipping 1606 matching lines...) Expand 10 before | Expand all | Expand 10 after
4961 DCHECK(interrupt_address == 4958 DCHECK(interrupt_address ==
4962 isolate->builtins()->OsrAfterStackCheck()->entry()); 4959 isolate->builtins()->OsrAfterStackCheck()->entry());
4963 return OSR_AFTER_STACK_CHECK; 4960 return OSR_AFTER_STACK_CHECK;
4964 } 4961 }
4965 4962
4966 4963
4967 } // namespace internal 4964 } // namespace internal
4968 } // namespace v8 4965 } // namespace v8
4969 4966
4970 #endif // V8_TARGET_ARCH_ARM 4967 #endif // V8_TARGET_ARCH_ARM
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698