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

Issue 1325573004: [runtime] Replace many buggy uses of %_CallFunction with %_Call. (Closed)

Created:
5 years, 3 months ago by Benedikt Meurer
Modified:
5 years, 3 months ago
Reviewers:
Jarin, Camillo Bruni
CC:
v8-dev
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[runtime] Replace many buggy uses of %_CallFunction with %_Call. The semantics of the %_CallFunction intrinsic seem to be very unclear, which resulted in a lot of bugs. Especially the combination with %IsSloppyModeFunction is always a bug, because the receiver would be wrapped in the wrong context. So the %IsSloppyModeFunction helper is gone now, and many of the buggy uses of %_CallFunction are also eliminated. If you ever need to call something with a different receiver, then %_Call is your friend now. It does what you want and implements the call sequence fully (and correct). BUG=v8:4413 LOG=n Committed: https://crrev.com/db2ba190dba6983b94eae36e111b0feebb97587e Cr-Commit-Position: refs/heads/master@{#30634}

Patch Set 1 #

Patch Set 2 : Fix arm and arm64 typos. #

Total comments: 8

Patch Set 3 : Address Camillo's comment. #

Total comments: 2

Patch Set 4 : Address feedback. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+316 lines, -182 lines) Patch
M src/arm/interface-descriptors-arm.cc View 1 2 3 1 chunk +9 lines, -0 lines 0 comments Download
M src/arm64/interface-descriptors-arm64.cc View 1 chunk +9 lines, -0 lines 0 comments Download
M src/array.js View 19 chunks +15 lines, -50 lines 0 comments Download
M src/collection.js View 7 chunks +6 lines, -20 lines 0 comments Download
M src/compiler/linkage.cc View 1 chunk +1 line, -0 lines 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 1 2 chunks +21 lines, -1 line 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 1 2 chunks +22 lines, -1 line 0 comments Download
M src/full-codegen/full-codegen.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 2 chunks +21 lines, -1 line 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 2 chunks +21 lines, -1 line 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 2 chunks +21 lines, -1 line 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 2 chunks +21 lines, -1 line 0 comments Download
M src/harmony-array.js View 5 chunks +4 lines, -26 lines 0 comments Download
M src/harmony-typedarray.js View 2 chunks +2 lines, -2 lines 0 comments Download
M src/hydrogen.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/hydrogen.cc View 1 chunk +17 lines, -0 lines 0 comments Download
M src/ia32/interface-descriptors-ia32.cc View 1 2 3 1 chunk +9 lines, -0 lines 0 comments Download
M src/interface-descriptors.h View 2 chunks +8 lines, -0 lines 0 comments Download
M src/interface-descriptors.cc View 1 chunk +13 lines, -0 lines 0 comments Download
M src/json.js View 2 chunks +3 lines, -3 lines 0 comments Download
M src/macros.py View 1 chunk +0 lines, -1 line 0 comments Download
M src/mips/interface-descriptors-mips.cc View 1 chunk +9 lines, -0 lines 0 comments Download
M src/mips64/interface-descriptors-mips64.cc View 1 chunk +9 lines, -0 lines 0 comments Download
M src/object-observe.js View 1 2 1 chunk +1 line, -1 line 0 comments Download
M src/promise.js View 1 chunk +1 line, -1 line 0 comments Download
M src/runtime.js View 2 chunks +4 lines, -4 lines 0 comments Download
M src/runtime/runtime.h View 1 chunk +0 lines, -1 line 0 comments Download
M src/runtime/runtime-function.cc View 3 chunks +37 lines, -44 lines 0 comments Download
M src/string.js View 3 chunks +3 lines, -5 lines 0 comments Download
M src/typedarray.js View 1 chunk +1 line, -1 line 0 comments Download
M src/weak-collection.js View 2 chunks +2 lines, -2 lines 0 comments Download
M src/x64/interface-descriptors-x64.cc View 1 2 3 1 chunk +9 lines, -0 lines 0 comments Download
M test/mjsunit/debug-liveedit-check-stack.js View 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/harmony/proxies-function.js View 7 chunks +12 lines, -12 lines 0 comments Download
M test/mjsunit/strong/function-arity.js View 2 chunks +2 lines, -2 lines 0 comments Download

Messages

Total messages: 12 (4 generated)
Benedikt Meurer
Hey Jaro, Camillo, This is the initial part of the %_CallFunction fixification. Please take a ...
5 years, 3 months ago (2015-09-08 10:50:12 UTC) #2
Jarin
lgtm
5 years, 3 months ago (2015-09-08 11:10:07 UTC) #4
Camillo Bruni
JS-part: lgtm https://codereview.chromium.org/1325573004/diff/20001/src/arm/interface-descriptors-arm.cc File src/arm/interface-descriptors-arm.cc (right): https://codereview.chromium.org/1325573004/diff/20001/src/arm/interface-descriptors-arm.cc#newcode196 src/arm/interface-descriptors-arm.cc:196: CallInterfaceDescriptorData* data) { // r1: target // ...
5 years, 3 months ago (2015-09-08 11:19:13 UTC) #5
Camillo Bruni
minor improvements https://codereview.chromium.org/1325573004/diff/40001/src/array.js File src/array.js (right): https://codereview.chromium.org/1325573004/diff/40001/src/array.js#newcode925 src/array.js:925: return comparefn(a[1], b[1]); We can rid of ...
5 years, 3 months ago (2015-09-08 12:32:58 UTC) #6
Benedikt Meurer
https://codereview.chromium.org/1325573004/diff/20001/src/arm/interface-descriptors-arm.cc File src/arm/interface-descriptors-arm.cc (right): https://codereview.chromium.org/1325573004/diff/20001/src/arm/interface-descriptors-arm.cc#newcode196 src/arm/interface-descriptors-arm.cc:196: CallInterfaceDescriptorData* data) { On 2015/09/08 11:19:13, cbruni wrote: > ...
5 years, 3 months ago (2015-09-08 13:08:58 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1325573004/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1325573004/60001
5 years, 3 months ago (2015-09-08 13:09:48 UTC) #10
commit-bot: I haz the power
Committed patchset #4 (id:60001)
5 years, 3 months ago (2015-09-08 13:35:26 UTC) #11
commit-bot: I haz the power
5 years, 3 months ago (2015-09-08 13:35:41 UTC) #12
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/db2ba190dba6983b94eae36e111b0feebb97587e
Cr-Commit-Position: refs/heads/master@{#30634}

Powered by Google App Engine
This is Rietveld 408576698