| Index: src/x64/full-codegen-x64.cc
|
| diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc
|
| index 0b19edd683084bd92d7f67ebdff57ec6f3d43d12..0c23096c5bfef0f986dc4b874c2e61f12a9596aa 100644
|
| --- a/src/x64/full-codegen-x64.cc
|
| +++ b/src/x64/full-codegen-x64.cc
|
| @@ -4977,10 +4977,11 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
|
| __ jmp(&stub_call, Label::kNear);
|
| __ bind(&slow);
|
| }
|
| -
|
| - ToNumberStub convert_stub(isolate());
|
| - __ CallStub(&convert_stub);
|
| - PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
|
| + if (!is_strong(language_mode())) {
|
| + ToNumberStub convert_stub(isolate());
|
| + __ CallStub(&convert_stub);
|
| + PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
|
| + }
|
|
|
| // Save result for postfix expressions.
|
| if (expr->is_postfix()) {
|
| @@ -5021,6 +5022,9 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
|
| patch_site.EmitPatchInfo();
|
| __ bind(&done);
|
|
|
| + if (is_strong(language_mode())) {
|
| + PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
|
| + }
|
| // Store the value returned in rax.
|
| switch (assign_type) {
|
| case VARIABLE:
|
|
|