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
dcarney
2d3311b82f
remove DeletedField from PropertyDetails
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1002703002
Cr-Commit-Position: refs/heads/master@{#27166}
2015-03-12 16:03:27 +00:00
ishell
35841b5055
Property reconfiguring implemented.
...
Previous approach for property reconfiguration was to create a free-floating map with generalized representations of all fields. This patch does it right.
When property is reconfigured either by changing its kind (kData <-> kAccessor) or its attributes it implies creation of a new branch in transition tree. If such a branch already existed before reconfiguration then it should be merged with the old (or source) branch of the transition tree. Merging procedure includes all the heavy machinery such as property location changes (kDescriptor -> kField), field representation/field type generalization, map deprecation, etc.
Review URL: https://codereview.chromium.org/888623002
Cr-Commit-Position: refs/heads/master@{#26667}
2015-02-16 15:25:54 +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
ishell
08146dc023
Introduced PropertyType ACCESSOR_FIELD.
...
Review URL: https://codereview.chromium.org/805453002
Cr-Commit-Position: refs/heads/master@{#25842}
2014-12-16 13:22:31 +00:00
ishell
9134c7a629
PropertyType is divided into PropertyKind and PropertyStoreMode.
...
Review URL: https://codereview.chromium.org/786193004
Cr-Commit-Position: refs/heads/master@{#25798}
2014-12-12 13:06:08 +00:00
ishell
f3d1888fdb
PropertyDetails cleanup: NORMAL property type merged with FIELD.
...
First step towards replacing PropertyType with two enums: {DATA,ACCESSOR} x {CONST,WRITABLE}.
Review URL: https://codereview.chromium.org/733253004
Cr-Commit-Position: refs/heads/master@{#25417}
2014-11-19 11:45:34 +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
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
verwaest@chromium.org
fa70f154b7
Remove dead code from LookupResult
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/504183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 16:32:51 +00:00
verwaest@chromium.org
2a37ab79ad
Fixed inlining of constant values
...
Use CopyToRepresentation to elide HForceRepresentation of HConstant
BUG=v8:3529
LOG=y
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/507613002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 11:34:25 +00:00
verwaest@chromium.org
ef0068558a
Rename IsDontDelete to IsConfigurable (and invert conditions)
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/494063002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-21 09:34:47 +00:00
verwaest@chromium.org
e4c3c439af
Get rid of the NONEXISTENT PropertyType
...
BUG=
Review URL: https://codereview.chromium.org/492433005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-21 08:16:06 +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
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
bmeurer@chromium.org
d4b533d41b
Bulk update of Google copyright headers in source files.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/259183002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 06:42:26 +00:00
bmeurer@chromium.org
e26ff6c45f
Get rid of the TRANSITION PropertyType and consistently use CanHoldValue().
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/223193005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-04 04:49:07 +00:00
danno@chromium.org
ae1669b501
Fix handling of polymorphic array accesses with constant index
...
R=jkummerow@chromium.org
BUG=chromium:351319
LOG=Y
Review URL: https://codereview.chromium.org/196353004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 10:11:38 +00:00
hpayer@chromium.org
38ca2629be
Fix representation generalization for doubles.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/184393002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-28 11:07:10 +00:00
bmeurer@chromium.org
a7c82c49f4
Consistent use of const for LookupResult.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/170073003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 11:30:51 +00:00
rossberg@chromium.org
0d906a8bdb
Zonify types in compiler frontend
...
Clean up some zone/isolate handling in AST and its visitors on the way.
(Based on https://codereview.chromium.org/103743004/ )
R=jkummerow@chromium.org , titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/102563004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 16:22:52 +00:00
rossberg@chromium.org
cb28b7f837
Retry "Templatise type representation" after making clang happy
...
The only thing different now is line types.h:208/236, which had a static_cast<Type*> before.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/133683002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-10 12:19:01 +00:00
machenbach@chromium.org
8ffcd2a281
[Sheriff] Revert "Templatise type representation" and "Fix Mac warnings".
...
This reverts commit r18521 and r18522 for breaking mac and win builders.
BUG=
TBR=rossberg@chromium.org
Review URL: https://codereview.chromium.org/132493002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 19:52:15 +00:00
rossberg@chromium.org
713a74ca09
Fix Mac warnings
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/132263002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 17:37:48 +00:00
rossberg@chromium.org
1c33a2d840
Templatise type representation
...
This is to support both heap- and zone-allocated types in the future (the latter not yet implemented).
Also, handlify the type API some more.
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/107933005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 17:12:48 +00:00
rossberg@chromium.org
014a86ef8c
ES6: Add Object.getOwnPropertySymbols
...
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.getownpropertysymbols
This allows you to get the symbols used as property keys for an object.
var object = {};
var sym = Symbol();
object[sym] = 42;
assert(Object.getOwnPropertySymbols(object)[0] === sym);
This is only available with --harmony-symbols
BUG=v8:3049
R=rossberg@chromium.org , rossberg
LOG=Y
Review URL: https://codereview.chromium.org/108083005
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 15:57:30 +00:00
jkummerow@chromium.org
315b0c6a30
Delete unused TypeInfo class
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/105313008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-20 13:33:20 +00:00
dslomov@chromium.org
c3a4d718ce
Generate TypedArrayInitialize builtin in hydrogen.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/59023003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 14:41:46 +00:00
danno@chromium.org
f27f2fa420
Match max property descriptor length to corresponding bit fields
...
BUG=v8:3010
R=verwaest@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/72333004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 11:44:06 +00:00
danno@chromium.org
6fdec542bb
Reland 17588: Add signed/unsigned 8-bit and 16-bit Representations to Crankshaft
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/66193004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 17:35:58 +00:00
verwaest@chromium.org
af66a0b300
Revert "Add signed/unsigned 8-bit and 16-bit Representations to Crankshaft"
...
Revert "Fix ARM build"
Revert "Fix ARM build (again)"
TBR=danno@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/66553004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 13:54:34 +00:00
danno@chromium.org
1222255b9c
Add signed/unsigned 8-bit and 16-bit Representations to Crankshaft
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/61623004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 11:50:23 +00:00
bmeurer@chromium.org
42dc3faf9a
Add support to load/store byte fields.
...
This adds a new Byte representation and support for zero-extended
loads in HLoadNamedField and truncated stores in HStoreNamedField.
R=mvstanton@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=17079
Review URL: https://codereview.chromium.org/25696004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-04 07:13:43 +00:00
bmeurer@chromium.org
5e8c902991
Revert "Add support to load/store byte fields." and "MIPS: Add support to load/store byte fields.".
...
This reverts commit r17079 and r17085. Will reland after fix.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/25679008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-04 05:47:35 +00:00
bmeurer@chromium.org
9492c1b540
Add support to load/store byte fields.
...
This adds a new Byte representation and support for zero-extended
loads in HLoadNamedField and truncated stores in HStoreNamedField.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/25696004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-02 13:27:53 +00:00
jkummerow@chromium.org
6be4e9455e
Fixed HMul::Canonicalize() to support SMI
...
Same idea for HDiv when the right oeprand is 1
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/23176002
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-27 14:09:26 +00:00
verwaest@chromium.org
6b83c868f0
Convert CONSTANT_FUNCTION to CONSTANT
...
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19485008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:34:50 +00:00
olivf@chromium.org
240c7aced9
Convert UnaryOpStub to a HydrogenCodeStub
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18712002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:26:22 +00:00
olivf@chromium.org
950a372834
Revert "Convert UnaryOpStub to a HydrogenCodeStub"
...
The problem is the HCallConstantFunction which is not context sensitive, so we leak the builtin. We first need a Hydrogen version of __ IvokeBuiltin.
BUG=
R=danno@chromium.org , machenbach@chromium.org
Review URL: https://codereview.chromium.org/18650003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 19:57:25 +00:00
olivf@chromium.org
0d2fed8f26
Convert UnaryOpStub to a HydrogenCodeStub
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/17229005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:56:53 +00:00
verwaest@chromium.org
773c08c58f
Try convert polymorphic stores into a single monomorphic store.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16975006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 14:16:03 +00:00
verwaest@chromium.org
16199c63d8
Initialized representations of computed values to None.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14721009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-06 14:21:35 +00:00
verwaest@chromium.org
6f5d9f9af2
Move field index into property details, freeing up the value slot of fields.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15941016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-31 19:11:09 +00:00
verwaest@chromium.org
3cb8f95c91
Tag smi-constants as smi. This also fixes code that copies holes into arrays.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15861009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-27 08:43:58 +00:00
verwaest@chromium.org
308e69755b
Implement HChange support for Smis and use it in Load/StoreNameField
...
BUG=
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15303004
Patch from Daniel Clifford <danno@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-23 08:32:07 +00:00
verwaest@chromium.org
36e91242fd
Make Object.freeze fast
...
This patch both speeds up the freeze operation itself, but also
allows properties to remain in fast mode. Objects with non-empty
elements backing stores still end up with slow elements.
Relanding r14758 and r14759 with fix for Test262: only mark properties
and elements READ_ONLY if they are not JS setter/getters. Tightened up
tests to assert frozen-ness, and added targeted tests for the new code
(covering accessors).
BUG=v8:1858, 115960
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15691007
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-23 07:05:58 +00:00
adamk@chromium.org
4d48bb832f
Revert "Make Object.freeze fast"
...
and "Fix Object.freeze on dictionary-backed arrays to properly freeze elements"
This reverts r14758 and r14759 due to introducing failures in Test262
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/15681004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-22 21:27:00 +00:00
adamk@chromium.org
648e99e308
Make Object.freeze fast
...
This patch both speeds up the freeze operation itself, but also
allows properties to remain in fast mode. Objects with non-empty
elements backing stores still end up with slow elements.
BUG=v8:1858, 115960
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/14888005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-22 18:53:58 +00:00