yangguo
1667c15e37
Debugger: move implementation to a separate folder.
...
R=cbruni@chromium.org
Review URL: https://codereview.chromium.org/1265923002
Cr-Commit-Position: refs/heads/master@{#29951}
2015-07-31 11:08:15 +00:00
hpayer
59be4ba7f4
Reland "Merge old data and pointer space."
...
This reverts commit cbfcee5575
.
BUG=
Review URL: https://codereview.chromium.org/1051233002
Cr-Commit-Position: refs/heads/master@{#27623}
2015-04-07 11:32:10 +00:00
adamk
909500aa1d
Reimplement Maps and Sets in JS
...
Previously, the only optimized code path for Maps and Sets was for String keys.
This was achieved through an implementation of various complex operations
in Hydrogen. This approach was neither scalable nor forward-compatible.
This patch adds the necessary intrinsics to implement Maps and Sets almost entirely
in JS. The added intrinsics are:
%_FixedArrayGet
%_FixedArraySet
%_TheHole
%_JSCollectionGetTable
%_StringGetRawHashField
With these additions, as well as a few changes to what's exposed as runtime functions,
most of the C++ code backing Maps and Sets is gone (including both runtime code in
objects.cc and Crankshaft in hydrogen.cc).
Review URL: https://codereview.chromium.org/947683002
Cr-Commit-Position: refs/heads/master@{#27605}
2015-04-07 00:12:04 +00:00
hpayer
cbfcee5575
Revert "Merge old data and pointer space."
...
TBR=verwaest@chromium.org ,ulan@chromium.org,ishell@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/1027463002
Cr-Commit-Position: refs/heads/master@{#27323}
2015-03-19 22:03:32 +00:00
hpayer
257ff48931
Merge old data and pointer space.
...
BUG=
Review URL: https://codereview.chromium.org/1012023002
Cr-Commit-Position: refs/heads/master@{#27259}
2015-03-18 09:39:03 +00:00
yangguo@chromium.org
2229575b26
Pacify GCmole.
...
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/490423003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 11:09:13 +00:00
mstarzinger@chromium.org
fec6e62dfb
Check alpha-sorting of includes during presubmit.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/333013002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 08:40:11 +00:00
jochen@chromium.org
56a486c322
Use full include paths everywhere
...
- this avoids using relative include paths which are forbidden by the style guide
- makes the code more readable since it's clear which header is meant
- allows for starting to use checkdeps
BUG=none
R=jkummerow@chromium.org , danno@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304153016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:12:43 +00:00
adamk@chromium.org
2e2eb6a07e
Split Put into Put and Remove
...
No longer treat the hole as a removal. This removes one branch in
Put and cleans up the API.
BUG=None
LOG=Y
R=adamk@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/309663005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 00:53:16 +00:00
adamk@chromium.org
ccf8b20443
Fix OrderedHashSet::Remove caller in debug-only code after r21408
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/294473011
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 12:31:31 +00:00
ishell@chromium.org
9ca2fc30a9
OrderedHashTable::FindEntry() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/260313003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 14:16:38 +00:00
ishell@chromium.org
c3d349f028
OrderedHashMap::Lookup() and ObjectHashTable::Lookup() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/256743008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 14:09:14 +00:00
ishell@chromium.org
3ce912038e
ObjectHashTable's key and WeakHashTable's key types are now Handle<Object> instead of Object*.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/257853003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 13:35:03 +00:00
ishell@chromium.org
fd02e1220c
HashTable::New() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/257633002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 13:06:21 +00:00
adamk@chromium.org
902ad4a17a
Use OrderedHashTables as the backing store of JSSet and JSMap
...
This also deletes ObjectHashSet as it's no longer used.
BUG=v8:1793
LOG=N
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/225183009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 20:06:35 +00:00
adamk@chromium.org
8e9eebeba1
OrderedHashTable implementation with Set and Map interfaces
...
OrderedHashTable is an insertion-ordered HashTable based on
Jason Orendorff's writeup of a data structure attributed to Tyler Close:
https://wiki.mozilla.org/User:Jorend/Deterministic_hash_tables
It is intended as the new backing store for JSSet/JSMap, as ES6 requires
insertion-order-based iteration. Note, however, that in the interest of
keeping the initial check-in small this patch does not yet include any
iteration support.
This change also doesn't yet touch any existing behavior, but in
a branch I've verified that these structures pass the existing
JSSet/JSMap mjsunit tests.
BUG=v8:1793
LOG=N
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/220293002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-04 20:41:57 +00:00
rafaelw@chromium.org
ada13dfc3f
Remove calls to JSObject::SetLocalPropertyIgnoreAttributesTrampoline within objects.cc
...
This includes handlifing:
-SetHiddenPropertiesHashTable
-ObjectHashSet::Add/Remove
-ObjectHashTable::Put
And splitting the following methods which previously took "allow creation" enum arguments to into side-effect-free getters and GetOrCreate*-handlfied getters.
-GetHash (now GetHash & handlified GetOrCreateHash)
-GetIdentityHash (now GetIdentityHash & handlified GetOrCreateIdentityHash)
-GetHiddenPropertiesHashTable (now GetHiddenPropertiesHashTable & handlified GetOrCreateaHiddenPropertiesHashTable)
BUG=v8:2877
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/48913008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:47:11 +00:00
dcarney@chromium.org
c57236e288
remove HEAP from tests
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/24169005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 09:46:15 +00:00
dcarney@chromium.org
baf6add9f0
bulk replace Isolate::Current in tests
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23534067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 09:17:13 +00:00
ulan@chromium.org
0e8e003077
Implement in-place rehashing of HashTable.
...
The algorithm puts elements into correct positions in multiple iterations.
On the first iteration it tries to put elements at entries specified by
their first hash probe. On the second iteration -- by the second
hash probe, and so on. Overall it does O(k*n) memory accesses, where
k is the maximum number of probes required for an element and n is the
capacity of the hash table. The expectation is that k will be small.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23658031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 11:03:27 +00:00
mstarzinger@chromium.org
756a99bdba
Handlify JSObject::SetIdentityHash method.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23495011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 13:42:16 +00:00
hpayer@chromium.org
8f8461aff5
Disable stress_compaction flag in several GC tests to meet test
...
expectations.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17262002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 08:58:09 +00:00
mstarzinger@chromium.org
f8db2414f2
Deprecate FACTORY helper macro.
...
This removes the FACTORY helper macro to avoid accidental TLS access
when using the factory. Most internal code has access to the Isolate by
now whereas tests which are not performance critical still heavily use
TLS access through explicit Isolate::Current() calls.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/16337005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-04 10:30:05 +00:00
svenpanne@chromium.org
53310ac152
Added a version of the v8::HandleScope constructor with an Isolate and use that consistently.
...
I tried to limit the use of v8::Isolate::GetCurrent() and v8::internal::Isolate::Current() as much as possible, but sometimes this would have involved restructuring tests quite a bit, which is better left for a separate CL.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12716010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:06:53 +00:00
mstarzinger@chromium.org
f5cff7d91c
Make test-dictionary work for GC stress builder.
...
R=yangguo@chromium.org
TEST=cctest/test-dictionary
Review URL: https://codereview.chromium.org/11299098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-20 10:47:31 +00:00
yangguo@chromium.org
514fc74a47
Limit initial size of hidden properties and store identity hashes inline.
...
BUG=v8:2211
TEST=test-heap/Regress2211
Review URL: https://chromiumcodereview.appspot.com/10827040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 13:09:09 +00:00
mstarzinger@chromium.org
51afb2ad8b
Fix failing test after r11924.
...
R=verwaest@chromium.org
BUG=chromium:132744
TEST=cctest/test-dictionary/ObjectHashTableCausesGC
Review URL: https://chromiumcodereview.appspot.com/10658016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 13:57:52 +00:00
mstarzinger@chromium.org
362381c68d
Fix Harmony Maps and WeakMaps for undefined values.
...
R=rossberg@chromium.org
BUG=chromium:132744
TEST=mjsunit/harmony/collections
Review URL: https://chromiumcodereview.appspot.com/10658014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 13:33:48 +00:00
mstarzinger@chromium.org
d0ce626477
Fix identity hash code function to respect flag.
...
The flag passed to JSObject::GetIdentityHash() was not respected so far
and an indentity hash code was generated even when the flag requested
not to do so. This could lead to a rare corner cases (for which a test
case was added) where a GC request would have been dropped.
R=rossberg@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/8390047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 12:23:40 +00:00
mstarzinger@chromium.org
eef3e8739e
Reintroduced dictionary that can use objects as keys.
...
R=vitalyr@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/7385006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-28 17:21:22 +00:00
whesse@chromium.org
b2e8d72bf5
Revert r8619 because of Webkit failures.
...
Review URL: http://codereview.chromium.org/7351014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 11:13:40 +00:00
yangguo@chromium.org
c0044bb7e2
Added dictionary that can use objects as keys.
...
R=vegorov@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/7349005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-12 15:13:57 +00:00