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

Issue 1316933002: [es6] Initial steps towards a correct implementation of IsCallable. (Closed)

Created:
5 years, 3 months ago by Benedikt Meurer
Modified:
5 years, 3 months ago
CC:
v8-dev, Paul Lind, v8-mips-ports_googlegroups.com, adamk, Michael Achenbach
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[es6] Initial steps towards a correct implementation of IsCallable. This turns the has_instance_call_handler bit on Map into an is_callable bit, that matches the spec definition of IsCallable (i.e. instances have [[Call]] internal methods). Also fix the typeof operator to properly say "function" for everything that is callable. Also remove the (unused) premature %_GetPrototype optimization from Crankshaft, which just complicated the Map bit swap. R=mstarzinger@chromium.org, rossberg@chromium.org, yangguo@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg Committed: https://crrev.com/8a378f46d52ce64578c71313ed76a67592fbf63c Cr-Commit-Position: refs/heads/master@{#30552}

Patch Set 1 #

Total comments: 6

Patch Set 2 : REBASE #

Patch Set 3 : Address Andreas comments #

Patch Set 4 : ia32, arm and arm64 ports. Misc cleanups. #

Total comments: 6

Patch Set 5 : REBASE. MIPS/MIPS64 port by akos.palfi. #

Patch Set 6 : REBASE #

Patch Set 7 : Rebase again. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+406 lines, -505 lines) Patch
M src/api.cc View 1 2 3 4 5 6 2 chunks +10 lines, -18 lines 0 comments Download
M src/api-natives.cc View 1 2 3 4 5 6 1 chunk +2 lines, -2 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 1 chunk +12 lines, -14 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 1 2 3 4 1 chunk +0 lines, -9 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 1 chunk +0 lines, -15 lines 0 comments Download
M src/arm64/lithium-codegen-arm64.cc View 1 2 3 4 5 2 chunks +12 lines, -11 lines 0 comments Download
M src/array.js View 1 2 3 4 5 9 chunks +9 lines, -9 lines 0 comments Download
M src/bootstrapper.cc View 1 2 3 4 5 6 5 chunks +12 lines, -5 lines 0 comments Download
M src/builtins.cc View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M src/code-stubs-hydrogen.cc View 2 chunks +12 lines, -8 lines 0 comments Download
M src/collection.js View 1 2 3 4 5 4 chunks +4 lines, -4 lines 0 comments Download
M src/execution.h View 1 2 3 4 5 1 chunk +9 lines, -11 lines 0 comments Download
M src/execution.cc View 1 2 3 4 5 6 3 chunks +72 lines, -88 lines 0 comments Download
M src/factory.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M src/factory.cc View 1 2 3 4 5 6 3 chunks +3 lines, -1 line 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 1 2 3 4 5 6 1 chunk +9 lines, -10 lines 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 1 2 3 4 5 6 1 chunk +11 lines, -15 lines 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 1 chunk +11 lines, -11 lines 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 1 2 3 4 5 6 1 chunk +11 lines, -11 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 1 2 3 4 5 6 1 chunk +11 lines, -11 lines 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 1 2 3 4 5 6 1 chunk +10 lines, -9 lines 0 comments Download
M src/harmony-array.js View 1 2 3 4 5 3 chunks +3 lines, -3 lines 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 1 chunk +0 lines, -1 line 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 1 chunk +0 lines, -47 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 5 6 2 chunks +3 lines, -1 line 0 comments Download
M src/hydrogen-instructions.cc View 1 2 3 4 5 6 4 chunks +16 lines, -13 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 4 5 1 chunk +9 lines, -9 lines 0 comments Download
M src/json.js View 1 2 3 4 5 2 chunks +3 lines, -3 lines 0 comments Download
M src/macros.py View 1 2 3 4 5 1 chunk +1 line, -4 lines 0 comments Download
M src/mips/lithium-codegen-mips.cc View 1 2 3 4 5 1 chunk +13 lines, -15 lines 0 comments Download
M src/mips64/lithium-codegen-mips64.cc View 1 2 3 4 5 1 chunk +13 lines, -15 lines 0 comments Download
M src/object-observe.js View 6 chunks +8 lines, -8 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 9 chunks +16 lines, -7 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 2 chunks +19 lines, -10 lines 0 comments Download
M src/objects-debug.cc View 1 2 3 4 3 chunks +3 lines, -0 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 4 chunks +13 lines, -9 lines 0 comments Download
M src/objects-printer.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/promise.js View 1 2 3 4 5 3 chunks +4 lines, -6 lines 0 comments Download
M src/proxy.js View 1 chunk +2 lines, -2 lines 0 comments Download
M src/runtime.js View 1 2 3 4 5 6 9 chunks +14 lines, -23 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M src/runtime/runtime-classes.cc View 1 2 3 4 5 6 3 chunks +2 lines, -3 lines 0 comments Download
M src/runtime/runtime-function.cc View 1 2 3 4 5 6 4 chunks +12 lines, -6 lines 0 comments Download
M src/runtime/runtime-internal.cc View 1 2 3 4 5 6 2 chunks +0 lines, -26 lines 0 comments Download
M src/runtime/runtime-proxy.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/string.js View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M src/v8natives.js View 1 2 3 4 5 8 chunks +8 lines, -8 lines 0 comments Download
M src/weak-collection.js View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 5 1 chunk +12 lines, -11 lines 0 comments Download
M test/cctest/test-api.cc View 1 2 3 4 5 6 2 chunks +4 lines, -4 lines 0 comments Download

