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

Issue 1541233002: Use ES2015-style TypedArray prototype chain (Closed)

Created:
5 years ago by Dan Ehrenberg
Modified:
4 years, 12 months ago
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Use ES2015-style TypedArray prototype chain This patch switches TypedArrays to use the prototype chain described in the ES2015 specification, which adds a %TypedArray% superclass above all individual TypedArray types. Most methods are defined on the superclass rather than the subclasses. In order to prevent a performance regression, a few methods are marked as inline. Inlining might prevent code which was previously monomorphic from becoming polymorphic, and it was specifically applied in places where methods became more polymorphic than before. Tests with realistic workloads would be nice to do before this ships in stable. This patch does not bring TypedArrays up to full spec compliance. In particular, @@species is not yet supported. R=cbruni BUG=v8:4085 LOG=Y Committed: https://crrev.com/07c91dccbe55c7be3ec75857dee5ad59873330b7 Cr-Commit-Position: refs/heads/master@{#33050}

Patch Set 1 #

Patch Set 2 : Fix Uint8Array reference #

Patch Set 3 : Fix more tests #

Patch Set 4 : Fix some things about the proto chain and add stricter constructor checks #

Total comments: 12

Patch Set 5 : Test of prototype property descriptor #

Unified diffs Side-by-side diffs Delta from patch set Stats (+257 lines, -198 lines) Patch
M src/js/array-iterator.js View 1 2 chunks +7 lines, -27 lines 0 comments Download
M src/js/typedarray.js View 1 2 3 3 chunks +103 lines, -70 lines 0 comments Download
M src/messages.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M test/mjsunit/es6/built-in-accessor-names.js View 1 chunk +7 lines, -19 lines 0 comments Download
M test/mjsunit/es6/classes-subclass-builtins.js View 1 2 3 3 chunks +50 lines, -13 lines 0 comments Download
M test/mjsunit/es6/typed-array-iterator.js View 1 chunk +16 lines, -17 lines 0 comments Download
M test/mjsunit/es6/typedarray.js View 2 chunks +3 lines, -7 lines 0 comments Download
M test/mjsunit/es6/typedarray-of.js View 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/es6/typedarray-proto.js View 1 2 3 4 3 chunks +41 lines, -13 lines 0 comments Download
M test/mjsunit/get-prototype-of.js View 1 2 2 chunks +9 lines, -9 lines 0 comments Download
M test/mjsunit/harmony/reflect-get-prototype-of.js View 1 2 2 chunks +9 lines, -9 lines 0 comments Download
M test/mjsunit/harmony/sharedarraybuffer.js View 1 2 2 chunks +4 lines, -7 lines 0 comments Download
M test/mjsunit/regress/regress-typedarray-length.js View 1 2 1 chunk +6 lines, -6 lines 0 comments Download

Messages

Total messages: 37 (14 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1541233002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1541233002/1
5 years ago (2015-12-22 20:46:11 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_mac_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/13514)
5 years ago (2015-12-22 20:48:16 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1541233002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1541233002/20001
5 years ago (2015-12-22 21:28:50 UTC) #6
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_nodcheck_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_nodcheck_rel/builds/10309)
5 years ago (2015-12-22 21:41:08 UTC) #8
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1541233002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1541233002/40001
5 years ago (2015-12-22 21:55:29 UTC) #10
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-22 22:13:31 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1541233002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1541233002/60001
5 years ago (2015-12-22 22:48:29 UTC) #14
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-22 23:11:03 UTC) #17
Dan Ehrenberg
5 years ago (2015-12-22 23:25:55 UTC) #18
caitp (gmail)
https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js File src/js/typedarray.js (right): https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js#newcode745 src/js/typedarray.js:745: if (new.target === TypedArray) { question: how is this ...
5 years ago (2015-12-22 23:47:46 UTC) #20
Dan Ehrenberg
https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js File src/js/typedarray.js (right): https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js#newcode745 src/js/typedarray.js:745: if (new.target === TypedArray) { On 2015/12/22 at 23:47:45, ...
5 years ago (2015-12-22 23:53:08 UTC) #21
caitp (gmail)
https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js File src/js/typedarray.js (right): https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js#newcode745 src/js/typedarray.js:745: if (new.target === TypedArray) { On 2015/12/22 23:53:08, Dan ...
5 years ago (2015-12-22 23:56:28 UTC) #22
caitp (gmail)
5 years ago (2015-12-22 23:56:29 UTC) #23
Dan Ehrenberg
On 2015/12/22 at 23:56:28, caitpotter88 wrote: > https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js > File src/js/typedarray.js (right): > > https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js#newcode745 ...
5 years ago (2015-12-23 00:02:04 UTC) #24
Camillo Bruni
I've got some nits here and there. I'm not sure about the SetForceInlineFlag since that's ...
5 years ago (2015-12-23 15:56:02 UTC) #25
Dan Ehrenberg
https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js File src/js/typedarray.js (right): https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js#newcode269 src/js/typedarray.js:269: TYPED_ARRAYS(TYPED_ARRAY_SUBARRAY_CASE) On 2015/12/23 at 15:56:02, cbruni wrote: > Now ...
5 years ago (2015-12-23 23:14:46 UTC) #26
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1541233002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1541233002/80001
5 years ago (2015-12-23 23:15:08 UTC) #28
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-23 23:37:12 UTC) #30
Camillo Bruni
lgtm in case the SetForceInlineFlag should pose any problems, we can easily revert it. https://codereview.chromium.org/1541233002/diff/60001/src/js/typedarray.js ...
4 years, 12 months ago (2015-12-28 08:54:46 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1541233002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1541233002/80001
4 years, 12 months ago (2015-12-28 16:43:32 UTC) #33
commit-bot: I haz the power
Committed patchset #5 (id:80001)
4 years, 12 months ago (2015-12-28 17:28:19 UTC) #34
commit-bot: I haz the power
Patchset 5 (id:??) landed as https://crrev.com/07c91dccbe55c7be3ec75857dee5ad59873330b7 Cr-Commit-Position: refs/heads/master@{#33050}
4 years, 12 months ago (2015-12-28 17:29:03 UTC) #36
Michael Achenbach
4 years, 11 months ago (2015-12-29 08:42:40 UTC) #37
Message was sent while issue was closed.
A revert of this CL (patchset #5 id:80001) has been created in
https://codereview.chromium.org/1554523002/ by machenbach@chromium.org.

The reason for reverting is: [Sheriff] Changes layout tests. Please fix upstream
first if intended.

https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/bui....

Powered by Google App Engine
This is Rietveld 408576698