X87: Fix %FunctionGetName and %_ClassOf for bound functions.
port 8e303dd0b3
(r36276)
original commit message:
BUG=
Review-Url: https://codereview.chromium.org/1989153002
Cr-Commit-Position: refs/heads/master@{#36305}
This commit is contained in:
parent
c5a71f029f
commit
dcc283e823
@ -2520,11 +2520,12 @@ void LCodeGen::EmitClassOfTest(Label* is_true,
|
|||||||
DCHECK(!temp.is(temp2));
|
DCHECK(!temp.is(temp2));
|
||||||
__ JumpIfSmi(input, is_false);
|
__ JumpIfSmi(input, is_false);
|
||||||
|
|
||||||
__ CmpObjectType(input, JS_FUNCTION_TYPE, temp);
|
__ CmpObjectType(input, FIRST_FUNCTION_TYPE, temp);
|
||||||
|
STATIC_ASSERT(LAST_FUNCTION_TYPE == LAST_TYPE);
|
||||||
if (String::Equals(isolate()->factory()->Function_string(), class_name)) {
|
if (String::Equals(isolate()->factory()->Function_string(), class_name)) {
|
||||||
__ j(equal, is_true);
|
__ j(above_equal, is_true);
|
||||||
} else {
|
} else {
|
||||||
__ j(equal, is_false);
|
__ j(above_equal, is_false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now we are in the FIRST-LAST_NONCALLABLE_SPEC_OBJECT_TYPE range.
|
// Now we are in the FIRST-LAST_NONCALLABLE_SPEC_OBJECT_TYPE range.
|
||||||
|
@ -2715,9 +2715,10 @@ void FullCodeGenerator::EmitClassOf(CallRuntime* expr) {
|
|||||||
__ CmpObjectType(eax, FIRST_JS_RECEIVER_TYPE, eax);
|
__ CmpObjectType(eax, FIRST_JS_RECEIVER_TYPE, eax);
|
||||||
__ j(below, &null, Label::kNear);
|
__ j(below, &null, Label::kNear);
|
||||||
|
|
||||||
// Return 'Function' for JSFunction objects.
|
// Return 'Function' for JSFunction and JSBoundFunction objects.
|
||||||
__ CmpInstanceType(eax, JS_FUNCTION_TYPE);
|
__ CmpInstanceType(eax, FIRST_FUNCTION_TYPE);
|
||||||
__ j(equal, &function, Label::kNear);
|
STATIC_ASSERT(LAST_FUNCTION_TYPE == LAST_TYPE);
|
||||||
|
__ j(above_equal, &function, Label::kNear);
|
||||||
|
|
||||||
// Check if the constructor in the map is a JS function.
|
// Check if the constructor in the map is a JS function.
|
||||||
__ GetMapConstructor(eax, eax, ebx);
|
__ GetMapConstructor(eax, eax, ebx);
|
||||||
|
Loading…
Reference in New Issue
Block a user