Skip to content
This repository has been archived by the owner on Apr 3, 2020. It is now read-only.

Commit

Permalink
X87: Fix %FunctionGetName and %_ClassOf for bound functions.
Browse files Browse the repository at this point in the history
  port 8e303dd (r36276)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/1989153002
Cr-Commit-Position: refs/heads/master@{#36305}
  • Loading branch information
lizhengxing authored and Commit bot committed May 18, 2016
1 parent c5a71f0 commit dcc283e
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
7 changes: 4 additions & 3 deletions src/crankshaft/x87/lithium-codegen-x87.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2520,11 +2520,12 @@ void LCodeGen::EmitClassOfTest(Label* is_true,
DCHECK(!temp.is(temp2));
__ 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)) {
__ j(equal, is_true);
__ j(above_equal, is_true);
} else {
__ j(equal, is_false);
__ j(above_equal, is_false);
}

// Now we are in the FIRST-LAST_NONCALLABLE_SPEC_OBJECT_TYPE range.
Expand Down
7 changes: 4 additions & 3 deletions src/full-codegen/x87/full-codegen-x87.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2715,9 +2715,10 @@ void FullCodeGenerator::EmitClassOf(CallRuntime* expr) {
__ CmpObjectType(eax, FIRST_JS_RECEIVER_TYPE, eax);
__ j(below, &null, Label::kNear);

// Return 'Function' for JSFunction objects.
__ CmpInstanceType(eax, JS_FUNCTION_TYPE);
__ j(equal, &function, Label::kNear);
// Return 'Function' for JSFunction and JSBoundFunction objects.
__ CmpInstanceType(eax, FIRST_FUNCTION_TYPE);
STATIC_ASSERT(LAST_FUNCTION_TYPE == LAST_TYPE);
__ j(above_equal, &function, Label::kNear);

// Check if the constructor in the map is a JS function.
__ GetMapConstructor(eax, eax, ebx);
Expand Down

0 comments on commit dcc283e

Please sign in to comment.