verwaest
1f2755bf35
Fix keyed access of primitive objects in the runtime.
...
For now it uses a pretty slow path for accessing strings by wrapping it into a new temporary wrapper.
BUG=v8:4042, v8:3088
LOG=y
Review URL: https://codereview.chromium.org/1221303019
Cr-Commit-Position: refs/heads/master@{#29576}
2015-07-10 16:11:07 +00:00
verwaest
7b5eab583f
Use entry rather than index in ElementsAccessor::Get
...
BUG=v8:4137, v8:4177
LOG=n
Review URL: https://codereview.chromium.org/1230213002
Cr-Commit-Position: refs/heads/master@{#29574}
2015-07-10 14:13:45 +00:00
verwaest
f87af94a46
Use entry rather than index in ElementsAccessor::Set
...
BUG=v8:4137,v8:4177
LOG=n
Review URL: https://codereview.chromium.org/1232463005
Cr-Commit-Position: refs/heads/master@{#29571}
2015-07-10 12:56:41 +00:00
verwaest
0b3d6f7a7d
Reload the map of typed arrays after performing ToNumber.
...
BUG=chromium:507980
LOG=n
Review URL: https://codereview.chromium.org/1234553002
Cr-Commit-Position: refs/heads/master@{#29570}
2015-07-10 12:49:40 +00:00
verwaest
dba715ec6a
Cleanup Delete backend implementation.
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1218813012
Cr-Commit-Position: refs/heads/master@{#29477}
2015-07-06 08:53:51 +00:00
verwaest
5c278f632c
Minor performance improvements to the LookupIterator
...
This change changes bootstrapping semantics for intercepted global objects. Unlike before, we'll now also call into the interceptor during bootstrapping. This affects properties loaded from within the runtime, such as global.Array and global.Symbol. The embedder will need to make sure that those values are the expected values during bootstrapping.
BUG=chromium:505998
LOG=n
Review URL: https://codereview.chromium.org/1220813005
Cr-Commit-Position: refs/heads/master@{#29414}
2015-07-01 12:20:10 +00:00
verwaest
f461c7a67a
Move reconfiguration into the elements accessor
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1207613005
Cr-Commit-Position: refs/heads/master@{#29289}
2015-06-25 11:26:06 +00:00
verwaest
6c7449a636
Move SetFastDoubleElementsCapacity into GrowCapacityAndConvert
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1193343002
Cr-Commit-Position: refs/heads/master@{#29182}
2015-06-22 11:24:19 +00:00
verwaest
0f1522f4c2
Remove handles from ElementsAccessor::Set and friends
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1196543003
Cr-Commit-Position: refs/heads/master@{#29139}
2015-06-19 09:25:22 +00:00
verwaest
691de97b3f
Cleanup typed array setters, the property is guaranteed to be there.
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1180753005
Cr-Commit-Position: refs/heads/master@{#29129}
2015-06-18 19:49:39 +00:00
verwaest
6a3ba3cc2c
More cleanly separate adding from setting elements
...
This is a first step towards disentangling the backend code. In the future we should just use ElementsAccessors.
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1177043012
Cr-Commit-Position: refs/heads/master@{#29111}
2015-06-18 12:21:04 +00:00
verwaest
72cdb99346
Rely on the map being a dictionary map rather than not having a backpointer
...
BUG=chromium:500173
LOG=n
Review URL: https://codereview.chromium.org/1194513003
Cr-Commit-Position: refs/heads/master@{#29074}
2015-06-17 10:14:01 +00:00
verwaest
a066202b17
Reland of Replace SetObjectProperty / DefineObjectProperty with less powerful alternatives where relevant. (patchset #3 id:40001 of https://codereview.chromium.org/1178503004/ )
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1180943002
Cr-Commit-Position: refs/heads/master@{#29000}
2015-06-12 12:39:44 +00:00
ishell
62d65a347f
Revert of Replace SetObjectProperty / DefineObjectProperty with less powerful alternatives where relevant. (patchset #3 id:40001 of https://codereview.chromium.org/1178503004/ )
...
Reason for revert:
Blocks revert of https://codereview.chromium.org/1175973002
Original issue's description:
> Replace SetObjectProperty / DefineObjectProperty with less powerful alternatives where relevant.
>
> @yangguo: please look at the debugger part of the CL.
> @ishell: please look at the rest.
>
> Additionally:
> - Ensure the LookupIterator for named properties does not accidentally get indexes in.
> - Fix the return value for typed array assignments to be the incoming value.
>
> BUG=v8:4137
> LOG=n
>
> Committed: https://crrev.com/15aa811f8fe2708a757c3b53ca89db736aa8b222
> Cr-Commit-Position: refs/heads/master@{#28954}
TBR=yangguo@chromium.org ,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4137
Review URL: https://codereview.chromium.org/1181733002
Cr-Commit-Position: refs/heads/master@{#28957}
2015-06-11 17:21:19 +00:00
verwaest
15aa811f8f
Replace SetObjectProperty / DefineObjectProperty with less powerful alternatives where relevant.
...
@yangguo: please look at the debugger part of the CL.
@ishell: please look at the rest.
Additionally:
- Ensure the LookupIterator for named properties does not accidentally get indexes in.
- Fix the return value for typed array assignments to be the incoming value.
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1178503004
Cr-Commit-Position: refs/heads/master@{#28954}
2015-06-11 16:37:48 +00:00
verwaest
52f44a8353
Use the LookupIterator for SetElement and friends
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1172683003
Cr-Commit-Position: refs/heads/master@{#28946}
2015-06-11 15:07:16 +00:00
verwaest
823682ea2c
Use LookupIterator for GetElementAttributes and friends
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1153583006
Cr-Commit-Position: refs/heads/master@{#28757}
2015-06-02 11:10:58 +00:00
verwaest
2fb894fa58
Use GetProperty for getting elements.
...
This also fixes issues with
- kMaxUint32 being a valid length but not index cornercases
- exotic integer objects masking "exotic indexes" even though its in the prototype chain
- concating of holey sloppy arguments
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1159433003
Cr-Commit-Position: refs/heads/master@{#28754}
2015-06-02 10:42:29 +00:00
erikcorry
4f5337a2b6
Cosmetic changes to tests to make it easier to concatenate them.
...
When compiling on a laptop I like to concatenate the small test files.
This makes a big difference to compile times. These changes make that
easier.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1163803002
Cr-Commit-Position: refs/heads/master@{#28742}
2015-06-01 22:47:08 +00:00
ishell
144be2c461
Starting using GlobalDictionary for global objects instead of NameDictionary.
...
Review URL: https://codereview.chromium.org/1165603002
Cr-Commit-Position: refs/heads/master@{#28737}
2015-06-01 16:25:08 +00:00
verwaest
c2670d6187
Simplify GetProperty helpers to ease element support
...
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/1148583002
Cr-Commit-Position: refs/heads/master@{#28556}
2015-05-21 14:34:32 +00:00
verwaest
16484824b6
Start adding support for elements to the LookupIterator
...
BUG=
Review URL: https://codereview.chromium.org/1144883002
Cr-Commit-Position: refs/heads/master@{#28546}
2015-05-21 12:19:23 +00:00
verwaest
4268141ca6
Reland "Mark internal AccessorInfo properties as 'special data properties'"
...
This reverts commit ac5336baca
.
BUG=
Review URL: https://codereview.chromium.org/1138483005
Cr-Commit-Position: refs/heads/master@{#28442}
2015-05-18 12:36:40 +00:00
machenbach
ac5336baca
Revert of Mark internal AccessorInfo properties as "special data properties" (patchset #2 id:20001 of https://codereview.chromium.org/1123163005/ )
...
Reason for revert:
[Sheriff] Blocks current roll:
https://codereview.chromium.org/1124403007/
Bisection (https://codereview.chromium.org/1142753002/ ) points to this CL.
Original issue's description:
> Mark internal AccessorInfo properties as "special data properties" to ensure correct strict-mode handling.
>
> BUG=
>
> Committed: https://crrev.com/188297160d2b82a4e2a206ebbddfc21dd99a9d8d
> Cr-Commit-Position: refs/heads/master@{#28369}
TBR=rossberg@chromium.org ,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1142763002
Cr-Commit-Position: refs/heads/master@{#28437}
2015-05-17 16:50:17 +00:00
verwaest
188297160d
Mark internal AccessorInfo properties as "special data properties" to ensure correct strict-mode handling.
...
BUG=
Review URL: https://codereview.chromium.org/1123163005
Cr-Commit-Position: refs/heads/master@{#28369}
2015-05-12 15:11:13 +00:00
dcarney
a338f2738a
drop interalization of strings entering global constant slots
...
BUG=
Review URL: https://codereview.chromium.org/1110393003
Cr-Commit-Position: refs/heads/master@{#28155}
2015-04-30 10:50:49 +00:00
dcarney
97981d9413
fix special index parsing
...
R=verwaest@chromium.org ,dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1038313004
Cr-Commit-Position: refs/heads/master@{#27518}
2015-03-30 11:41:15 +00:00
verwaest
755e43811d
Restore PushStackTraceAndDie for the case where we lookup starting with null
...
BUG=chromium:434952
LOG=n
Review URL: https://codereview.chromium.org/1035613003
Cr-Commit-Position: refs/heads/master@{#27439}
2015-03-25 13:05:22 +00:00
verwaest
bac0853dfb
Cannot use Handle<T>::cast in Unique<T>::cast since it will try to do a T::cast (and its typecheck) concurrently, which is unsafe concurrently on moving values
...
BUG=
Review URL: https://codereview.chromium.org/1022943002
Cr-Commit-Position: refs/heads/master@{#27324}
2015-03-19 23:54:15 +00:00
yangguo
87af601824
Add debug checks to catch PropertyCell::cast failures.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/1025433002
Cr-Commit-Position: refs/heads/master@{#27309}
2015-03-19 13:59:17 +00:00
dcarney
0880d4da26
add interceptors which do not mask existing properties
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/962613002
Cr-Commit-Position: refs/heads/master@{#27271}
2015-03-18 12:50:48 +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
dcarney
040225a315
handle the special snowflakes that are Integer Indexed Exotic objects
...
the implementation doesn't yet throw on strict mode assignment
BUG=
Review URL: https://codereview.chromium.org/992913002
Cr-Commit-Position: refs/heads/master@{#27121}
2015-03-10 19:11:20 +00:00
verwaest
b5fc4b808c
Remove internal use of v8::AccessType, always pass v8::ACCESS_HAS instead.
...
BUG=
Review URL: https://codereview.chromium.org/942963004
Cr-Commit-Position: refs/heads/master@{#26874}
2015-02-26 10:34:50 +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
dcarney
307d2bdd81
add transitions for global properties in ics
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/911713003
Cr-Commit-Position: refs/heads/master@{#26569}
2015-02-11 09:15:33 +00:00
dcarney
9896fab0df
fix transition of typedarrays in ics
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/904423002
Cr-Commit-Position: refs/heads/master@{#26518}
2015-02-09 09:50:15 +00:00
ulan
ecfbe909f3
Load getter from map descriptor instead of embedding it in handler.
...
BUG=v8:3629
LOG=N
Review URL: https://codereview.chromium.org/872723003
Cr-Commit-Position: refs/heads/master@{#26275}
2015-01-26 15:42:14 +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
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
jkummerow
60dafcaab2
Add infrastructure to keep track of references to prototypes.
...
There are no users of this infrastructure yet, so it's behind an off-by-default flag.
Review URL: https://codereview.chromium.org/768633002
Cr-Commit-Position: refs/heads/master@{#25829}
2014-12-15 19:57:54 +00:00
jkummerow
c060f4e26c
Internalize strings being stored into uninitialized property cells
...
Review URL: https://codereview.chromium.org/804993002
Cr-Commit-Position: refs/heads/master@{#25822}
2014-12-15 15:46:11 +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
dslomov@chromium.org
b664c12235
Flatten the string in StringToDouble function.
...
R=yangguo@chromium.org
BUG=chromium:425551
LOG=N
Review URL: https://codereview.chromium.org/654763003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:19:05 +00:00
dslomov@chromium.org
b830c2741c
Handle property name "-0" correctly for typed arrays.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/670623003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 11:54:10 +00:00
dslomov@chromium.org
e3ad693020
Correct semantics for numerically indexed stores to typed arrays.
...
R=verwaest@chromium.org , ishell@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=24691
Review URL: https://codereview.chromium.org/652303002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-17 16:33:38 +00:00
dslomov@chromium.org
8854589c79
Revert "Correct semantics for numerically indexed stores to typed arrays."
...
This reverts commit r24691 because win64 release build breaks.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/659313002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-17 13:01:54 +00:00
dslomov@chromium.org
3154c4a5f2
Correct semantics for numerically indexed stores to typed arrays.
...
R=verwaest@chromium.org , ishell@chromium.org
Review URL: https://codereview.chromium.org/652303002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-17 11:40:40 +00:00
verwaest@chromium.org
7d90f7e931
Simplify the LookupIterator
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/570293002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:42:04 +00:00
verwaest@chromium.org
9f57d62618
Get rid of special property_encoding flag on the LookupIterator
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/539083002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 13:17:04 +00:00