Messages

Total messages: 18 (4 generated)
Benedikt Meurer
5 years, 3 months ago (2015-08-26 12:26:29 UTC) #1
Benedikt Meurer
Hey Michi, Yang, Andreas, Please review the x64 port. I'll do the ports afterwards. Thanks, ...
5 years, 3 months ago (2015-08-26 12:27:20 UTC) #2
rossberg
Looks mostly good to me, I just wonder how confident we can be that using ...
5 years, 3 months ago (2015-08-26 12:55:48 UTC) #3
Benedikt Meurer
I'm checking the IS_CALLABLE replacements now. Most of them seem to be perfectly fine. But ...
5 years, 3 months ago (2015-08-27 05:18:24 UTC) #4
Benedikt Meurer
MIPS people: Please add MIPS/MIPS64 ports of the optimization for typeof in fullcodegen and crankshaft.
5 years, 3 months ago (2015-08-27 07:21:18 UTC) #5
Yang
LGTM. I haven't checked for spec-compliance. Please also run layout tests. https://codereview.chromium.org/1316933002/diff/80001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): ...
5 years, 3 months ago (2015-08-27 08:39:18 UTC) #7
Benedikt Meurer
https://codereview.chromium.org/1316933002/diff/80001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/1316933002/diff/80001/src/hydrogen-instructions.cc#newcode2740 src/hydrogen-instructions.cc:2740: bit_field_ = IsCallableField::update(bit_field_, map->is_callable()); Yep in TypeOfString in the ...
5 years, 3 months ago (2015-08-27 08:39:54 UTC) #8
Michael Starzinger
LGTM if all the changes to the .js file are working as intended from a ...
5 years, 3 months ago (2015-08-27 10:47:14 UTC) #9
akos.palfi.imgtec
On 2015/08/27 07:21:18, Benedikt Meurer wrote: > MIPS people: Please add MIPS/MIPS64 ports of the ...
5 years, 3 months ago (2015-08-27 20:45:06 UTC) #10
Benedikt Meurer
It looks like the layout test failure on fast/dom/plugin-attributes-enumeration.html was indeed a bug in V8 ...
5 years, 3 months ago (2015-09-01 09:42:47 UTC) #11
adamk
Given that the new behavior matches FF, this lgtm. For posterity, here's why those results ...
5 years, 3 months ago (2015-09-01 19:20:52 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1316933002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1316933002/140001
5 years, 3 months ago (2015-09-03 05:20:17 UTC) #16
commit-bot: I haz the power
Committed patchset #7 (id:140001)
5 years, 3 months ago (2015-09-03 06:01:23 UTC) #17
commit-bot: I haz the power
5 years, 3 months ago (2015-09-03 06:01:44 UTC) #18
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/8a378f46d52ce64578c71313ed76a67592fbf63c
Cr-Commit-Position: refs/heads/master@{#30552}

Powered by Google App Engine
This is Rietveld 408576698