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
yangguo
7904576039
Refactor use of Isolate::use_crankshaft.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/755883003
Cr-Commit-Position: refs/heads/master@{#25499}
2014-11-25 12:48:06 +00:00
yangguo
2ed39d936a
Reset code age on the cloned code when serializing.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/757983002
Cr-Commit-Position: refs/heads/master@{#25498}
2014-11-25 12:03:41 +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
andrew_low
c1bfc3485d
Fix alignment of Code::kConstantPoolOffset.
...
This is needed for 64bit alignment sensitive platforms (PowerPC)
Exposed bugs with new GC compare and swap changes updating the
field.
Example failing test:
out/ppc64.debug/cctest test-decls/ExistsInPrototype
BUG=
Review URL: https://codereview.chromium.org/740443002
Cr-Commit-Position: refs/heads/master@{#25472}
2014-11-24 10:22:17 +00:00
yangguo
61bee5c898
Correctly escape RegExp source.
...
R=ulan@chromium.org
BUG=v8:3229
LOG=N
Review URL: https://codereview.chromium.org/736003002
Cr-Commit-Position: refs/heads/master@{#25457}
2014-11-21 10:50:24 +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
ishell
40d4674d61
Removed unnecessary generalization of all fields in Map::GeneralizeRepresentation() (introduced in r25082).
...
This generalization caused unnecessary map deprecation when the transition tree of the split map is full.
BUG=chromium:431807
LOG=N
Review URL: https://codereview.chromium.org/736953003
Cr-Commit-Position: refs/heads/master@{#25427}
2014-11-19 18:10:30 +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
adamk
4a4158f363
Throw as per spec when modifying an Array with builtin methods
...
BUG=v8:3684
LOG=n
Review URL: https://codereview.chromium.org/726773002
Cr-Commit-Position: refs/heads/master@{#25364}
2014-11-14 19:42:15 +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
ishell@chromium.org
bc8c41c08d
Avoid fast short-cut in Map::GeneralizeRepresentation() for literals with non-simple transitions.
...
It started showing after r25253.
BUG=v8:3687
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/715313003
Cr-Commit-Position: refs/heads/master@{#25324}
2014-11-13 10:56:31 +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
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
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
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
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
verwaest@chromium.org
604672e87f
Changing the aging mechanism for script and eval caches.
...
Instead of using multiple generations for the code, first only store the hash that gets aged. Once a hash matched on a next probe, actually cache the code. Use regular code aging to remove entries from the cache.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/675013004
Cr-Commit-Position: refs/heads/master@{#25040}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-31 14:52:27 +00:00
yangguo@chromium.org
f01e08315f
Assert that unoptimized code does not embed context-specific objects.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/690713003
Cr-Commit-Position: refs/heads/master@{#25029}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-31 09:31:12 +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
yangguo@chromium.org
0dfbf83468
Use shared function info for eval cache key.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/678843004
Cr-Commit-Position: refs/heads/master@{#24927}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 10:01:44 +00:00
dusan.milosavljevic@imgtec.com
05effbaadf
Make NextCodeLink pointer 8-byte aligned after GC pointer updating uses atomics.
...
After r24737 pointer updating is done by atomic operations which strictly
require target address to be 8-byte alignment on MIPS64.
The alignment is broken on 64-bit arches because InstructionSize is first field
and has Int size.
Order of fields in object layout are changed to make kNextCodeLinkOffset
divisible by 8. The size of code object header remains the same.
TEST=cctest/test-debug/* on MIPS64
BUG=
R=jkummerow@chromium.org , paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/682673002
Cr-Commit-Position: refs/heads/master@{#24914}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-27 18:24:39 +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
adamk@chromium.org
02d37b8f10
Widen definition of %HasComplexElements() to include non-enumerability
...
This avoids using the Sparse methods on objects with non-enumerable elements,
which can cause the 'enumerable: false' bit to get lost in the operation.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/672323003
Cr-Commit-Position: refs/heads/master@{#24883}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 18:04:13 +00:00
mvstanton@chromium.org
b0bfef00f3
Improve printing for Symbols.
...
Private symbols we create in the heap don't have names, but we can
resolve them to a constant string.
This gives handy debugger output like:
(gdb) job 0x2020c67d
0x2020c67d: [Symbol]
- hash: 547385396
- name: 0x20208091 <undefined> (uninitialized_symbol)
- private: 1
- own: 1
$7 = void
(gdb)
or with ShortPrint() in an array:
...
[5]: 0x2020c67d <Symbol: 547385396 (uninitialized_symbol)>
...
Printing help for internal symbols
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/677633003
Cr-Commit-Position: refs/heads/master@{#24869}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:07 +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
adamk@chromium.org
5f1ae66d56
Narrow cases where Sparse/Smart versions of Array methods are used
...
Added a new %HasComplexElements runtime function (meaning elements that are
non-writable, non-configurable, or have getters and setters) and use it
in UseSparseVariant to filter out cases where the sparse optimizations
can cause V8 to fall out of spec compliance.
Renamed SmartMove/SmartSlice to SparseMove/SparseSlice and guarded them
with the new and improved UseSparseVariant.
These two changes combine let us pass nearly every test in bug-2615.js,
as well as fixing reverse and join on sparse arrays.
Note that there are various test changes in this patch that correct existing
tests to match the correct-by-spec behavior.
This patch depends on https://codereview.chromium.org/666883009 , which
better-aligns the behavior of SmartMove with SimpleMove.
BUG=v8:2615,v8:3612,v8:3621
LOG=y
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/656423004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 18:21:50 +00:00
ishell@chromium.org
209855a6b6
More details printed for Map, DescriptorArray and TransitionArray.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/659363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:31:33 +00:00
yangguo@chromium.org
7753ace135
Small fixes for the code serializer.
...
- assertions regarding max heap object size.
- ensure string table capacity upfront.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/671843003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:25:42 +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
verwaest@chromium.org
37b7dde54d
Remove unused IsDirty
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/670703002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:21:54 +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
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
verwaest@chromium.org
4b5ca4f396
Remove dead GeneralizeFieldRepresentation
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/668663002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 12:32:23 +00:00
mvstanton@chromium.org
c688ebd858
vector-based ICs did not update type feedback counts correctly.
...
BUG=v8:3605
LOG=N
R=jkummerow@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/650073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 11:42:56 +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
dslomov@chromium.org
e149f81eba
Keyed stores to super with numeric keys.
...
R=verwaest@chromium.org , arv@chromium.org , ishell@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/649603003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-17 13:19:45 +00:00
wingo@igalia.com
0841f7241b
Track usage of "this" and "arguments" in Scope
...
This adds flags in Scope to track wheter a Scope uses "this" and,
"arguments". The information is exposed via Scope::uses_this(),
and Scope::uses_arguments(), respectively. Flags for tracking
usage on any inner scope uses are available as well via
Scope::inner_uses_this(), and Scope::inner_uses_arguments().
Knowing whether scopes use "this" and "arguments" will be handy
to generate the code needed to capture their values when generating
the code for arrow functions.
BUG=v8:2700
LOG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/422923004
Patch from Adrian Perez de Castro <aperez@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-16 13:19:36 +00:00
mvstanton@chromium.org
ecac8b0877
Eliminate special keyed load string stub in favor of uniform handlers.
...
KeyedLoadIC installs a special case if the receiver is a string.
Although there are several maps for strings, in practice we seem to
be able to treat them individually because a given KeyedLoad site
only sees 1-2 string types.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/602773003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-16 11:42:47 +00:00
verwaest@chromium.org
23868b419c
Optimize Function.prototype.call
...
BUG=
R=verwaest@chromium.org , jarin@chromium.org , jkummerow@chromium.org
Review URL: https://codereview.chromium.org/588573002
Patch from Petka Antonov <p.antonov@partner.samsung.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 12:22:15 +00:00
erikcorry@chromium.org
3727a10d20
Use WeakCell to handle the script wrapper cache
...
The script wrapper cache used the API weak handles to provide a weak link from Script to ScriptWrapper. We want to change the way API weakness works, and in this context it's best to get rid of users of the API that don't need to be users.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/659513003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 10:11:08 +00:00
yangguo@chromium.org
9a21ba499c
Catch exceptions thrown when enqueuing change records.
...
R=ishell@chromium.org
BUG=chromium:417709
LOG=N
Review URL: https://codereview.chromium.org/653593002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 14:46:11 +00:00
ulan@chromium.org
dd49272c00
Weak Cells
...
Introduce an object that holds a weak reference.
Design document: http://goo.gl/9dSvvy .
BUG=
R=erik.corry@gmail.com
Review URL: https://codereview.chromium.org/640303006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 14:43:45 +00:00
ishell@chromium.org
f58558d910
Preserve order of fields when doing slow-to-fast object migration.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/614883003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 11:03:35 +00:00
yangguo@chromium.org
33dc53f9cc
Always include full reloc info to stubs for serialization.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/641643006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 07:50:21 +00:00
jkummerow@chromium.org
ed585c083c
Fix type feedback for name-keyed stores
...
BUG=chromium:422212
LOG=n
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/648703002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 13:27:52 +00:00
yangguo@chromium.org
6ca8f782aa
Reset code age when serializing code objects.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/642283002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 10:51:34 +00:00
yangguo@chromium.org
8659e50723
Update unicode to 7.0.0.
...
And do not use code points with PATTERN_* property for identifier start.
Maintain that \u180E is a white space character.
BUG=v8:2892
LOG=Y
R=dpino@igalia.com , mathias@qiwi.be
Review URL: https://codereview.chromium.org/638643002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 14:55:03 +00:00
mstarzinger@chromium.org
f99fd3867b
Remove premordial math functions from native context.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/635323002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 14:42:31 +00:00
svenpanne@chromium.org
d6eea5742d
Endian changes, support 64bit big endian
...
These are some changes split off from https://codereview.chromium.org/422063005
frames-inl.h, frames.h
based on 05db7d2d71
On 64bit big endian systems, the integer value is in the second slot, thus we need a new offset.
objects-inl.h, objects.h
based on 09b680b2af
Similarly, the hash slot is an integer field and we need to do the right thing on 64bit big endian systems
objects.cc
based on: 065742b078
Prettier printing of constant pools
test-strings.cc
based on: 9889d60cd6
endian fixes
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/551803004
Patch from Andrew Low <andrew_low@ca.ibm.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 13:14:14 +00:00
bmeurer@chromium.org
3eebdc3264
Replace OStream with std::ostream.
...
Review URL: https://codereview.chromium.org/618643002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:29:32 +00:00
yangguo@chromium.org
381616fb70
Split even more runtime functions into separate files.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/612023002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 08:23:02 +00:00
ishell@chromium.org
171e62e589
ExtendStorageStub added, it is aimed for extending objects backing store when it runs out of space.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/587203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 13:11:27 +00:00
dslomov@chromium.org
7e44408fc6
Stores and compound assignments for named super properties.
...
R=ishell@chromium.org , arv@chromium.org , verwaest@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/593073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 08:16:24 +00:00
yangguo@chromium.org
43538e57a4
Refactor bailout reasons and disable optimization in more cases.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/596783002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 07:08:27 +00:00
verwaest@chromium.org
42770b1b21
Remove switch-clause limit
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/582653002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 12:44:23 +00:00
verwaest@chromium.org
40bbeef0ee
Make Map::Create always use the Object function, and remove the unused inobject properties
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/584943002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 14:59:14 +00:00
titzer@chromium.org
5881257344
Widen the intake valve for TurboFan.
...
R=danno@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/582703002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 12:50:50 +00:00
erik.corry@gmail.com
35eec7c7ca
Reland sticky regexps https://codereview.chromium.org/567313003/
...
R=svenpanne@chromium.org , yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/580383003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 07:36:05 +00:00
rossberg@chromium.org
cc960f8034
Revert "RegExp: Add support for the ES6-proposed sticky flag"
...
Causes a flaky failure on buildbots. Here is the (deterministic) repro step (thanks to Michael Stanton):
first go to flag-definitions.h and set this to false.
DEFINE_BOOL(enable_sse4_1, false,
"enable use of SSE4.1 instructions if available")
Run the following and it should fail:
tools/run-tests.py --arch=ia32 --mode=release cctest/test-api/Regress2107
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/580123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 14:53:00 +00:00
mvstanton@chromium.org
200095c3e7
Move state sentinels into TypeFeedbackVector.
...
These sentinels were in the wrong place, living in only tangentially related class TypeFeedbackInfo, but they codify state in the TypeFeedbackVector.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/579153003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 12:31:31 +00:00
erik.corry@gmail.com
63b1c1900d
RegExp: Add support for the ES6-proposed sticky flag
...
R=yangguo@chromium.org , rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/567313003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 11:32:39 +00:00
mvstanton@chromium.org
134a89b11f
Introduce TypeFeedbackVector, as FixedArray grew constrictive.
...
The TypeFeedbackVector is poised to host significant functionality. While it
remains a FixedArray under the covers, we need a place to hold logic and
definitions unique to its function.
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/581993002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 09:59:53 +00:00
machenbach@chromium.org
0fce2201b9
Revert "Don't use OwnPrototypeChainLength in GetOwnPropertyNames"
...
This reverts commit r23997 for causing check failures in
layout tests:
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/498
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/581013003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 06:57:12 +00:00
verwaest@chromium.org
d0ad526359
Don't use OwnPrototypeChainLength in GetOwnPropertyNames
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/574753002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 09:56:51 +00:00
arv@chromium.org
7efd2eb144
Class syntax parsing
...
This implements parsing for ClassExpression and ClassDeclaration.
The runtime is not yet implemented and the value is currently
hard coded to undefined.
BUG=v8:3330
LOG=Y
R=dslomov@chromium.org , marja@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/561913002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 22:15:39 +00:00
yangguo@chromium.org
7cb82a76b4
Reland "Remove V8_HOST_CAN_READ_UNALIGNED and its uses."
...
BUG=chromium:412967
LOG=N
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/571903002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 10:54:49 +00:00
yangguo@chromium.org
a5027daf1c
Revert "Remove V8_HOST_CAN_READ_UNALIGNED and its uses."
...
This reverts r23915.
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/569783003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 21:11:09 +00:00
yangguo@chromium.org
a5b4beffd0
Remove V8_HOST_CAN_READ_UNALIGNED and its uses.
...
R=jkummerow@chromium.org
BUG=chromium:412967
LOG=Y
Review URL: https://codereview.chromium.org/568753002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 12:42:02 +00:00
arv@chromium.org
45d8e74cd6
ES6: Add support for method shorthand in object literals
...
This is governed by the harmony-object-literals flag.
BUG=v8:3516
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/477263002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 16:39:42 +00:00
yangguo@chromium.org
4e670fd05e
Rename ascii to one-byte where applicable.
...
R=dcarney@chromium.org , marja@chromium.org
Review URL: https://codereview.chromium.org/559913002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 12:38:12 +00:00
hpayer@chromium.org
d12834206d
Don't record slots of objects that may contain raw values.
...
BUG=
R=mstarzinger@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/555783002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-09 10:07:29 +00:00
titzer@chromium.org
e1a948a6f8
Convert Linkage to use MachineSignature.
...
This simplifies the handling of MachineTypes for parameters and returns
used in tests, and overall improves the regularity with which they
are handled in both tests and in CallDescriptor.
R=bmeurer@chromium.org , jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/530783002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 10:13:21 +00:00
bmeurer@chromium.org
7d0d01005c
First step to cleanup the power-of-2 mess.
...
TEST=base-unittests,cctest,mjsunit
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/528993002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 13:36:35 +00:00
bmeurer@chromium.org
30f18f0f7d
Use Chrome compatible naming for compiler specifics.
...
Less useless creativity is best creativity!
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/526223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 07:07:52 +00:00
verwaest@chromium.org
5164b9a473
Delete unused DescriptorArray::Append with whitenesswitness
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/501363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 13:01:55 +00:00