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

Issue 6523052: CallIC and KeyedCallIC not wrapping this. (Closed)

Created:
9 years, 10 months ago by Martin Maly
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

CallIC and KeyedCallIC are not wrapping receiver for calls to strict mode and builtin functions. BUG= TEST=

Patch Set 1 : CallIC doesn't wrap this for strict mode functions.wq #

Total comments: 9

Patch Set 2 : KeyedCallIC + CR Feedback #

Total comments: 3

Patch Set 3 : More tests. #

Total comments: 6

Patch Set 4 : Fix comments and formatting. #

Total comments: 1

Patch Set 5 : Fix Handles #

Total comments: 17

Patch Set 6 : Last touches. #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+296 lines, -61 lines) Patch
M src/arm/stub-cache-arm.cc View 3 chunks +9 lines, -6 lines 0 comments Download
M src/ia32/stub-cache-ia32.cc View 3 chunks +9 lines, -6 lines 0 comments Download
M src/ic.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/ic.cc View 1 2 3 4 5 7 chunks +52 lines, -41 lines 2 comments Download
M src/x64/stub-cache-x64.cc View 3 chunks +9 lines, -6 lines 0 comments Download
M test/mjsunit/strict-mode.js View 1 2 2 chunks +216 lines, -1 line 0 comments Download

Messages

Total messages: 13 (0 generated)
Martin Maly
Attempt at CallIC not wrapping "this" for strict mode target functions. Only CallIC so far, ...
9 years, 10 months ago (2011-02-16 04:56:17 UTC) #1
Mads Ager (chromium)
As far as I can tell this should work. When you have removed the TODOs ...
9 years, 10 months ago (2011-02-16 10:43:54 UTC) #2
Vitaly Repeshko
Drive by comments. http://codereview.chromium.org/6523052/diff/2001/src/ic.cc File src/ic.cc (right): http://codereview.chromium.org/6523052/diff/2001/src/ic.cc#newcode511 src/ic.cc:511: ReceiverToObject(object); 1. Since this is now ...
9 years, 10 months ago (2011-02-16 11:52:12 UTC) #3
Lasse Reichstein
Just a comment. http://codereview.chromium.org/6523052/diff/2001/src/arm/stub-cache-arm.cc File src/arm/stub-cache-arm.cc (right): http://codereview.chromium.org/6523052/diff/2001/src/arm/stub-cache-arm.cc#newcode2335 src/arm/stub-cache-arm.cc:2335: if (!function->IsBuiltin() && !function_info->strict_mode()) { It ...
9 years, 10 months ago (2011-02-16 13:34:29 UTC) #4
Martin Maly
Implemented KeyedCallIC, incorporated CR feedback (except for marking all builtins strict - will investigate this ...
9 years, 10 months ago (2011-02-17 05:25:55 UTC) #5
Mads Ager (chromium)
LGTM Are there no tests in the es5conform test suite that we start passing because ...
9 years, 10 months ago (2011-02-17 09:52:51 UTC) #6
Martin Maly
Apparently, no es5conform strict mode test exercise this. They all use Function.call and Function.apply as ...
9 years, 10 months ago (2011-02-17 17:01:03 UTC) #7
Mads Ager (chromium)
http://codereview.chromium.org/6523052/diff/12004/src/ic.cc File src/ic.cc (right): http://codereview.chromium.org/6523052/diff/12004/src/ic.cc#newcode815 src/ic.cc:815: ReceiverToObjectIfRequired(result, object); I should have caught this earlier: result ...
9 years, 10 months ago (2011-02-17 21:57:01 UTC) #8
Martin Maly
Thanks for the additional info, Mads. with this change I am a bit hazy on ...
9 years, 10 months ago (2011-02-18 00:55:38 UTC) #9
Mads Ager (chromium)
A couple of suggestions to make the code clearer. Once those are addressed we are ...
9 years, 10 months ago (2011-02-18 07:22:48 UTC) #10
Martin Maly
Fixed up. Thanks for the details on handles and handle scopes. I'll wait for an ...
9 years, 10 months ago (2011-02-19 01:26:13 UTC) #11
Mads Ager (chromium)
LGTM! http://codereview.chromium.org/6523052/diff/7018/src/ic.cc File src/ic.cc (right): http://codereview.chromium.org/6523052/diff/7018/src/ic.cc#newcode441 src/ic.cc:441: JSFunction* function = JSFunction::cast(*callee); Let's keep it all ...
9 years, 10 months ago (2011-02-21 07:45:11 UTC) #12
Martin Maly
9 years, 10 months ago (2011-02-22 00:40:35 UTC) #13
Done. Thanks!

http://codereview.chromium.org/6523052/diff/7018/src/ic.cc
File src/ic.cc (right):

http://codereview.chromium.org/6523052/diff/7018/src/ic.cc#newcode441
src/ic.cc:441: JSFunction* function = JSFunction::cast(*callee);
On 2011/02/21 07:45:11, Mads Ager wrote:
> Let's keep it all in handles here to not mix handlified and non-handlified
code
> when we can easily avoid it.
> 
> Handle<JSFuntion> function = Handle<JSFunction>::cast(callee);

Done.

Powered by Google App Engine
This is Rietveld 408576698