caitpotter88
93cd816c07
Make TemplateLiteral hashing algorithm more memory efficient
...
Previously, a separate string to be hashed (in order to help determine the need to
use a cached Template Call Site) was built up by joining UTF8 spans within a template.
Now, the hash key is generated from the original spans, removing the need to allocate a new
buffer and copy bytes into it.
BUG=
Review URL: https://codereview.chromium.org/765473006
Cr-Commit-Position: refs/heads/master@{#25549}
2014-11-27 15:48:01 +00:00
dcarney
50ef0690b2
Add interceptor support for symbols
...
a revival of https://codereview.chromium.org/467013003
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/760883002
Cr-Commit-Position: refs/heads/master@{#25537}
2014-11-27 10:21:39 +00:00
ishell
916d56d09e
Fast-to-slow migration should wipe out in-object space if it exists in the object after migration.
...
BUG=chromium:436816
LOG=N
Review URL: https://codereview.chromium.org/765473004
Cr-Commit-Position: refs/heads/master@{#25535}
2014-11-27 10:10:55 +00:00
yangguo
4590e4f4d6
Ensure double alignment when deserializing.
...
R=rmcilroy@chromium.org
BUG=chromium:436510
LOG=N
TEST=compile with V8_OOL_CONSTANT_POOL=1, run d8 with --verify-heap --test
Review URL: https://codereview.chromium.org/759823006
Cr-Commit-Position: refs/heads/master@{#25534}
2014-11-27 09:22:28 +00:00
dcarney
4695abcafa
Don't use ConsStringIterator to compute string hashes
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/762773002
Cr-Commit-Position: refs/heads/master@{#25518}
2014-11-26 11:53:34 +00:00
yangguo
39d0b85430
Force inline Stirng::GetCharVector<>.
...
R=mvstanton@chromium.org
BUG=chromium:436447
Review URL: https://codereview.chromium.org/756983003
Cr-Commit-Position: refs/heads/master@{#25504}
2014-11-25 15:30:03 +00:00
yangguo
33853f73a7
Partially revert "Optimize function across closures."
...
BUG=chromium:434447
Review URL: https://codereview.chromium.org/755173002
Cr-Commit-Position: refs/heads/master@{#25500}
2014-11-25 13:22:04 +00:00
ishell
1f5f088969
Reland of "Enable inobject double fields unboxing for 64-bit archs."
...
Review URL: https://codereview.chromium.org/751643005
Cr-Commit-Position: refs/heads/master@{#25483}
2014-11-24 14:54:38 +00:00
ishell
25b8efffa3
Reland of "TransitionArray::Search() now returns insertion index if the entry was not found."
...
Review URL: https://codereview.chromium.org/739013004
Cr-Commit-Position: refs/heads/master@{#25482}
2014-11-24 14:31:36 +00:00
yangguo
c64b47f552
When optimizing deserialized code, make sure IC state is preserved.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/737373003
Cr-Commit-Position: refs/heads/master@{#25444}
2014-11-20 16:20:56 +00:00
Michael Stanton
cfa1f94781
Revert "Re-land r25392 Use a stub in crankshaft for grow store arrays."
...
Due to performance issue.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/735323002
Cr-Commit-Position: refs/heads/master@{#25421}
2014-11-19 14:08:43 +00:00
yangguo
472f8823a7
Do fewer encoding checks in FlatStringReader used in the JSON stringifier.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/740673002
Cr-Commit-Position: refs/heads/master@{#25416}
2014-11-19 11:17:01 +00:00
Michael Stanton
47f55baeaf
Re-land r25392 Use a stub in crankshaft for grow store arrays.
...
Code was vulnerable to different evaluation order in Clang.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/726693004
Cr-Commit-Position: refs/heads/master@{#25397}
2014-11-18 14:31:00 +00:00
Michael Stanton
77ee440af1
Revert "Use a stub in crankshaft for grow store arrays."
...
This reverts commit d40204f84c
.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/735653003
Cr-Commit-Position: refs/heads/master@{#25393}
2014-11-18 13:08:07 +00:00
Michael Stanton
d40204f84c
Use a stub in crankshaft for grow store arrays.
...
We were deopting without learning anything.
BUG=v8:3417
LOG=N
R=danno@chromium.org
Review URL: https://codereview.chromium.org/368263003
Cr-Commit-Position: refs/heads/master@{#25392}
2014-11-18 12:32:24 +00:00
Michael Stanton
78cf188e18
Hydrogen should recognize literal smi arrays as fast literals.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/726423002
Cr-Commit-Position: refs/heads/master@{#25387}
2014-11-18 09:27:56 +00:00
yangguo
6714365a30
Reland "Optimize function across closures." (again).
...
Review URL: https://codereview.chromium.org/707463002
Cr-Commit-Position: refs/heads/master@{#25367}
2014-11-17 08:43:00 +00:00
ishell@chromium.org
994094cc62
Revert "TransitionArray::Search() now returns insertion index if the entry was not found."
...
This reverts the commit because it possibly causes renderer hangs.
BUG=chromium:431807
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/725633002
Cr-Commit-Position: refs/heads/master@{#25338}
2014-11-13 16:59:44 +00:00
Erik Arvidsson
04719195a2
Classes: Cleanup default constructor flag
...
Now that we keep track of whether a function contains super we do not
need kDefaultConstructorCallSuper
BUG=None
LOG=Y
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/718833002
Cr-Commit-Position: refs/heads/master@{#25337}
2014-11-13 16:50:21 +00:00
ishell@chromium.org
2e38f33911
Revert "TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name."
...
Revert "Fix for an assertion failure in Map::FindTransitionToField(...). Appeared after r25136."
This revert is made in order to revert r25099 which potentially causes renderer hangs.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/722873004
Cr-Commit-Position: refs/heads/master@{#25332}
2014-11-13 15:31:04 +00:00
Andy Wingo
910711a169
Move BailoutReason and flags computation to post-pass
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/668143003
Cr-Commit-Position: refs/heads/master@{#25321}
2014-11-13 09:57:56 +00:00
dslomov@chromium.org
eacdfa0b7a
Various clean-ups after top-level lexical declarations are done.
...
1. Global{Context,Scope}=>Script{Context,Scope}
2. Enable fixed tests
3. Update comments
R=rossberg@chromium.org
BUG=v8:2198
LOG=N
Review URL: https://codereview.chromium.org/716833002
Cr-Commit-Position: refs/heads/master@{#25291}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 11:35:18 +00:00
jarin@chromium.org
37b00b9137
Zap prototype transitions in release mode, too.
...
R=ulan@chromium.org
BUG=431559
LOG=n
Review URL: https://codereview.chromium.org/715233002
Cr-Commit-Position: refs/heads/master@{#25287}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 10:02:19 +00:00
ishell@chromium.org
c5a492961f
Reland "In-object double fields unboxing (for 64-bit only)."
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/711313002
Cr-Commit-Position: refs/heads/master@{#25258}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 10:25:46 +00:00
ishell@chromium.org
18cf6c9ac9
MapCache simplification. It is now a FixedArray that maps number of properties to a WeakCell with a Map.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/712943002
Cr-Commit-Position: refs/heads/master@{#25253}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 18:04:17 +00:00
verwaest@chromium.org
2d9079ca1d
Revert "In-object double fields unboxing (for 64-bit only)."
...
Revert "Fixes for Windows and Mac builds after r25250."
TBR=ishell@chromium.org
Review URL: https://codereview.chromium.org/699613004
Cr-Commit-Position: refs/heads/master@{#25252}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 17:44:51 +00:00
ishell@chromium.org
07085da575
Fixes for Windows and Mac builds after r25250.
...
R=verwaest@chromium.org
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/717573002
Cr-Commit-Position: refs/heads/master@{#25251}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 16:55:38 +00:00
ishell@chromium.org
f133ac501b
In-object double fields unboxing (for 64-bit only).
...
This CL introduces LayoutDescriptor which is responsible for tracking which in-object fields are tagged and which are not.
LayoutDescriptor field added to Map. Currently unboxing is disabled.
R=hpayer@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/391693002
Cr-Commit-Position: refs/heads/master@{#25250}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 16:35:22 +00:00
arv@chromium.org
b86c30a2b3
Classes: Partial fix for constructor not calling super
...
Introduce two new function kind, one for default constructor and one
for default constructor call super. Then when we are about to pares
these we just generate the correct AST in source.
BUG=v8:3661, v8:3672
LOG=Y
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/700523003
Cr-Commit-Position: refs/heads/master@{#25222}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-07 16:39:27 +00:00
dslomov@chromium.org
1a64b02dcf
harmony_scoping: Implement lexical bindings at top level
...
This implements correct semantics for "extensible" top level lexical scope.
The entire lexical scope is represented at runtime by GlobalContextTable, reachable from native context and accumulating global contexts from every script loaded into the context.
When the new script starts executing, it does the following validation:
- checks the GlobalContextTable and global object (non-configurable own) properties against the set of declarations it introduces and reports potential conflicts.
- invalidates the conflicting PropertyCells on global object, so that any code depending on them will miss/deopt causing any contextual lookups to be reexecuted under the new bindings
- adds the lexical bindings it introduces to the GlobalContextTable
Loads and stores for contextual lookups are modified so that they check the GlobalContextTable before looking up properties on global object, thus implementing the shadowing of global object properties by lexical declarations.
R=adamk@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/705663004
Cr-Commit-Position: refs/heads/master@{#25220}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-07 16:29:45 +00:00
jkummerow@chromium.org
e2e9e1d3f6
Add FLAG_trace_maps
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/694533003
Cr-Commit-Position: refs/heads/master@{#25219}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-07 16:03:44 +00:00
ishell@chromium.org
e1f93a82f2
Fix for an assertion failure in Map::FindTransitionToField(...). Appeared after r25136.
...
BUG=chromium:430846
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/704183002
Cr-Commit-Position: refs/heads/master@{#25185}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-06 11:50:33 +00:00
yangguo@chromium.org
6de28b2be1
Revert "Reland "Optimize function across closures.""
...
This reverts commit r25142.
TBR=ishell@chromium.org
Review URL: https://codereview.chromium.org/702853002
Cr-Commit-Position: refs/heads/master@{#25145}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 11:37:42 +00:00
yangguo@chromium.org
1cdf4e9308
Reland "Optimize function across closures."
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/703603003
Cr-Commit-Position: refs/heads/master@{#25142}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 11:12:41 +00:00
ishell@chromium.org
33dde8d92c
TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/661133002
Cr-Commit-Position: refs/heads/master@{#25136}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 09:26:48 +00:00
hpayer@chromium.org
3ee916c810
Truncate strings synchronized.
...
BUG=
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/702743002
Cr-Commit-Position: refs/heads/master@{#25127}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 07:31:01 +00:00
yangguo@chromium.org
c66a3f95ae
Revert "Optimize function across closures."
...
This reverts r25102.
TBR=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/699143002
Cr-Commit-Position: refs/heads/master@{#25104}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-04 11:40:45 +00:00
yangguo@chromium.org
1d66934565
Optimize function across closures.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/699633002
Cr-Commit-Position: refs/heads/master@{#25102}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-04 11:06:44 +00:00
ishell@chromium.org
d7bc74f866
TransitionArray::Search() now returns insertion index if the entry was not found.
...
This is a prerequisite for https://codereview.chromium.org/661133002/ .
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/698043003
Cr-Commit-Position: refs/heads/master@{#25099}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-04 09:30:20 +00:00
ishell@chromium.org
a19c18ac6d
Reland "Limit the number of transitions allowed per hidden class."
...
BUG=chromium:427813
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/676393002
Cr-Commit-Position: refs/heads/master@{#25082}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-03 16:46:29 +00:00
dcarney@chromium.org
d24cd63fff
allow disabling of ArrayBuffer neutering
...
BUG=
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/684103002
Cr-Commit-Position: refs/heads/master@{#24973}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-29 10:37:12 +00:00
mvstanton@chromium.org
15c5c9d530
A type vector with multiple IC types needs metadata.
...
This CL adds a bitset to describe the type of IC in each IC slot.
This is necessary for clearing ICs of different types.
With FLAG_vector_ics off (the current state), it's not required because
CALL_IC is the only type of IC in the vector.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/679073002
Cr-Commit-Position: refs/heads/master@{#24911}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-27 16:34:39 +00:00
verwaest@chromium.org
d83acdf9a0
Revert "Limit the number of transitions allowed per hidden class." Due to crashes in ClearMapTransitions
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/661583004
Cr-Commit-Position: refs/heads/master@{#24900}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-27 11:58:18 +00:00
verwaest@chromium.org
8189922e1e
Limit the number of transitions allowed per hidden class.
...
Each time a transition is added to a hidden class, the whole
transitions array must be copied, which causes poor performance
in some circumstances. This change limits the maximum size of
the transition array, avoiding this behavior in the pathological
case. For example, this improves the performance of the EtchMark
benchmark by nearly 60%.
BUG=v8:3616
LOG=
R=verwaest@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/635883003
Patch from Kevin M. McCormick <mckev@amazon.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 05:29:54 +00:00
dcarney@chromium.org
887b3ca079
Cleanup ConsStringIteratorOp.
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/663313003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 05:57:01 +00:00
dusan.milosavljevic@imgtec.com
0ffa82c3ac
Handle NaN value storing in Uint8Clamped typed arrays.
...
TEST=mjsunit/external-array
BUG=
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/667113002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:10:13 +00:00
verwaest@chromium.org
ce9f799d39
Remove unused GetConstructor
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/663033004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:51:02 +00:00
ulan@chromium.org
67aa5fbfcb
Fix Win64 after r24758.
...
BUG=
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/663343002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:33:57 +00:00
ulan@chromium.org
e777fc4126
Use smi zero instead of undefine_value to zap dead weak cells.
...
It is faster to test for smi zero from generated code.
BUG=
R=erikcorry@chromium.org
Review URL: https://codereview.chromium.org/637253004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 09:42:16 +00:00
yangguo@chromium.org
8cc5d418ee
Special handling for inline caches in code serializer.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/656533003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 08:46:11 +00:00