jkummerow
90cbede588
Move prototype metadata from internal properties to prototype maps
...
The motivation is that we prefer to avoid creating internal properties, and we have a usable field on maps ("transitions", which is not used for prototype maps).
This CL also ensures the invariant that prototype maps are never shared, even if they are in dictionary mode.
Review URL: https://codereview.chromium.org/1033653002
Cr-Commit-Position: refs/heads/master@{#27617}
2015-04-07 10:42:57 +00:00
mstarzinger
38a719f965
Switch full-codegen from StackHandlers to handler table.
...
This switches full-codegen to no longer push and pop StackHandler
markers onto the operand stack, but relies on a range-based handler
table instead. We only use StackHandlers in JSEntryStubs to mark the
transition from C to JS code.
Note that this makes deoptimization and OSR from within any try-block
work out of the box, makes the non-exception paths faster and should
overall be neutral on the memory footprint (pros).
On the other hand it makes the exception paths slower and actually
throwing and exception more expensive (cons).
R=yangguo@chromium.org
TEST=cctest/test-run-jsexceptions/DeoptTry
Review URL: https://codereview.chromium.org/1010883002
Cr-Commit-Position: refs/heads/master@{#27440}
2015-03-25 13:14:02 +00:00
ulan
c56fa73699
Reland "Fix memory leak caused by field type in descriptor array."
...
BUG=v8:3877
LOG=NO
Review URL: https://codereview.chromium.org/1018283002
Cr-Commit-Position: refs/heads/master@{#27362}
2015-03-23 11:20:50 +00:00
dcarney
d3fb7bf809
correctly invalidate global cells
...
additionally, remove unnecessary deopts when transitioning to global accessor properties from data properties
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/996133002
Cr-Commit-Position: refs/heads/master@{#27239}
2015-03-17 13:27:41 +00:00
jkummerow
233ea0eef8
Reland: Simplify and compact transitions storage
...
Original issue: https://codereview.chromium.org/980573002/
Simple transitions are now stored in a map's "transitions" field (as a WeakCell wrapping the target map); full TransitionArrays are used when that's not sufficient.
To encapsulate these storage format implementation details, functions for manipulating and querying transitions have been refactored to be static functions on the TransitionArray class, and take maps as inputs.
Review URL: https://codereview.chromium.org/988703002
Cr-Commit-Position: refs/heads/master@{#27044}
2015-03-06 14:08:47 +00:00
jkummerow
948a973d45
Revert of Simplify and compact transitions storage (patchset #4 id:80001 of https://codereview.chromium.org/980573002/ )
...
Reason for revert:
x64 test failures
Original issue's description:
> Simplify and compact transitions storage
>
> Simple transitions are now stored in a map's "transitions" field (as a WeakCell wrapping the target map); full TransitionArrays are used when that's not sufficient.
> To encapsulate these storage format implementation details, functions for manipulating and querying transitions have been refactored to be static functions on the TransitionArray class, and take maps as inputs.
>
> Committed: https://crrev.com/45fbef7f2252fce10634931cb103ccc1fc95ae6a
> Cr-Commit-Position: refs/heads/master@{#27029}
TBR=verwaest@chromium.org ,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/982143002
Cr-Commit-Position: refs/heads/master@{#27030}
2015-03-05 20:42:03 +00:00
jkummerow
45fbef7f22
Simplify and compact transitions storage
...
Simple transitions are now stored in a map's "transitions" field (as a WeakCell wrapping the target map); full TransitionArrays are used when that's not sufficient.
To encapsulate these storage format implementation details, functions for manipulating and querying transitions have been refactored to be static functions on the TransitionArray class, and take maps as inputs.
Review URL: https://codereview.chromium.org/980573002
Cr-Commit-Position: refs/heads/master@{#27029}
2015-03-05 20:09:41 +00:00
ishell@chromium.org
d4cb046b19
Fix for the compilation issue in shared mode introduced by r26624
...
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/919043002
Cr-Commit-Position: refs/heads/master@{#26627}
2015-02-12 17:27:22 +00:00
ishell
2e54397ca3
Enable layout descriptor consistency checks in heap verification mode.
...
Review URL: https://codereview.chromium.org/917743004
Cr-Commit-Position: refs/heads/master@{#26624}
2015-02-12 16:40:41 +00:00
ulan
b79b985988
Use weak cells in dependent code.
...
BUG=
Review URL: https://codereview.chromium.org/871253005
Cr-Commit-Position: refs/heads/master@{#26614}
2015-02-12 13:21:13 +00:00
dusan.milosavljevic
85ed0097d5
Make SNaN verification universal for all arches.
...
The mips HW prior to revision 5 has opposite encoding for NaNs.
TEST=mjsunit/regress/*, regress-1167, regress-undefined-nan2
BUG=
Review URL: https://codereview.chromium.org/912833003
Cr-Commit-Position: refs/heads/master@{#26568}
2015-02-11 09:05:26 +00:00
ulan
015e7865a0
Fix Code::VerifyEmbeddedObjects.
...
BUG=
Review URL: https://codereview.chromium.org/905473003
Cr-Commit-Position: refs/heads/master@{#26465}
2015-02-05 15:25:34 +00:00
ulan
cd203cd629
Verify that code stubs and full code do not have pointers that can retain
...
context.
BUG=v8:3629
LOG=N
Review URL: https://codereview.chromium.org/879273004
Cr-Commit-Position: refs/heads/master@{#26412}
2015-02-03 17:46:31 +00:00
bmeurer
c65ae4f10c
Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/877753007
Cr-Commit-Position: refs/heads/master@{#26346}
2015-01-30 09:29:41 +00:00
Benedikt Meurer
883852293a
Revert "Make GCC happy again." and "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".
...
This reverts commit 6a4c0a3bae
and commit
0deaa4b629
for breaking GCC bots.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/893533003
Cr-Commit-Position: refs/heads/master@{#26342}
2015-01-30 07:19:57 +00:00
bmeurer
0deaa4b629
Initial switch to Chromium-style CHECK_* and DCHECK_* macros.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/888613002
Cr-Commit-Position: refs/heads/master@{#26340}
2015-01-30 06:25:36 +00:00
Benedikt Meurer
9eace97bba
Use signaling NaN for holes in fixed double arrays.
...
TEST=mjsunit,cctest,unittests
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/863633002
Cr-Commit-Position: refs/heads/master@{#26180}
2015-01-21 08:52:25 +00:00
ishell
33994b4a22
Massive renaming of PropertyType values and other implied stuff.
...
PropertyKind:
DATA -> kData
ACCESSOR -> kAccessor
PropertyType:
FIELD -> DATA
CONSTANT -> DATA_CONSTANT
ACCESSOR_FIELD -> ACCESSOR
CALLBACKS -> ACCESSOR_CONSTANT
PropertyLocation:
IN_OBJECT -> kField
IN_DESCRIPTOR -> kDescriptor
StoreMode:
FORCE_IN_OBJECT -> FORCE_FIELD
FieldDescriptor -> DataDescriptor
ConstantDescriptor -> DataConstantDescriptor
CallbacksDescriptor -> AccessorConstantDescriptor
Review URL: https://codereview.chromium.org/856503002
Cr-Commit-Position: refs/heads/master@{#26146}
2015-01-19 17:49:22 +00:00
dcarney
c15c737362
remove SignatureInfo class
...
BUG=
Review URL: https://codereview.chromium.org/855903002
Cr-Commit-Position: refs/heads/master@{#26129}
2015-01-19 12:17:23 +00:00
yangguo
fe82e03bb6
Correctly reference global proxy in the partial snapshot.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/853493003
Cr-Commit-Position: refs/heads/master@{#26061}
2015-01-14 16:42:30 +00:00
dcarney
a5aa01beec
remove declarative accessors
...
R=jochen@chromium.org
BUG=
Review URL: https://codereview.chromium.org/834443004
Cr-Commit-Position: refs/heads/master@{#25981}
2015-01-07 16:37:43 +00:00
ulan
0344722a16
Remove custom weak handling of monomorphic IC.
...
This is not needed anymore since all ICs use weak cells to embed maps.
BUG=v8:3629
LOG=N
Review URL: https://codereview.chromium.org/817223003
Cr-Commit-Position: refs/heads/master@{#25928}
2014-12-22 15:04:18 +00:00
ishell
ac9c9fc5ca
Using PropertyKind in transitions instead of PropertyType.
...
Review URL: https://codereview.chromium.org/801813002
Cr-Commit-Position: refs/heads/master@{#25802}
2014-12-12 15:27:50 +00:00
ishell
7d13ca278a
Reland of "TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name."
...
Review URL: https://codereview.chromium.org/793453004
Cr-Commit-Position: refs/heads/master@{#25750}
2014-12-10 15:18:52 +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
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
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
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
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
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
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
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
2c30ec5f65
Fix for assertion failures appeared after StoreTransitionStub implementation.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/637553002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 14:32:19 +00:00
jkummerow@chromium.org
1903e560b0
Non-JSArrays must always have holey elements.
...
Drive-by cleanup: remove unused elements_kind_ field in CallNew.
BUG=chromium:416558
LOG=n
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/595333002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-25 08:25:25 +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
bmeurer@chromium.org
dab61bc310
Replace our home-grown BitCast with bit_cast from Chrome/Google3.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/553843002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 09:11:11 +00:00
verwaest@chromium.org
d094d0fb44
Tag all prototypes as proto, except those set using __proto__
...
BUG=
R=ishell@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/450303003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 14:00:58 +00:00
hpayer@chromium.org
604eaa0d27
Move objects-visiting into heap.
...
BUG=
R=jochen@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/443933002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 12:21:01 +00:00
jkummerow@chromium.org
99062ae949
Track number of generic ICs per function
...
and use it to disable optimization if too many ICs are generic.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/441643008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 17:06:01 +00:00
bmeurer@chromium.org
d07a2eb806
Rename ASSERT* to DCHECK*.
...
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.
R=jochen@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/430503007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
danno@chromium.org
a1383e2250
Land the Fan (disabled)
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/426233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 13:54:45 +00:00
yangguo@chromium.org
1bebc5908e
Use 0 instead of undefined for uninitialized stub key.
...
The CPU profiler looks at uninitialized code objects, which triggers an assertion.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/404113003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 13:51:42 +00:00
yangguo@chromium.org
3b9f5e86d4
Store both major and minor key on code stubs.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/409613002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 13:10:14 +00:00
svenpanne@chromium.org
018ef484b9
More OStreamsUse OStreams more often.
...
This is a mostly mechanical CL (more than 90% Emacs macros and
query-replace-regexp) moving FILE*/StringStream*-based APIs to
OStream-based APIs. There are a few places where this had to stop,
otherwise the CL would be even bigger, but this can easily and
incrementally cleaned up later.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/363323003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 09:57:29 +00:00
ishell@chromium.org
2c94151e6e
Reland r22082 "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/334323003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-01 15:02:31 +00:00
ishell@chromium.org
d1190c503d
Revert "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."
...
This reverts commit r22082 for breaking arm64 build.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/360023003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 10:19:31 +00:00
ishell@chromium.org
cea1824f58
Replace HeapNumber as doublebox with an explicit MutableHeapNumber.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/355793003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 09:44:43 +00:00
verwaest@chromium.org
d06afb3ce0
Remove AccessControl from AccessorPairs, as it's an invalid usecase of AllCan*
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/332863003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 09:02:16 +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