jkummerow
4a246c1fff
[cleanup] Introduce PropertyFilter
...
Split out of PropertyAttributes, and used for all filtering purposes.
Also moved PropertyAttributes into the v8::internal:: namespace.
No change in behavior intended.
Review URL: https://codereview.chromium.org/1492653004
Cr-Commit-Position: refs/heads/master@{#32525}
2015-12-02 16:30:24 +00:00
cbruni
e7154a0b78
[runtime] Support Symbols in KeyAccumulator
...
BUG=
Review URL: https://codereview.chromium.org/1425403002
Cr-Commit-Position: refs/heads/master@{#31788}
2015-11-04 14:05:36 +00:00
cbruni
df8970a8c7
[runtime] Fancify KeyAccumulator
...
Separately collect element keys from property keys to avoid slow
corner-cases. Partly deal with keys generated by Proxies.
BUG=chromium:536790
LOG=N
Review URL: https://codereview.chromium.org/1397063002
Cr-Commit-Position: refs/heads/master@{#31378}
2015-10-19 13:47:43 +00:00
jkummerow
b4b69fd9c0
Teach JSReceiver::GetKeys() how to include symbols
...
No users of that functionality yet, those will come separately.
Review URL: https://codereview.chromium.org/1375003002
Cr-Commit-Position: refs/heads/master@{#31024}
2015-09-30 15:00:32 +00:00
mstarzinger
6a769ac1df
[presubmit] Enable readability/namespace linter checking.
...
This enables linter checking for "readability/namespace" violations
during presubmit and instead marks the few known exceptions that we
allow explicitly.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/1371083003
Cr-Commit-Position: refs/heads/master@{#31019}
2015-09-30 13:47:11 +00:00
cbruni
007eac94a1
Improve JSReceiver::GetKeys Speed
...
The core bottleneck lies in N-square cost of array union. Depending on the size
of the arrays involved it makes sense to rely on a hash-set/table for the lookup.
LOG=N
BUG=v8:2904
Review URL: https://codereview.chromium.org/1316213008
Cr-Commit-Position: refs/heads/master@{#30797}
2015-09-17 12:52:51 +00:00
cbruni
cbdb13533e
Adding ElementsAccessor::Concat
...
- Moving parts of ArrayConcat from builtins.cc to the ElementsAccessor
- Removing ArrayConcat Runtime Function
BUG=v8:4317
LOG=N
Review URL: https://codereview.chromium.org/1330483003
Cr-Commit-Position: refs/heads/master@{#30619}
2015-09-07 13:45:02 +00:00
cbruni
a369ab1838
Adding ElementsAccessor::Shift
...
- Use the new ElementsAccessor methods
- improve test coverage
BUG=
Review URL: https://codereview.chromium.org/1317053006
Cr-Commit-Position: refs/heads/master@{#30546}
2015-09-02 15:29:40 +00:00
cbruni
fb44484ffd
ElementsAccessor Array Builtins Cleanup
...
Repeat the same signatures for future refactoring
BUG=
Review URL: https://codereview.chromium.org/1302413006
Cr-Commit-Position: refs/heads/master@{#30532}
2015-09-02 06:42:09 +00:00
cbruni
ec2518eedb
Adding ElementsAccessor::Unshift
...
Move BackingStore specific implementation from builtins.cc tp ElementsAccessor
BUG=
Review URL: https://codereview.chromium.org/1322803002
Cr-Commit-Position: refs/heads/master@{#30526}
2015-09-01 21:19:53 +00:00
cbruni
ca8134c834
Adding ElementsAccessor::Pop
...
Moving FastElements path to ElementsAccessor.
BUG=
Review URL: https://codereview.chromium.org/1325483002
Cr-Commit-Position: refs/heads/master@{#30477}
2015-08-31 15:18:08 +00:00
cbruni
f68dcc924b
Adding ElementsAccessor::Slice
...
- Move fast paths from builtins.cc ArraySlice to ElementsAccessor
- Handle more argument types in the fast path
BUG=
Review URL: https://codereview.chromium.org/1321773002
Cr-Commit-Position: refs/heads/master@{#30471}
2015-08-31 12:19:28 +00:00
cbruni
8198610d5d
Adding ElementsAccessor Splice
...
- remove the Backing-Store specific code from builtins.cc and put it in elements.cc.
- adding tests to improve coverage of the splice method
BUG=
Review URL: https://codereview.chromium.org/1312033003
Cr-Commit-Position: refs/heads/master@{#30410}
2015-08-27 13:06:05 +00:00
hablich
cfdcc874a9
Revert of Moving ArraySplice Builtin to ElementsAccessor (patchset #8 id:140001 of https://codereview.chromium.org/1293683005/ )
...
Reason for revert:
Fails layout tests: http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2032/builds/1450
Original issue's description:
> - remove the Backing-Store specific code from builtins.cc and put it in elements.cc.
> - adding tests to improve coverage of the splice method
>
> BUG=
>
> Committed: https://crrev.com/8533d4b5433d3a9e9fb1015f206997bd6d869fe3
> Cr-Commit-Position: refs/heads/master@{#30269}
>
> Committed: https://crrev.com/07a4a6cb8e2ab940b28a7151a925c796da023524
> Cr-Commit-Position: refs/heads/master@{#30326}
TBR=mvstanton@chromium.org ,cbruni@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1315823004
Cr-Commit-Position: refs/heads/master@{#30351}
2015-08-25 11:18:39 +00:00
cbruni
12ad2554fb
Revert of Array.prototype.unshift builtin improvements (patchset #3 id:40001 of https://codereview.chromium.org/1311343002/ )
...
Reason for revert:
https://codereview.chromium.org/1315823004/
Original issue's description:
> Array.prototype.unshift builtin improvements
>
> Moving unshift to ElementAccessor and increasing the range of arguments
> handled directly in C++, namely directly supporting FastDoubleElementsKind.
> This should yield a factor 19 speedup for unshift on fast double arrays.
>
> BUG=
>
> Committed: https://crrev.com/bf6764e6c1197e50ae148755488307a423b1d9b4
> Cr-Commit-Position: refs/heads/master@{#30347}
TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1311363003
Cr-Commit-Position: refs/heads/master@{#30350}
2015-08-25 11:11:30 +00:00
cbruni
bf6764e6c1
Array.prototype.unshift builtin improvements
...
Moving unshift to ElementAccessor and increasing the range of arguments
handled directly in C++, namely directly supporting FastDoubleElementsKind.
This should yield a factor 19 speedup for unshift on fast double arrays.
BUG=
Review URL: https://codereview.chromium.org/1311343002
Cr-Commit-Position: refs/heads/master@{#30347}
2015-08-25 09:45:38 +00:00
cbruni
07a4a6cb8e
- remove the Backing-Store specific code from builtins.cc and put it in elements.cc.
...
- adding tests to improve coverage of the splice method
BUG=
Committed: https://crrev.com/8533d4b5433d3a9e9fb1015f206997bd6d869fe3
Cr-Commit-Position: refs/heads/master@{#30269}
Review URL: https://codereview.chromium.org/1293683005
Cr-Commit-Position: refs/heads/master@{#30326}
2015-08-24 10:55:13 +00:00
cbruni
6d67f7db37
Revert of Moving ArraySplice Builtin to ElementsAccessor (patchset #6 id:100001 of https://codereview.chromium.org/1293683005/ )
...
Reason for revert:
failing bot http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/3827
Original issue's description:
> - remove the Backing-Store speficic code from builtins.cc and put it in elements.cc.
> - adding tests to improve coverage of the splice method
>
> BUG=
>
> Committed: https://crrev.com/8533d4b5433d3a9e9fb1015f206997bd6d869fe3
> Cr-Commit-Position: refs/heads/master@{#30269}
TBR=mvstanton@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1305763002
Cr-Commit-Position: refs/heads/master@{#30271}
2015-08-20 13:51:15 +00:00
cbruni
8533d4b543
- remove the Backing-Store speficic code from builtins.cc and put it in elements.cc.
...
- adding tests to improve coverage of the splice method
BUG=
Review URL: https://codereview.chromium.org/1293683005
Cr-Commit-Position: refs/heads/master@{#30269}
2015-08-20 12:55:05 +00:00
cbruni
ffb3a92759
Array Builtin Refactoring: Creating API methods on ElementsAccessor
...
BUG=
Review URL: https://codereview.chromium.org/1260283002
Cr-Commit-Position: refs/heads/master@{#29958}
2015-07-31 16:10:51 +00:00
verwaest
7b5eab583f
Use entry rather than index in ElementsAccessor::Get
...
BUG=v8:4137, v8:4177
LOG=n
Review URL: https://codereview.chromium.org/1230213002
Cr-Commit-Position: refs/heads/master@{#29574}
2015-07-10 14:13:45 +00:00
verwaest
f87af94a46
Use entry rather than index in ElementsAccessor::Set
...
BUG=v8:4137,v8:4177
LOG=n
Review URL: https://codereview.chromium.org/1232463005
Cr-Commit-Position: refs/heads/master@{#29571}
2015-07-10 12:56:41 +00:00
verwaest
ca7feba733
Index -> Entry and Key -> Index in elements.[cc|h]
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1224643004
Cr-Commit-Position: refs/heads/master@{#29514}
2015-07-07 11:53:04 +00:00
verwaest
dba715ec6a
Cleanup Delete backend implementation.
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1218813012
Cr-Commit-Position: refs/heads/master@{#29477}
2015-07-06 08:53:51 +00:00
verwaest
e7d64b3f60
Remove obsolete GetAccessorPair from ElementsAccessor
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1224533003
Cr-Commit-Position: refs/heads/master@{#29467}
2015-07-03 12:39:01 +00:00
verwaest
c8211b64cd
Distinguish slow from fast sloppy arguments
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1221713003
Cr-Commit-Position: refs/heads/master@{#29447}
2015-07-02 14:38:53 +00:00
verwaest
4eed4970fd
Move Add to the elements accessor for everything but dictionary-arguments
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1205913002
Cr-Commit-Position: refs/heads/master@{#29295}
2015-06-25 14:17:19 +00:00
verwaest
f461c7a67a
Move reconfiguration into the elements accessor
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1207613005
Cr-Commit-Position: refs/heads/master@{#29289}
2015-06-25 11:26:06 +00:00
verwaest
359142c330
Merge AddFastElement and AddFastDoubleElement
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1198343004
Cr-Commit-Position: refs/heads/master@{#29227}
2015-06-23 11:35:57 +00:00
verwaest
046e91dd1a
Move SetFastElementsCapacity into GrowCapacityAndConvert
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1197133003
Cr-Commit-Position: refs/heads/master@{#29222}
2015-06-23 09:44:28 +00:00
verwaest
6c7449a636
Move SetFastDoubleElementsCapacity into GrowCapacityAndConvert
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1193343002
Cr-Commit-Position: refs/heads/master@{#29182}
2015-06-22 11:24:19 +00:00
verwaest
57a3810280
Get rid of JSArray::Expand and friends
...
BUG=
Review URL: https://codereview.chromium.org/1194943004
Cr-Commit-Position: refs/heads/master@{#29180}
2015-06-22 10:44:24 +00:00
verwaest
8076d6ee2d
More cleanup related to setting array.length
...
BUG=
Review URL: https://codereview.chromium.org/1191313003
Cr-Commit-Position: refs/heads/master@{#29152}
2015-06-19 14:57:11 +00:00
verwaest
0f1522f4c2
Remove handles from ElementsAccessor::Set and friends
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1196543003
Cr-Commit-Position: refs/heads/master@{#29139}
2015-06-19 09:25:22 +00:00
verwaest
691de97b3f
Cleanup typed array setters, the property is guaranteed to be there.
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1180753005
Cr-Commit-Position: refs/heads/master@{#29129}
2015-06-18 19:49:39 +00:00
verwaest
72d6ed749b
Return void from array setters since the return value needs to be ignored
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1188073003
Cr-Commit-Position: refs/heads/master@{#29113}
2015-06-18 12:52:00 +00:00
verwaest
360e020408
Revert of Revert of Remove GetAttributes from the mix to avoid another virtual dispatch. (patchset #1 id:1 of https://codereview.chromium.org/1179933002/ )
...
Reason for revert:
Reland, this didn't break anything.
Original issue's description:
> Revert of Remove GetAttributes from the mix to avoid another virtual dispatch. (patchset #2 id:40001 of https://codereview.chromium.org/1175973002/ )
>
> Reason for revert:
> It broke webkit_unit_tests
>
> Original issue's description:
> > Remove GetAttributes from the mix to avoid another virtual dispatch.
> >
> > BUG=chromium:495949,v8:4137
> > LOG=n
> >
> > Committed: https://crrev.com/2269b8b5a696bf4eef13590093151bff624d4175
> > Cr-Commit-Position: refs/heads/master@{#28953}
>
> TBR=verwaest@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:495949,v8:4137
>
> Committed: https://crrev.com/ae639d2ad646237e2f413259a0f116845ef96440
> Cr-Commit-Position: refs/heads/master@{#28958}
TBR=ishell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:495949,v8:4137
Review URL: https://codereview.chromium.org/1182603002
Cr-Commit-Position: refs/heads/master@{#28966}
2015-06-11 20:17:36 +00:00
ishell
ae639d2ad6
Revert of Remove GetAttributes from the mix to avoid another virtual dispatch. (patchset #2 id:40001 of https://codereview.chromium.org/1175973002/ )
...
Reason for revert:
It broke webkit_unit_tests
Original issue's description:
> Remove GetAttributes from the mix to avoid another virtual dispatch.
>
> BUG=chromium:495949,v8:4137
> LOG=n
>
> Committed: https://crrev.com/2269b8b5a696bf4eef13590093151bff624d4175
> Cr-Commit-Position: refs/heads/master@{#28953}
TBR=verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:495949,v8:4137
Review URL: https://codereview.chromium.org/1179933002
Cr-Commit-Position: refs/heads/master@{#28958}
2015-06-11 17:25:34 +00:00
verwaest
2269b8b5a6
Remove GetAttributes from the mix to avoid another virtual dispatch.
...
BUG=chromium:495949,v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1175973002
Cr-Commit-Position: refs/heads/master@{#28953}
2015-06-11 16:07:28 +00:00
verwaest
52f44a8353
Use the LookupIterator for SetElement and friends
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1172683003
Cr-Commit-Position: refs/heads/master@{#28946}
2015-06-11 15:07:16 +00:00
verwaest
bda7fb2246
Handle Delete of element with LookupIterator
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1157093003
Cr-Commit-Position: refs/heads/master@{#28762}
2015-06-02 11:52:41 +00:00
verwaest
2fb894fa58
Use GetProperty for getting elements.
...
This also fixes issues with
- kMaxUint32 being a valid length but not index cornercases
- exotic integer objects masking "exotic indexes" even though its in the prototype chain
- concating of holey sloppy arguments
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1159433003
Cr-Commit-Position: refs/heads/master@{#28754}
2015-06-02 10:42:29 +00:00
verwaest
16484824b6
Start adding support for elements to the LookupIterator
...
BUG=
Review URL: https://codereview.chromium.org/1144883002
Cr-Commit-Position: refs/heads/master@{#28546}
2015-05-21 12:19:23 +00:00
verwaest
de23dd2809
Fix for-in for large indexes and indexes on proxies
...
BUG=v8:4130
LOG=n
Review URL: https://codereview.chromium.org/1148863002
Cr-Commit-Position: refs/heads/master@{#28526}
2015-05-20 17:03:03 +00:00
jochen
3383f6280e
Reland "Remove the weak list of views from array buffers"
...
Original description:
> Instead, views have to check their array buffer for whether
> it's neutered or not.
>
> BUG=v8:3996
> R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> LOG=n
BUG=v8:3996
R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1107843002
Cr-Commit-Position: refs/heads/master@{#28060}
2015-04-27 09:27:53 +00:00
jochen
41098dbb07
Revert of Reland "Remove the weak list of views from array buffers" (patchset #2 id:20001 of https://codereview.chromium.org/1093183004/ )
...
Reason for revert:
still working on perf
Original issue's description:
> Reland "Remove the weak list of views from array buffers"
>
> Original description:
> > Instead, views have to check their array buffer for whether
> > it's neutered or not.
> >
> > BUG=v8:3996
> > R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> > LOG=n
>
> BUG=v8:3996
> R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> LOG=n
>
> Committed: https://crrev.com/655b04637e9da2749f53c866bca8f5f6abb05a3f
> Cr-Commit-Position: refs/heads/master@{#28029}
TBR=dslomov@chromium.org ,hpayer@chromium.org,verwaest@chromium.org,dcarney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3996
Review URL: https://codereview.chromium.org/1053203007
Cr-Commit-Position: refs/heads/master@{#28038}
2015-04-24 06:46:23 +00:00
jochen
655b04637e
Reland "Remove the weak list of views from array buffers"
...
Original description:
> Instead, views have to check their array buffer for whether
> it's neutered or not.
>
> BUG=v8:3996
> R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> LOG=n
BUG=v8:3996
R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1093183004
Cr-Commit-Position: refs/heads/master@{#28029}
2015-04-23 13:02:36 +00:00
jochen
47f2dfa9bd
Revert of Remove the weak list of views from array buffers (patchset #6 id:100001 of https://codereview.chromium.org/1094863002/ )
...
Reason for revert:
I'm reverting this while working on the regression fix
Original issue's description:
> Remove the weak list of views from array buffers
>
> Instead, views have to check their array buffer for whether
> it's neutered or not.
>
> BUG=v8:3996
> R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> LOG=n
>
> Committed: https://crrev.com/5ae083a05a6743d6cb91585f449539f7846a5d8c
> Cr-Commit-Position: refs/heads/master@{#27995}
TBR=dslomov@chromium.org ,hpayer@chromium.org,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3996
Review URL: https://codereview.chromium.org/1061753008
Cr-Commit-Position: refs/heads/master@{#28014}
2015-04-22 15:03:12 +00:00
jochen
5ae083a05a
Remove the weak list of views from array buffers
...
Instead, views have to check their array buffer for whether
it's neutered or not.
BUG=v8:3996
R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1094863002
Cr-Commit-Position: refs/heads/master@{#27995}
2015-04-22 09:19:19 +00:00
verwaest
cca6ffff7e
Revert of Remove handle wrappers from basic elements accessors (patchset #2 id:20001 of https://codereview.chromium.org/934173004/ )
...
Reason for revert:
Breakage
Original issue's description:
> Remove handle wrappers from basic elements accessors
>
> BUG=
> R=yangguo@chromium.org
>
> Committed: https://crrev.com/40b7c513c696f405af0ae3e74e844d3c341bc3f2
> Cr-Commit-Position: refs/heads/master@{#26736}
TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/932693003
Cr-Commit-Position: refs/heads/master@{#26737}
2015-02-19 09:05:04 +00:00