verwaest
a4b7d45c7b
Handlify ExecutableAccessorInfo::ClearSetter since it allocates.
...
BUG=chromium:478556
LOG=n
Review URL: https://codereview.chromium.org/1107853002
Cr-Commit-Position: refs/heads/master@{#28065}
2015-04-27 10:18:30 +00:00
jochen
3383f6280e
Reland "Remove the weak list of views from array buffers"
...
Original description:
> Instead, views have to check their array buffer for whether
> it's neutered or not.
>
> BUG=v8:3996
> R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> LOG=n
BUG=v8:3996
R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1107843002
Cr-Commit-Position: refs/heads/master@{#28060}
2015-04-27 09:27:53 +00:00
jkummerow
968715c653
Revert of Lazily register prototype users (patchset #2 id:20001 of https://codereview.chromium.org/1104813004/ )
...
Reason for revert:
Suspected of causing GC stress failures.
Original issue's description:
> Lazily register prototype users
>
> when handing out validity cells to handles; because invalidating said cells is the only time we'll need the user registrations.
> Along the way, fix a corner case in WeakFixedArray, which can now be empty after the recently introduced compaction support.
>
> Committed: https://crrev.com/a4bb7643c076b014816431a9b85af3e2edf828e7
> Cr-Commit-Position: refs/heads/master@{#28047}
TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1108583002
Cr-Commit-Position: refs/heads/master@{#28049}
2015-04-24 14:09:48 +00:00
jkummerow
a4bb7643c0
Lazily register prototype users
...
when handing out validity cells to handles; because invalidating said cells is the only time we'll need the user registrations.
Along the way, fix a corner case in WeakFixedArray, which can now be empty after the recently introduced compaction support.
Review URL: https://codereview.chromium.org/1104813004
Cr-Commit-Position: refs/heads/master@{#28047}
2015-04-24 12:51:37 +00:00
jochen
41098dbb07
Revert of Reland "Remove the weak list of views from array buffers" (patchset #2 id:20001 of https://codereview.chromium.org/1093183004/ )
...
Reason for revert:
still working on perf
Original issue's description:
> Reland "Remove the weak list of views from array buffers"
>
> Original description:
> > Instead, views have to check their array buffer for whether
> > it's neutered or not.
> >
> > BUG=v8:3996
> > R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> > LOG=n
>
> BUG=v8:3996
> R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> LOG=n
>
> Committed: https://crrev.com/655b04637e9da2749f53c866bca8f5f6abb05a3f
> Cr-Commit-Position: refs/heads/master@{#28029}
TBR=dslomov@chromium.org ,hpayer@chromium.org,verwaest@chromium.org,dcarney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3996
Review URL: https://codereview.chromium.org/1053203007
Cr-Commit-Position: refs/heads/master@{#28038}
2015-04-24 06:46:23 +00:00
jochen
655b04637e
Reland "Remove the weak list of views from array buffers"
...
Original description:
> Instead, views have to check their array buffer for whether
> it's neutered or not.
>
> BUG=v8:3996
> R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> LOG=n
BUG=v8:3996
R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1093183004
Cr-Commit-Position: refs/heads/master@{#28029}
2015-04-23 13:02:36 +00:00
jochen
47f2dfa9bd
Revert of Remove the weak list of views from array buffers (patchset #6 id:100001 of https://codereview.chromium.org/1094863002/ )
...
Reason for revert:
I'm reverting this while working on the regression fix
Original issue's description:
> Remove the weak list of views from array buffers
>
> Instead, views have to check their array buffer for whether
> it's neutered or not.
>
> BUG=v8:3996
> R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
> LOG=n
>
> Committed: https://crrev.com/5ae083a05a6743d6cb91585f449539f7846a5d8c
> Cr-Commit-Position: refs/heads/master@{#27995}
TBR=dslomov@chromium.org ,hpayer@chromium.org,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3996
Review URL: https://codereview.chromium.org/1061753008
Cr-Commit-Position: refs/heads/master@{#28014}
2015-04-22 15:03:12 +00:00
dslomov
aec46ca54a
Stack allocate lexical locals + hoist stack slots
...
Review URL: https://codereview.chromium.org/981203003
Cr-Commit-Position: refs/heads/master@{#28008}
2015-04-22 13:22:18 +00:00
machenbach
2631c9f5e3
Revert of Revert of Protect the emptiness of Array prototype elements with a PropertyCell. (patchset #1 id:1 of https://codereview.chromium.org/1099203004/ )
...
Reason for revert:
This was probably an infrastructure problem caused by the mac ninja/goma switch.
Original issue's description:
> Revert of Protect the emptiness of Array prototype elements with a PropertyCell. (patchset #7 id:120001 of https://codereview.chromium.org/1092043002/ )
>
> Reason for revert:
> MAC GCSTRESS failure on new test.
>
> Original issue's description:
> > Protect the emptiness of Array prototype elements with a PropertyCell.
> >
> > Not just emptiness, but also a particular structure.
> >
> > BUG=v8:4044
> > LOG=N
>
> TBR=jkummerow@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:4044
TBR=jkummerow@chromium.org ,mvstanton@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4044
Review URL: https://codereview.chromium.org/1052253003
Cr-Commit-Position: refs/heads/master@{#28000}
2015-04-22 10:35:09 +00:00
mvstanton
15b98a3328
Revert of Protect the emptiness of Array prototype elements with a PropertyCell. (patchset #7 id:120001 of https://codereview.chromium.org/1092043002/ )
...
Reason for revert:
MAC GCSTRESS failure on new test.
Original issue's description:
> Protect the emptiness of Array prototype elements with a PropertyCell.
>
> Not just emptiness, but also a particular structure.
>
> BUG=v8:4044
> LOG=N
TBR=jkummerow@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4044
Review URL: https://codereview.chromium.org/1099203004
Cr-Commit-Position: refs/heads/master@{#27998}
2015-04-22 09:56:28 +00:00
jochen
5ae083a05a
Remove the weak list of views from array buffers
...
Instead, views have to check their array buffer for whether
it's neutered or not.
BUG=v8:3996
R=hpayer@chromium.org ,dslomov@chromium.org,verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1094863002
Cr-Commit-Position: refs/heads/master@{#27995}
2015-04-22 09:19:19 +00:00
mvstanton
b6f075f001
Protect the emptiness of Array prototype elements with a PropertyCell.
...
Not just emptiness, but also a particular structure.
BUG=v8:4044
LOG=N
Review URL: https://codereview.chromium.org/1092043002
Cr-Commit-Position: refs/heads/master@{#27993}
2015-04-22 08:50:14 +00:00
yangguo
7b1b964362
Compact weak fixed arrays before serializing.
...
R=ulan@chromium.org
BUG=v8:4050
LOG=N
Review URL: https://codereview.chromium.org/1099103003
Cr-Commit-Position: refs/heads/master@{#27988}
2015-04-22 07:39:52 +00:00
machenbach
9974348674
Revert of track global accesses to constant types (patchset #15 id:280001 of https://codereview.chromium.org/1062163005/ )
...
Reason for revert:
[Sheriff] Speculative revert for maybe breaking layout tests, e.g.
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2032/builds/2589
Will reland if it doesn't help.
Original issue's description:
> track global accesses to constant types
>
> BUG=
TBR=verwaest@chromium.org ,dcarney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1094313003
Cr-Commit-Position: refs/heads/master@{#27982}
2015-04-21 18:02:59 +00:00
dcarney
7bcc3d1083
track global accesses to constant types
...
BUG=
Review URL: https://codereview.chromium.org/1062163005
Cr-Commit-Position: refs/heads/master@{#27966}
2015-04-21 13:36:58 +00:00
jkummerow
6b5dd313e1
Drop unused field from PrototypeInfo
...
Review URL: https://codereview.chromium.org/1097313002
Cr-Commit-Position: refs/heads/master@{#27965}
2015-04-21 13:21:56 +00:00
yangguo
0a8f8a953e
Change hash table capacity heuristics when serializing.
...
Also extract non-templated parts of HashTable class into HashTableBase.
Review URL: https://codereview.chromium.org/1095273002
Cr-Commit-Position: refs/heads/master@{#27959}
2015-04-21 11:07:26 +00:00
titzer
f557d75360
Reland "Refactor compilation dependency handling."
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1099473004
Cr-Commit-Position: refs/heads/master@{#27945}
2015-04-20 15:21:44 +00:00
jochen
53cc6486df
Remove support for externally backed elements from the API
...
Embedders should use ArrayBuffers instead
BUG=v8:3996
LOG=y
R=verwaest@chromium.org ,dslomov@chromium.org,kbr@chromium.org
Review URL: https://codereview.chromium.org/1092923002
Cr-Commit-Position: refs/heads/master@{#27939}
2015-04-20 13:31:27 +00:00
machenbach
e3c2ba776a
Revert of Refactor compilation dependency handling. (patchset #4 id:60001 of https://codereview.chromium.org/1095433002/ )
...
Reason for revert:
[Sheriff] Causes crashes in laout tests:
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2543
Extra bisect run:
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2548
Original issue's description:
> Refactor compilation dependency handling.
>
> Extract a new data structure CompilationDependencies and move (most) logic there.
>
> R=mstarzinger@chromium.org ,verwaest@chromium.org
> BUG=
>
> Committed: https://crrev.com/b882479f1c84a48961b8aec81fa1bb1225034784
> Cr-Commit-Position: refs/heads/master@{#27892}
TBR=mstarzinger@chromium.org ,verwaest@chromium.org,titzer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1093783002
Cr-Commit-Position: refs/heads/master@{#27904}
2015-04-17 07:47:09 +00:00
titzer
b882479f1c
Refactor compilation dependency handling.
...
Extract a new data structure CompilationDependencies and move (most) logic there.
R=mstarzinger@chromium.org ,verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1095433002
Cr-Commit-Position: refs/heads/master@{#27892}
2015-04-16 16:04:34 +00:00
ulan
aae2c01740
Use atomic operation to read the length of a fixed array.
...
This fixes a race where
- mutator changes the fixed array length by trimming it,
- sweeper thread reads the length of the fixed array.
Also rename FROM_GC and FROM_MUTATOR to be more precise.
BUG=chromium:462908
LOG=NO
Review URL: https://codereview.chromium.org/1034163002
Cr-Commit-Position: refs/heads/master@{#27869}
2015-04-16 08:39:12 +00:00
mvstanton
13459c1ae3
Array() in optimized code can create with wrong ElementsKind in corner cases.
...
Calling new Array(JSObject::kInitialMaxFastElementArray) in optimized code
makes a stub call that bails out due to the length. Currently, the bailout
code a) doesn't have the allocation site, and b) wouldn't use it if it did
because the length is perceived to be too high.
This CL passes the allocation site to the stub call (rather than undefined),
and alters the bailout code to utilize the feedback.
BUG=
Review URL: https://codereview.chromium.org/1086873003
Cr-Commit-Position: refs/heads/master@{#27857}
2015-04-15 21:02:13 +00:00
jkummerow
0179ec5797
Use Cells to check prototype chain validity (disabled by default).
...
The cells are stored on prototypes (in their map's PrototypeInfo). When a prototype object changes its map, then both its own validity cell and those of all "downstream" prototypes are invalidated; handlers for a given receiver embed the currently valid cell for that receiver's prototype during their compilation and check it on execution.
Review URL: https://codereview.chromium.org/908213002
Cr-Commit-Position: refs/heads/master@{#27845}
2015-04-15 12:53:24 +00:00
verwaest
4bd9bdbb28
Reland "Merge cellspace into old pointer space"
...
This fixes the arm(64) and mips(64) write barriers
BUG=
Review URL: https://codereview.chromium.org/1073133002
Cr-Commit-Position: refs/heads/master@{#27751}
2015-04-10 13:54:10 +00:00
jkummerow
c1f28b6c10
Handlify Map::SetPrototype()
...
Review URL: https://codereview.chromium.org/1005393004
Cr-Commit-Position: refs/heads/master@{#27745}
2015-04-10 12:13:22 +00:00
adamk
9e3e0aaa88
Revert of Merge cellspace into old pointer space (patchset #8 id:180001 of https://codereview.chromium.org/1010803012/ )
...
Reason for revert:
Causes test failures on ARM bots related to cells and write barriers.
Original issue's description:
> Merge cellspace into old pointer space
>
> BUG=
>
> Committed: https://crrev.com/4e7163ce05f135918205c7855ae60a48e5d46cc5
> Cr-Commit-Position: refs/heads/master@{#27707}
TBR=hpayer@chromium.org ,balazs.kilvady@imgtec.com,yangguo@chromium.org,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1053243003
Cr-Commit-Position: refs/heads/master@{#27711}
2015-04-09 18:16:40 +00:00
verwaest
4e7163ce05
Merge cellspace into old pointer space
...
BUG=
Review URL: https://codereview.chromium.org/1010803012
Cr-Commit-Position: refs/heads/master@{#27707}
2015-04-09 13:34:21 +00:00
yangguo
4a5de9d9e3
Eagerly escape RegExp.source.
...
Escaping used to happen lazily, implemented in an accessor property.
However, native implementation of RegExp methods use .source as well.
This leads to performance regressions. Now we do it eagerly instead.
R=jkummerow@chromium.org
BUG=chromium:436447
LOG=N
Review URL: https://codereview.chromium.org/1070093002
Cr-Commit-Position: refs/heads/master@{#27705}
2015-04-09 13:22:22 +00:00
hpayer
59be4ba7f4
Reland "Merge old data and pointer space."
...
This reverts commit cbfcee5575
.
BUG=
Review URL: https://codereview.chromium.org/1051233002
Cr-Commit-Position: refs/heads/master@{#27623}
2015-04-07 11:32:10 +00:00
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
adamk
909500aa1d
Reimplement Maps and Sets in JS
...
Previously, the only optimized code path for Maps and Sets was for String keys.
This was achieved through an implementation of various complex operations
in Hydrogen. This approach was neither scalable nor forward-compatible.
This patch adds the necessary intrinsics to implement Maps and Sets almost entirely
in JS. The added intrinsics are:
%_FixedArrayGet
%_FixedArraySet
%_TheHole
%_JSCollectionGetTable
%_StringGetRawHashField
With these additions, as well as a few changes to what's exposed as runtime functions,
most of the C++ code backing Maps and Sets is gone (including both runtime code in
objects.cc and Crankshaft in hydrogen.cc).
Review URL: https://codereview.chromium.org/947683002
Cr-Commit-Position: refs/heads/master@{#27605}
2015-04-07 00:12:04 +00:00
ishell
ffe886de48
Support for typed arrays added to Heap::RightTrimFixedArray().
...
BUG=chromium:472513
LOG=Y
Review URL: https://codereview.chromium.org/1058793002
Cr-Commit-Position: refs/heads/master@{#27586}
2015-04-02 11:26:19 +00:00
dcarney
a45a1de7aa
add access checks to receivers on function callbacks
...
R=verwaest@chromium.org
BUG=468451
LOG=N
Review URL: https://codereview.chromium.org/1036743004
Cr-Commit-Position: refs/heads/master@{#27482}
2015-03-26 15:22:08 +00:00
machenbach
f0d555b26d
Revert of add access checks to receivers on function callbacks (patchset #5 id:80001 of https://codereview.chromium.org/1036743004/ )
...
Reason for revert:
This seems to lead to lots of timeouts of layout tests, e.g.:
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064/builds/2807
Original issue's description:
> add access checks to receivers on function callbacks
>
> R=verwaest@chromium.org
> BUG=468451
> LOG=N
>
> Committed: https://crrev.com/255528710b0a128eef7b66827d9ac43e44650ff4
> Cr-Commit-Position: refs/heads/master@{#27452}
TBR=verwaest@chromium.org ,dcarney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=468451
Review URL: https://codereview.chromium.org/1023783009
Cr-Commit-Position: refs/heads/master@{#27457}
2015-03-25 18:31:51 +00:00
dcarney
255528710b
add access checks to receivers on function callbacks
...
R=verwaest@chromium.org
BUG=468451
LOG=N
Review URL: https://codereview.chromium.org/1036743004
Cr-Commit-Position: refs/heads/master@{#27452}
2015-03-25 16:16:56 +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
marja
cb7279da81
[strong] Check strong mode free variables against the global object.
...
Gather references to unbound variables where the reference (VariableProxy) is
inside strong mode. Check them against the global object when a script is bound
to a context (during compilation).
This CL only checks unbound variables which are not inside lazy functions - TBD
how do we solve that; alternatives: add developer mode which disables laziness /
do the check whenever lazy functions are really compiled.
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/1005063002
Cr-Commit-Position: refs/heads/master@{#27422}
2015-03-24 16:46:59 +00:00
ulan
1efcca7f04
Reload length of retained_maps array after GC.
...
This fixes flaky GC stress failure:
> Fatal error in ../src/heap/mark-compact.cc, line 2127
> Check failed: retained_maps->Get(i)->IsWeakCell().
BUG=
TEST=test-heap/RegressArrayListGC
Review URL: https://codereview.chromium.org/1026113004
Cr-Commit-Position: refs/heads/master@{#27412}
2015-03-24 14:36:09 +00:00
erikcorry
36d7aa6817
Fix out of date assert after PropertyCell enterbung
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1028393002
Cr-Commit-Position: refs/heads/master@{#27400}
2015-03-24 12:16:20 +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
hpayer
cbfcee5575
Revert "Merge old data and pointer space."
...
TBR=verwaest@chromium.org ,ulan@chromium.org,ishell@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/1027463002
Cr-Commit-Position: refs/heads/master@{#27323}
2015-03-19 22:03:32 +00:00
yangguo
3f10f409c8
Revert of Reland of "Fix memory leak caused by field type in descriptor array."
...
TBR=ulan@chromium.org
BUG=v8:3969
LOG=N
Review URL: https://codereview.chromium.org/1020843002
Cr-Commit-Position: refs/heads/master@{#27286}
2015-03-19 07:43:37 +00:00
yangguo
7c149afb6c
Serializer: serialize internal references via object visitor.
...
Review URL: https://codereview.chromium.org/1005183006
Cr-Commit-Position: refs/heads/master@{#27275}
2015-03-18 13:38:45 +00:00
verwaest
8c0d289772
Disinherit PropertyCell from Cell
...
BUG=
Review URL: https://codereview.chromium.org/1015983003
Cr-Commit-Position: refs/heads/master@{#27274}
2015-03-18 12:54: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
verwaest
16c8485a35
Remove PropertyCell space
...
Replaces StoreGlobalCell / LoadGlobalCell with NamedField variants that use write barriers.
BUG=
Review URL: https://codereview.chromium.org/1016803002
Cr-Commit-Position: refs/heads/master@{#27269}
2015-03-18 11:43:58 +00:00
hpayer
257ff48931
Merge old data and pointer space.
...
BUG=
Review URL: https://codereview.chromium.org/1012023002
Cr-Commit-Position: refs/heads/master@{#27259}
2015-03-18 09:39:03 +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
kozyatinskiy
ec73e08860
[V8] Use Function.name in Error.stack
...
Error.stack contains function.name if its type is string.
Otherwise if function have inferred name then .stack contains it.
For functions from eval .stack property contains "eval".
LOG=N
BUG=chromium:17356
R=yurys@chromium.org
Review URL: https://codereview.chromium.org/919653002
Cr-Commit-Position: refs/heads/master@{#27186}
2015-03-13 15:11:57 +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
marja
6ad87e4f86
[strong] More scoping related errors: object literal methods.
...
This CL adds errors for illegal references which occur inside object literal
methods inside computed properrty names.
BUG=v8:3948,v8:3956
LOG=N
Review URL: https://codereview.chromium.org/994043003
Cr-Commit-Position: refs/heads/master@{#27118}
2015-03-10 16:48:07 +00:00
marja
3ff7da93d8
Fix CompilerHints flag order to match FunctionKind.
...
The bits in CompilerHints are accessed via FunctionKindBits, and on the other
hand, with accessors defined by BOOL_ACCESSORS(SharedFunctionInfo,
compiler_hints, is_accessor_function, kIsAccessorFunction) etc.
So the bit order in FunctionKind must match CompilerHints.
This is not causing problems (yet) because there's no accessor for these two
bits, but if somebody adds one, things will go wrong.
R=dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/988413002
Cr-Commit-Position: refs/heads/master@{#27096}
2015-03-10 11:57:20 +00:00
loislo
66ab309e73
CpuProfiler: fix for GetDeoptReason code.
...
The original code always returned the first entry from RelocInfo that matched with
bailout_id. But we may have a few different deopt reasons for one bailout_id.
So we need to get the one which matches with a particular call from JumpTable.
We can do this by checking not 'target_address' (it maps to bailout_id)
but 'from' address which maps to a particular JumpTable entry.
The test was reworked so it tests identical functions against different reasons.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/984773003
Cr-Commit-Position: refs/heads/master@{#27076}
2015-03-09 14:43:40 +00:00
marja
4a709dd658
[strong] Fix scoping related errors for methods.
...
Methods can refer to the class name.
BUG=v8:3927
LOG=N
Review URL: https://codereview.chromium.org/968263002
Cr-Commit-Position: refs/heads/master@{#27075}
2015-03-09 14:30:40 +00:00
yangguo
206303f703
Do not include code objects for functions in the start-up snapshot.
...
Review URL: https://codereview.chromium.org/981213002
Cr-Commit-Position: refs/heads/master@{#27047}
2015-03-06 15:07:06 +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
ulan
1b00451f57
Retain maps embedded in optimized code for several garbage collections.
...
This keeps dying maps alive for FLAG_retain_maps_for_n_gc garbage collections
to increase chances of them being reused for new objects in future and
decrease number of deoptimizations.
BUG=v8:3664
LOG=N
TEST=cctest/test-heap/MapRetaining
Review URL: https://codereview.chromium.org/980523004
Cr-Commit-Position: refs/heads/master@{#27040}
2015-03-06 12:36:32 +00:00
verwaest
67d531c33c
Don't double-allocate mutable heap numbers in the json parser. This removes some stupidity when committing state.
...
BUG=
Review URL: https://codereview.chromium.org/982793002
Cr-Commit-Position: refs/heads/master@{#27034}
2015-03-06 08:37:18 +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
yangguo
1a608493e5
Refactor BreakLocationIterator.
...
We now have BreakLocation::Iterator to iterate via RelocIterator, and
create a BreakLocation when we are done iterating. The reloc info is
stored in BreakLocation in a GC-safe way and instantiated on demand.
R=ulan@chromium.org
BUG=v8:3924
LOG=N
Review URL: https://codereview.chromium.org/967323002
Cr-Commit-Position: refs/heads/master@{#26983}
2015-03-04 13:15:34 +00:00
ulan
bbf8c0f23d
Revert "Revert of Fix memory leak caused by field type in descriptor array."
...
This reverts commit b57be748b1
and
disables the test/mjsunit/debug-clearbreakpointgroup.js because
BreakLocationIterator::ClearBreakPoint is already broken for unrelated reasons (see v8:3924).
BUG=v8:3877
LOG=N
TEST=cctest/test-heap/Regress3877
Review URL: https://codereview.chromium.org/957373002
Cr-Commit-Position: refs/heads/master@{#26893}
2015-02-26 18:38:34 +00:00
ulan
250dd1ed5a
Store weak cell cache for map in the map itself.
...
BUG=
Review URL: https://codereview.chromium.org/958023002
Cr-Commit-Position: refs/heads/master@{#26891}
2015-02-26 18:36:06 +00:00
marja
b57be748b1
Revert of Fix memory leak caused by field type in descriptor array. (patchset #3 id:40001 of https://codereview.chromium.org/955063002/ )
...
Reason for revert:
Breaks test/mjsunit/debug-clearbreakpointgroup.js on arm64.debug.
Original issue's description:
> Fix memory leak caused by field type in descriptor array.
>
> When a field type is a map, it is wrapped in a weak cell upon storing to the descriptor array.
>
> Map::GetFieldType(i) does the unwrapping.
>
> BUG=v8:3877
> LOG=N
> TEST=cctest/test-heap/Regress3877
>
> Committed: https://crrev.com/77d3ae0e119893ac8d34ea6ca090cddd5bbf987e
> Cr-Commit-Position: refs/heads/master@{#26879}
TBR=verwaest@chromium.org ,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3877
Review URL: https://codereview.chromium.org/960103003
Cr-Commit-Position: refs/heads/master@{#26883}
2015-02-26 14:46:07 +00:00
ulan
77d3ae0e11
Fix memory leak caused by field type in descriptor array.
...
When a field type is a map, it is wrapped in a weak cell upon storing to the descriptor array.
Map::GetFieldType(i) does the unwrapping.
BUG=v8:3877
LOG=N
TEST=cctest/test-heap/Regress3877
Review URL: https://codereview.chromium.org/955063002
Cr-Commit-Position: refs/heads/master@{#26879}
2015-02-26 13:16:39 +00:00
verwaest
6b1bddb454
Remove NativeContext from Literal array, since we always create the literals in the native context of the current closure.
...
BUG=
Review URL: https://codereview.chromium.org/952303002
Cr-Commit-Position: refs/heads/master@{#26867}
2015-02-25 22:41:48 +00:00
jkummerow
affcfaf428
Move Maps' back pointers from "transitions" to "constructor" field
...
Review URL: https://codereview.chromium.org/950283002
Cr-Commit-Position: refs/heads/master@{#26835}
2015-02-24 20:50:24 +00:00
verwaest
74c0cdbf76
Prototype objects never share their map, and hence cannot be in deprecated state.
...
Review URL: https://codereview.chromium.org/955433002
Cr-Commit-Position: refs/heads/master@{#26802}
2015-02-23 18:25:54 +00:00
arv
0cffc08b66
Super store
...
When the property is not found on the [[HomeObject]] prototype chain
then we should do a [[DefineOwnProperty]] on the instance.
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/934463003
Cr-Commit-Position: refs/heads/master@{#26754}
2015-02-19 16:15:35 +00:00
ulan
5242700da4
Revert "Remove IC age from Code."
...
This reverts commit 3cd889 for regressing Kraken benchmark
BUG=chromium:457174
LOG=N
Review URL: https://codereview.chromium.org/941503003
Cr-Commit-Position: refs/heads/master@{#26740}
2015-02-19 09:56:19 +00:00
verwaest
7138634d5a
Move LookupResult into crankshaft as that's now the only place where it's still used
...
Additionally handlify the "transition" field so that GC can stop caring about it.
BUG=
Review URL: https://codereview.chromium.org/935033003
Cr-Commit-Position: refs/heads/master@{#26718}
2015-02-18 13:21:43 +00:00
verwaest
6e56fd60e0
Remove the holder_ field from LookupResult
...
BUG=
Review URL: https://codereview.chromium.org/932533003
Cr-Commit-Position: refs/heads/master@{#26717}
2015-02-18 11:21:18 +00:00
verwaest
119cb56617
Stop using HeapType in IC and Crankshaft
...
BUG=
Review URL: https://codereview.chromium.org/935603002
Cr-Commit-Position: refs/heads/master@{#26696}
2015-02-17 15:33:37 +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
verwaest
a1f7b01ccf
Remove prototype key from the prototype transitions since its also embedded in the target map.
...
BUG=
Review URL: https://codereview.chromium.org/932583002
Cr-Commit-Position: refs/heads/master@{#26662}
2015-02-16 13:10:06 +00:00
caitpotter88
8bb2e39774
Implement ES6 rest parameters
...
LOG=Y
BUG=v8:2159
R=dslomov@chromium.org , arv@chromium.org , marja@chromium.org
Review URL: https://codereview.chromium.org/816913003
Cr-Commit-Position: refs/heads/master@{#26645}
2015-02-14 00:15:12 +00:00
arv
d0c2c2b32c
ES6 Classes: Remove tracking of super construct calls.
...
With the new ES6 semantics super construct calls are only valid in
a constructor in a derived class. This is something that is
statically known and we report early SyntaxError in case it occurs.
We therefore do not need to track this any more.
BUG=v8:3330
LOG=N
R=dslomov@chromium.org , adamk
Review URL: https://codereview.chromium.org/924123002
Cr-Commit-Position: refs/heads/master@{#26644}
2015-02-13 22:26:34 +00:00
rossberg
eecde44f82
Properly thread language mode to compilation cache
...
Fixes the TSAN issue.
R=mstarzinger@chromium.org
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/923573002
Cr-Commit-Position: refs/heads/master@{#26623}
2015-02-12 16:29:54 +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
titzer
688dcc3aa9
Move SetFunctionInfo() from compiler.cc to objects.cc. Rationale: not related to generating code.
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/917433007
Cr-Commit-Position: refs/heads/master@{#26583}
2015-02-11 14:52:13 +00:00
dslomov
bf49be39f3
new classes: implement new.target passing to superclass constructor.
...
R=arv@chromium.org ,rossberg@chromium.org
BUG=v8:3834
LOG=N
Committed: https://crrev.com/8aed43e82c6d2742fe5988603cb8841324cc942b
Cr-Commit-Position: refs/heads/master@{#26560}
Review URL: https://codereview.chromium.org/908883002
Cr-Commit-Position: refs/heads/master@{#26572}
2015-02-11 09:47:51 +00:00
dcarney
79417664b2
remove undetectable strings
...
BUG=
Review URL: https://codereview.chromium.org/916753002
Cr-Commit-Position: refs/heads/master@{#26571}
2015-02-11 09:28:12 +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
dslomov
8e4ec9dd13
Revert of new classes: implement new.target passing to superclass constructor. (patchset #9 id:150001 of https://codereview.chromium.org/908883002/ )
...
Reason for revert:
Breaks Linux64 release
Original issue's description:
> new classes: implement new.target passing to superclass constructor.
>
> R=arv@chromium.org ,rossberg@chromium.org
> BUG=v8:3834
> LOG=N
>
> Committed: https://crrev.com/8aed43e82c6d2742fe5988603cb8841324cc942b
> Cr-Commit-Position: refs/heads/master@{#26560}
TBR=arv@chromium.org ,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3834
Review URL: https://codereview.chromium.org/911363002
Cr-Commit-Position: refs/heads/master@{#26561}
2015-02-11 01:36:32 +00:00
dslomov
8aed43e82c
new classes: implement new.target passing to superclass constructor.
...
R=arv@chromium.org ,rossberg@chromium.org
BUG=v8:3834
LOG=N
Review URL: https://codereview.chromium.org/908883002
Cr-Commit-Position: refs/heads/master@{#26560}
2015-02-11 01:23:11 +00:00
dcarney
313b24dbc2
add support for all can read interceptors
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/906463002
Cr-Commit-Position: refs/heads/master@{#26522}
2015-02-09 11:33:50 +00:00
dslomov
158a87659f
new classes: assert that constructors are not callable and rewrite 'return;'
...
R=arv@chromium.org
BUG=v8:3834
LOG=N
Review URL: https://codereview.chromium.org/885643004
Cr-Commit-Position: refs/heads/master@{#26483}
2015-02-06 10:35:13 +00:00
Erik Arvidsson
b67b3c5401
Accessor functions should have no prototype property
...
This also removes some convenience functions that were not used.
BUG=v8:3700
LOG=N
R=adamk@chromium.org , adamk
Review URL: https://codereview.chromium.org/883073008
Cr-Commit-Position: refs/heads/master@{#26472}
2015-02-05 23:34:28 +00:00
ulan
3cd88975a1
Remove IC age from Code.
...
BUG=
Review URL: https://codereview.chromium.org/879693004
Cr-Commit-Position: refs/heads/master@{#26468}
2015-02-05 16:40:43 +00:00
marja
d21b9a1422
Add strong mode.
...
It doesn't do anything for now, but it implies strict mode. Added tests to
test-parsing.cc to test that.
BUG=
Review URL: https://codereview.chromium.org/898983002
Cr-Commit-Position: refs/heads/master@{#26460}
2015-02-05 14:11:47 +00:00
arv
176b68d11a
Class methods should be non enumerable
...
Class methods and accessors (both prototype and static) should be
non enumerable.
BUG=v8:3330
LOG=Y
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/896643003
Cr-Commit-Position: refs/heads/master@{#26437}
2015-02-04 17:23:17 +00:00
mvstanton
6fc97a1965
Retry "Use a WeakCell in the CallIC type vector."
...
The first try failed because I needed to make a better distinction
between clearing ICs according to policy at GC time or unconditional
clearing (say, via %ClearFunctionTypeFeedback).
It was also blocked by an issue in super constructor calls.
This fix (https://codereview.chromium.org/892113002/ ) needs to land
before checking in this CL.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/866493003
Cr-Commit-Position: refs/heads/master@{#26420}
2015-02-04 09:46:22 +00:00
marja
c7851da4ae
Introduce LanguageMode, drop StrictMode.
...
This enables adding more language modes in the future.
For maximum flexibility, LanguageMode is a bitmask, so we're not restricted to
use a sequence of language modes which are progressively stricter, but we can
express the language mode as combination of features.
For now, LanguageMode can only be "sloppy" or "strict", and there are
STATIC_ASSERTS in places which need to change when more modes are added.
LanguageMode is a bit like the old LanguageMode when "extended" mode was still
around (see https://codereview.chromium.org/8417035 and
https://codereview.chromium.org/181543002 ) except that it's transmitted through
all the layers (there's no StrictModeFlag).
BUG=
Review URL: https://codereview.chromium.org/894683003
Cr-Commit-Position: refs/heads/master@{#26419}
2015-02-04 09:34:26 +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
dslomov
6f97a4948f
new classes: special construct stub for derived classs and TDZ for this
.
...
R=arv@chromium.org ,rossberg@chromium.org
BUG=v8:3834
LOG=N
Review URL: https://codereview.chromium.org/867153003
Cr-Commit-Position: refs/heads/master@{#26409}
2015-02-03 17:43:03 +00:00
ulan
edb70555ff
Use weak cell to embed property cell in StoreGlobal.
...
BUG=v8:3629
LOG=N
Review URL: https://codereview.chromium.org/898723002
Cr-Commit-Position: refs/heads/master@{#26396}
2015-02-03 11:27:01 +00:00
fedor
a0d0c4333d
tools: fix postmortem generator
...
BUG=
R=danno
Review URL: https://codereview.chromium.org/892223002
Cr-Commit-Position: refs/heads/master@{#26389}
2015-02-02 21:21:54 +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
kozyatinskiy
eaae397c42
[V8] Added Script::is_debugger_script flag for embedders
...
In DevTools we need one more flag for script origin - is debugger script. We already have "is shared origin" flag. The new flag added by analogy with the old but new has accessor in script object.
R=yurys@chromium.org
Review URL: https://codereview.chromium.org/879553002
Cr-Commit-Position: refs/heads/master@{#26324}
2015-01-29 14:01:33 +00:00
danno
328cf76e35
[turbofan] Improve JSON output
...
Review URL: https://codereview.chromium.org/882973002
Cr-Commit-Position: refs/heads/master@{#26323}
2015-01-29 12:15:14 +00:00
yangguo
e5a082f0c4
Reland "Only use FreeSpace objects in the free list"
...
Review URL: https://codereview.chromium.org/882633002
Cr-Commit-Position: refs/heads/master@{#26296}
2015-01-27 14:57:00 +00:00
ishell
7f9b2fa699
Do not generalize field representations when making elements kind or observed transition.
...
BUG=chromium:448711
LOG=y
Review URL: https://codereview.chromium.org/861173004
Cr-Commit-Position: refs/heads/master@{#26289}
2015-01-27 11:19:06 +00:00
yangguo
cc79418b59
Revert of Only use FreeSpace objects in the free list. (patchset #3 id:40001 of https://codereview.chromium.org/876613002/ )
...
Reason for revert:
Test failures
Original issue's description:
> Only use FreeSpace objects in the free list.
>
> This solves an issue with the custom startup snapshot, in cases where
> deserializing the isolate requires more than one page per space.
>
> R=hpayer@chromium.org
>
> Committed: https://crrev.com/66964395108f03220cb6f45ddc73c5965e2c76a9
> Cr-Commit-Position: refs/heads/master@{#26285}
TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/882443004
Cr-Commit-Position: refs/heads/master@{#26287}
2015-01-27 09:41:21 +00:00
yangguo
6696439510
Only use FreeSpace objects in the free list.
...
This solves an issue with the custom startup snapshot, in cases where
deserializing the isolate requires more than one page per space.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/876613002
Cr-Commit-Position: refs/heads/master@{#26285}
2015-01-27 09:20:31 +00:00
ulan
a730a31a5b
Cache WeakCell for optimized code.
...
BUG=
Review URL: https://codereview.chromium.org/873233002
Cr-Commit-Position: refs/heads/master@{#26274}
2015-01-26 15:31:32 +00:00
danno
c7b09aac31
Remove the dependency of Zone on Isolate
...
Along the way:
- Thread isolate parameter explicitly through code that used to
rely on getting it from the zone.
- Canonicalize the parameter position of isolate and zone for
affected code
- Change Hydrogen New<> instruction templates to automatically
pass isolate
R=mstarzinger@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/868883002
Cr-Commit-Position: refs/heads/master@{#26252}
2015-01-23 15:20:00 +00:00
dcarney
845072e66e
cleanup check for compatible receiver of api callback
...
BUG=
Review URL: https://codereview.chromium.org/873623002
Cr-Commit-Position: refs/heads/master@{#26242}
2015-01-23 09:57:35 +00:00
dcarney
0aef24e2cf
CHECK that FunctionTemplates are not modified after first instantiation
...
BUG=
Review URL: https://codereview.chromium.org/862923002
Cr-Commit-Position: refs/heads/master@{#26237}
2015-01-23 09:07:19 +00:00
ulan
4097318792
Treat pointers in optimized code as strong before all weak dependencies are registered.
...
This prevents GC from observing code objects with out-of-sync weak dependencies.
BUG=v8:3823
LOG=N
Review URL: https://codereview.chromium.org/866723002
Cr-Commit-Position: refs/heads/master@{#26225}
2015-01-22 15:31:04 +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
verwaest
e99faf93ff
Remove ForceDelete
...
This method circumvented JS semantics, and should not be used.
BUG=
Review URL: https://codereview.chromium.org/854493004
Cr-Commit-Position: refs/heads/master@{#26157}
2015-01-20 13:41:31 +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
Sven Panne
e4c5b84652
Contribution of PowerPC port (continuation of 422063005)
...
Contribution of PowerPC port (continuation of 422063005). The inital patch
covers the core changes to the common files. Subsequent patches will cover
changes to common files to support AIX and to update the ppc directories so
they are current with the changes in the rest of the project.
This is based off of the GitHub repository
https://github.com/andrewlow/v8ppc
BUG=
R=svenpanne@chromium.org , danno@chromium.org , sevnpanne@chromium.org
Review URL: https://codereview.chromium.org/817143002
Cr-Commit-Position: refs/heads/master@{#26091}
2015-01-16 07:42:15 +00:00
marja
2305cfb4e2
ES6 unicode escapes, part 2: Regexps.
...
Allows \u{xxxxx} in regexps. Behind the --harmony-unicode flag.
Part 1 is here: https://codereview.chromium.org/716423002
BUG=v8:3648
LOG=N
Review URL: https://codereview.chromium.org/788043005
Cr-Commit-Position: refs/heads/master@{#26018}
2015-01-12 09:50:34 +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
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
b1b5d7e2f4
StoreMode enum values renamed.
...
FORCE_FIELD -> FORCE_IN_OBJECT,
ALLOW_AS_CONSTANT -> ALLOW_IN_DESCRIPTOR.
Review URL: https://codereview.chromium.org/799723003
Cr-Commit-Position: refs/heads/master@{#25803}
2014-12-12 15:36:10 +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
adamk
9aab9f13d6
Create optimized versions of the Map/Set clear method
...
This completes the first round of optimizations for Map and Set.
All non-key-dependent methods now have a Hydrogen version, and
for keyed methods, string versions are optimized.
Review URL: https://codereview.chromium.org/796503002
Cr-Commit-Position: refs/heads/master@{#25763}
2014-12-10 22:16:33 +00:00
adamk
4fa7ae1c07
Optimize Object.seal and Object.preventExtensions
...
They both now run fast (due to utilizing transitions instead of always
creating new maps) and sealed or non-extensible objects can stay in
fast mode after transitioning.
This almost entirely reuses the code for transitioning objects
frozen by Object.freeze(), with the added benefit of freeing
up a bit on the map (we no longer keep track of frozen-ness,
as that bit wasn't used for anything interesting).
BUG=v8:3662,chromium:115960
LOG=y
Review URL: https://codereview.chromium.org/776143005
Cr-Commit-Position: refs/heads/master@{#25759}
2014-12-10 20:02:59 +00:00
adamk
8877f15664
Create optimized inline versions of Map and Set initialization
...
Review URL: https://codereview.chromium.org/779173010
Cr-Commit-Position: refs/heads/master@{#25758}
2014-12-10 18:47:36 +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
jochen
581747c869
Make it possible to turn on OBJECT_PRINT without DEBUG
...
BUG=none
R=machenbach@chromium.org
LOG=n
NOTREECHECKS=true
Review URL: https://codereview.chromium.org/771323006
Cr-Commit-Position: refs/heads/master@{#25723}
2014-12-09 14:20:16 +00:00
adamk
243764b04b
Optimize add/set/delete operations for string keys in Maps and Sets
...
This was previously landed in commit 8599f5f
, but failed the
collections mjsunit test on ia32 with --deopt-every-n=1. The fixed
patch adds a ClearFlag(HValue::kCanOverflow) call after every
arithmetic operation, which should remove all the deopt points in these
intrinsics.
Ideally, it seems like there should be a way to verify that there are
no deopt points for these inline optimized functions, since there's
nothing to deopt to. But I don't currently know of such a thing.
Review URL: https://codereview.chromium.org/782073002
Cr-Commit-Position: refs/heads/master@{#25715}
2014-12-08 18:03:39 +00:00
ulan
513d1261e1
Fix typo in r25689 (Refactor Map::ConstructionCount.)
...
BUG=chromium:439868
LOG=N
Review URL: https://codereview.chromium.org/779293003
Cr-Commit-Position: refs/heads/master@{#25705}
2014-12-08 10:46:19 +00:00
jochen
97c1f4b15c
Turn on DCHECKs and other debugging code if dcheck_always_on is 1
...
When compiling with the macro DCHECK_ALWAYS_ON defined, DCHECKs and
supporting code gets compiled and enabled.
This increases test coverage for chromium release buildbots
BUG=v8:3731
R=jkummerow@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/760213005
Cr-Commit-Position: refs/heads/master@{#25701}
2014-12-08 09:26:16 +00:00
adamk
1988251044
Revert of Optimize add/set/delete operations for string keys in Maps and Sets (patchset #1 id:1 of https://codereview.chromium.org/777663003/ )
...
Reason for revert:
Deopt fuzzer reports that something's still broken, reverting until
I can create a minimal repro.
Original issue's description:
> Optimize add/set/delete operations for string keys in Maps and Sets
>
> This was previously landed in commit 66e2f60
, but failed the
> collections mjsunit test with --deopt-every-n=1 due to a typo
> in the shrinking code. This patch corrects and simplifies the
> shrinking logic, and the tests now pass.
>
> R=dslomov@chromium.org
>
> Committed: 8599f5f047
TBR=dslomov@chromium.org
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/742353006
Cr-Commit-Position: refs/heads/master@{#25696}
2014-12-05 22:25:11 +00:00
Adam Klein
8599f5f047
Optimize add/set/delete operations for string keys in Maps and Sets
...
This was previously landed in commit 66e2f60
, but failed the
collections mjsunit test with --deopt-every-n=1 due to a typo
in the shrinking code. This patch corrects and simplifies the
shrinking logic, and the tests now pass.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/777663003
Cr-Commit-Position: refs/heads/master@{#25695}
2014-12-05 21:04:00 +00:00
ulan
35ff259b63
Refactor Map::ConstructionCount.
...
This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.
Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive.
Review URL: https://codereview.chromium.org/767253002
Cr-Commit-Position: refs/heads/master@{#25689}
2014-12-05 15:28:22 +00:00
adamk
13fd4a529a
Revert of Optimize add/set/delete operations for string keys in Maps and Sets (patchset #5 id:70001 of https://codereview.chromium.org/773993002/ )
...
Reason for revert:
Caused test failures in mjsunit/es6/collections with --deopt-every-n-times=1
Original issue's description:
> Optimize add/set/delete operations for string keys in Maps and Sets
TBR=dslomov@chromium.org ,arv@chromium.org
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/777233003
Cr-Commit-Position: refs/heads/master@{#25670}
2014-12-04 21:37:24 +00:00
adamk
66e2f60bf9
Optimize add/set/delete operations for string keys in Maps and Sets
...
Review URL: https://codereview.chromium.org/773993002
Cr-Commit-Position: refs/heads/master@{#25668}
2014-12-04 20:07:54 +00:00
adamk
34d9be2e58
Optimize non-mutation Map and Set operations for String keys
...
Review URL: https://codereview.chromium.org/757143002
Cr-Commit-Position: refs/heads/master@{#25625}
2014-12-02 23:06:55 +00:00
ulan
2ac522ab15
Reland parts of 'Use weak cells in map checks in polymorphic ICs'
...
This relands macroassembler instructions and weak cell caching and
does not include parts that caused "Linux ASan LSan" test failures.
BUG=v8:3663
LOG=N
Review URL: https://codereview.chromium.org/764003003
Cr-Commit-Position: refs/heads/master@{#25615}
2014-12-02 14:25:26 +00:00
machenbach
d9c83f6bd0
Revert of Use weak cells in map checks in polymorphic ICs. (patchset #8 id:140001 of https://codereview.chromium.org/753993003/ )
...
Reason for revert:
[Sheriff] Speculative revert for breaking chromium asan (roll blocker):
http://build.chromium.org/p/client.v8/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/1683
Original issue's description:
> Use weak cells in map checks in polymorphic ICs.
>
> BUG=v8:3663
> LOG=N
TBR=mvstanton@chromium.org ,akos.palfi@imgtec.com,weiliang.lin@intel.com,ulan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3663
Review URL: https://codereview.chromium.org/771033003
Cr-Commit-Position: refs/heads/master@{#25597}
2014-12-02 08:17:05 +00:00
ulan
45a36948e1
Use weak cells in map checks in polymorphic ICs.
...
BUG=v8:3663
LOG=N
Review URL: https://codereview.chromium.org/753993003
Cr-Commit-Position: refs/heads/master@{#25581}
2014-12-01 10:41:14 +00:00
halton.huo
82d0f800a2
Fix clang++ warnings on -Wtautological-constant-out-of-range-compare
...
BUG=v8:3730
LOG=N
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/750093003
Cr-Commit-Position: refs/heads/master@{#25579}
2014-12-01 09:17:32 +00:00
dslomov
65aa17b9c3
harmony-classes: Implement 'super(...)' call syntactic restriction.
...
R=rossberg@chromium.org ,arv@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/766663003
Cr-Commit-Position: refs/heads/master@{#25555}
2014-11-28 04:08:58 +00:00
caitpotter88
93cd816c07
Make TemplateLiteral hashing algorithm more memory efficient
...
Previously, a separate string to be hashed (in order to help determine the need to
use a cached Template Call Site) was built up by joining UTF8 spans within a template.
Now, the hash key is generated from the original spans, removing the need to allocate a new
buffer and copy bytes into it.
BUG=
Review URL: https://codereview.chromium.org/765473006
Cr-Commit-Position: refs/heads/master@{#25549}
2014-11-27 15:48:01 +00:00
dcarney
50ef0690b2
Add interceptor support for symbols
...
a revival of https://codereview.chromium.org/467013003
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/760883002
Cr-Commit-Position: refs/heads/master@{#25537}
2014-11-27 10:21:39 +00:00
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
vegorov@chromium.org
f42f4b6490
Move kGroupCount out of DependencyGroup enum.
...
BUG=
R=svenpanne@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/488993004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 15:41:09 +00:00
mvstanton@chromium.org
983aa69aa1
Introduce two new symbols for vector based ICs.
...
Vector based load ics need a premonomorphic and generic symbol.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/505763002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 15:17:06 +00:00
verwaest@chromium.org
79b539877e
Minor LookupIterator cleanups
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/480283003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 11:31:38 +00:00
jarin@chromium.org
d8295050d2
Fix deoptimization address patching in Turbofan to use safepoints.
...
Since the deopt patch address needs to be available during GC to
resolve safepoints, we need to move it to the code object (instead of
the deoptimization input data) - accessing a separate fixed array
is not safe during GC. This CL adds a deoptimization_pc field to
each safepoint. The fields points to the deoptimization block.
The CL also fixes wrong register allocator constraints for
frame states on calls. These should always live on the stack
because registers are not preserved during a call.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/504493002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 07:02:19 +00:00
verwaest@chromium.org
37bf29e7e2
Change return-type of SetDataProperty to Handle.
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/494733005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 11:48:52 +00:00
verwaest@chromium.org
3baab5e688
Rewrite StoreIC handling using the LookupIterator. Continued from patch 494153002
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/478043006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 11:38:21 +00:00
dslomov@chromium.org
22d5ceb1f2
Implement Function.prototype.toMethod.
...
R=arv@chromium.org , verwaest@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/475423003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-21 12:39:33 +00:00
verwaest@chromium.org
b29040a3f6
Get rid of last non-JSReceiver::Lookup usage of LookupOwn
...
BUG=
Review URL: https://codereview.chromium.org/489063002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 16:25:40 +00:00
verwaest@chromium.org
26d72d5024
Get rid of GetLazyValue and clients.
...
This breaks fetching name of the constructor property of "Object"-labeled values in the heap-snapshot-generator until that's handlified and can be moved over to the LookupIterator.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/480823004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 10:37:23 +00:00
verwaest@chromium.org
1a8bed477e
Use LookupIterator to transition to accessors
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/490533002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 17:02:04 +00:00
verwaest@chromium.org
f268f02092
Get rid of LookupRealNamedProperty and LookupRealNamedPropertyInPrototypes and update clients
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/481043002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 14:58:41 +00:00
vegorov@chromium.org
948a0dea44
When marking dependent code for deoptimization print the group that is being deoptimized.
...
Otherwise it is impossible to figure out from the --trace-deoptimization output what is going on.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/467183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 10:56:49 +00:00
verwaest@chromium.org
5598348272
Revert "Get rid of dead version of GetNormalizedProperty"
...
(Doh, landed too early)
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/487163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 08:14:01 +00:00
verwaest@chromium.org
c70ca1344a
Get rid of dead version of GetNormalizedProperty
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/481073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 07:09:41 +00:00
verwaest@chromium.org
84591db11a
Use LookupIterator in SetAccessor / DefineAccessor and remove "search_hidden_prototypes" from LookupOwn
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/468163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 15:08:14 +00:00
verwaest@chromium.org
604031af8b
Use LookupIterator for CompileLoadInterceptor and delete Object::Lookup
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/466283003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 15:03:13 +00:00
verwaest@chromium.org
6867595ce7
Rewrite DeleteProperty using the LookupIterator
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/468073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 14:46:38 +00:00
verwaest@chromium.org
41a970c5e7
Always assume SetOwnPropertyIgnoreAttributes to be CERTAINLY_NOT_FROM_KEYED
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/463963002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 14:38:44 +00:00
verwaest@chromium.org
e1575f8369
Remove the extensibility flag. Instead just rely on hidden_string as indication.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/466033002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 14:27:24 +00:00
verwaest@chromium.org
e61f727705
Rewriting SetOwnPropertyIgnoreAttributes using the LookupIterator
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/468493002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 14:26:30 +00:00
dslomov@chromium.org
65ae6e92ab
Parse 'super' keyword.
...
BUG=v8:3330
LOG=N
R=arv@chromium.org , marja@chromium.org
Review URL: https://codereview.chromium.org/480543002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 12:35:34 +00:00
dslomov@chromium.org
eebb61a3f9
Fix OrderedHashTabelIterator accessors.
...
They might be undefined for uninitialized iterators.
The rest of the code is ready for this eventuality.
R=arv@chromium.org , adamk@chromium.org
BUG=403292
LOG=N
Review URL: https://codereview.chromium.org/468813003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 10:24:19 +00:00
dslomov@chromium.org
d2fe3e68ea
Add "own" symbols support.
...
"Own" symbols are symbols that can only denote own properties of
objects.
R=hpayer@chromium.org , verwaest@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=23056
Review URL: https://codereview.chromium.org/464473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 15:28:20 +00:00
dslomov@chromium.org
119a90b869
Fix presubmit error.
...
No idea why they suddenly started to appear.
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/458743005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 22:17:19 +00:00
dslomov@chromium.org
dc4c277589
Revert "Add "own" symbols support."
...
This reverts commit r23056 for breaking Mac x64 test.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/460803003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 21:44:08 +00:00
dslomov@chromium.org
88f65f2c52
Add "own" symbols support.
...
"Own" symbols are symbols that can only denote own properties of
objects.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/464473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 18:59:38 +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
verwaest@chromium.org
a1f3f02415
Mark as prototype only after instantiating the function
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/447293002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 16:14:22 +00:00
mvstanton@chromium.org
7b9e24e3fb
Clean up IC tracing for CallICs.
...
CallICs have had some confused tracing, because the IC state is not
entirely captured by the installed code stub - it lives in the type
vector.
Change tracing to be able to use the vector state changes instead.
Introduced a DEFAULT state to be used by all vector-based ICs.
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/451643002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 15:33:14 +00:00
verwaest@chromium.org
5aaf1487da
Load constants from the DescriptorArray
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/442763002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 08:02:21 +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
11fb976bf4
Revert "Unbreak build with clang."
...
This reverts commit r22878 and fixes the actual bug instead.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/446573002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 14:19:22 +00:00
verwaest@chromium.org
fafa02ea52
Don't insert transitions between maps for prototypes.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/437953004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 15:12:01 +00:00
verwaest@chromium.org
1404664e34
Ensure prototypes always stay fast by turning them fast again after an operation that turned them slow
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/439243005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 15:06:28 +00:00
verwaest@chromium.org
f947eff31d
Keep function.prototype fast.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/437083004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 15:02:07 +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
yangguo@chromium.org
b22724e48b
Fix issue with storing 31-bit bitfield as Smi.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/428183003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-31 07:50:26 +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
verwaest@chromium.org
d07de6ed59
Encapsulate type in the PropertyHandlerCompiler
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/426633002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 10:09:10 +00:00
verwaest@chromium.org
f08d2690c6
Fix Object.freeze with field type tracking.
...
Keep the descriptor properly intact while update the field type.
BUG=v8:3458
LOG=y
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/424093002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-29 13:30:29 +00:00
yangguo@chromium.org
a8a02a51f1
Inline Math.fround in optimized code.
...
R=svenpanne@chromium.org
BUG=v8:3469
LOG=N
Review URL: https://codereview.chromium.org/425943002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-29 11:34:08 +00:00
verwaest@chromium.org
4a956ab1c2
Change Has* and Get*Attributes to return Maybe<*>, indicating possible exceptions.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/418383002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 18:32:11 +00:00
hpayer@chromium.org
a5b923eca9
Use heap iterator in store buffer when page was swept precisely.
...
BUG=
R=rmcilroy@chromium.org
Review URL: https://codereview.chromium.org/413693002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 10:45:37 +00:00
yangguo@chromium.org
88000d039f
Fix debugger-related issues in the code serializer.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/410883003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 08:27:04 +00:00
yangguo@chromium.org
ed04566cba
Correctly hook up back references to internalized strings in code deserializer.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/411483002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 07:16:32 +00:00
verwaest@chromium.org
3bba0204c0
Support setting named properties on non-JSObjects.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/407953002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-22 08:28:49 +00:00
verwaest@chromium.org
85bc602912
Reduce usage of StoreMode.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/409603002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 16:01:50 +00:00
verwaest@chromium.org
f9d631b4bf
Rename CurrentMapForDeprecated to TryUpdate, and introduce Map::Update which potentially deprecates
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/401243003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 15:59:05 +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
rossberg@chromium.org
8023c9f564
Implement basic code generation for arrow functions
...
Implements code generation for arrow functions by desugaring them into
a FunctionLiteral. For the moment, a normal FUNCTION_SCOPE is used, so
"this" and "arguments" behave as in normal functions. Implementing the
correct scoping rules is to be done later on.
BUG=v8:2700
LOG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/382893003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 09:58:01 +00:00
jkummerow@chromium.org
1211f606ae
Cache IC handlers on the prototype's map if possible
...
instead of on the receiver's map. Lazily overwrite cached handler if it is
identical to the handler that just missed.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/400523007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 13:50:21 +00:00
verwaest@chromium.org
7e29b64e27
Reimplement SetProperty using the LookupIterator
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/392243002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 13:47:25 +00:00
jochen@chromium.org
fe558594b9
Remove JSReceiver::GetPrototype and replace it with PrototypeIterator calls
...
BUG=none
R=verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/390323002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-17 09:44:37 +00:00
yangguo@chromium.org
d1333142e2
Ship ES6 Math functions.
...
R=rossberg@chromium.org
BUG=v8:2938
LOG=Y
Review URL: https://codereview.chromium.org/394833002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 14:00:15 +00:00
yangguo@chromium.org
a211a52a6e
Store builtin index on the builtin code object.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/395823002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 09:55:34 +00:00
yangguo@chromium.org
ef734e2686
Verify that source string matches serialized code.
...
R=mvstanton@chromium.org , vogelheim@chromium.org
Review URL: https://codereview.chromium.org/394793002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 06:59:14 +00:00
mstarzinger@chromium.org
ee51510674
Unify the IsShortcutCandidate predicate.
...
R=yangguo@chromium.org
BUG=v8:2803
LOG=N
Review URL: https://codereview.chromium.org/390193007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-15 09:19:22 +00:00
yangguo@chromium.org
fd57811644
Fix up internalized strings after deserializing user code.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/387343002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-15 08:46:47 +00:00
verwaest@chromium.org
6466ff39fb
Remove PropertyAttributes from SetProperty
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/390833003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 14:52:24 +00:00
jochen@chromium.org
712957548d
Unify LookupIterator::GetRoot and Objects::GetRootMap
...
BUG=none
R=verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/388193002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 10:54:24 +00:00
jochen@chromium.org
168742b81a
Introduce a PrototypeIterator class and use it for prototype access
...
The new pattern is that we first get the map of the root of the
prototype chain using Object::GetMapRoot() and then walk up the
prototype chain using Map::prototype().
BUG=???
R=verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/376233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 07:19:49 +00:00
hpayer@chromium.org
0b38ffaca8
Revert "Precisely sweeping of scan-on-scavenge pages."
...
BUG=
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/387483002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 12:22:01 +00:00
yurys@chromium.org
3994880715
Support ES6 Map and Set in heap profiler
...
Added special handling for Map and Set in the heap snapshot generator.
Extracted common base type from JSMap/JSSet similar to JSWeakMap/JSWeakSet.
After handling collection specific properties all collections are processed as regular JSObject to make sure all regular properties set on them are present in the heap snapshot.
BUG=v8:3368
LOG=Y
R=alph@chromium.org , rossberg@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=22311
Review URL: https://codereview.chromium.org/373183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 10:54:47 +00:00
yurys@chromium.org
3b2511ed4a
Revert "Support ES6 Map and Set in heap profiler"
...
This reverts commit 47f86e067f
due to some weird (likely unrelated) compilation errors.
BUG=v8:3368
TBR=rossberg
Review URL: https://codereview.chromium.org/380153002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 08:45:45 +00:00
yurys@chromium.org
47f86e067f
Support ES6 Map and Set in heap profiler
...
Added special handling for Map and Set in the heap snapshot generator.
Extracted common base type from JSMap/JSSet similar to JSWeakMap/JSWeakSet.
After handling collection specific properties all collections are processed as regular JSObject to make sure all regular properties set on them are present in the heap snapshot.
BUG=v8:3368
LOG=Y
R=alph@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/373183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 07:24:52 +00:00
adamk@chromium.org
05463c4906
Avoid unnecessary hashing in OrderedHashTable
...
Add an overload of OrderedHashTable::FindEntry that takes
a hash along with the key to allow callsites which need to
re-use the hash (such as Add()) to avoid recomputing it.
On my Macbook this results in improvements on the Collections
microbenchmarks:
Map-Collections: +4%
Set-Collections: +5%
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/373323002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 16:19:53 +00:00
dusan.milosavljevic@rt-rk.com
a0f6878a06
Add mips64 port.
...
Summary:
- Changes in common code are mainly boilerplate changes,
gyp and test status files updates.
- On mips64 simulator all tests pass from all test units.
- Current issues: mjsunit JS debugger tests fail randomly on HW in release mode.
Corresponding tests are skipped on HW.
- Skipped tests on mips64: test-heap/ReleaseOverReservedPages, mjsunit/debug-*
TEST=
BUG=
R=danno@chromium.org , plind44@gmail.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/371923006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:08:26 +00:00
rmcilroy@chromium.org
ae6496e6ea
[Arm]: Optimize ConstantPoolBuilder::Populate code by minimizing calls to OffsetOfElementAt
...
Calling OffsetOfElementAt becomes expensive when compiling functions with many
constant pool entries. This was causing a regression in MandreelLatency due
to the time spent populating the constant pool array for large compiled
functions.
This change avoids calling OffsetOfElementAt for each entry, and instead keeps
track of the current offsets in ConstantPoolBuilder::Populate. This gives the
following improvements on a Nexus 5:
Inline CP | OOL CP (before CL) | OOL CP (after CL)
Mandreel: 4305 | 3961 | 4120
MandreelLatency: 2298 | 1198 | 1994
Octane Score: 5197 | 4982 | 5152
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/376973002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 09:08:37 +00:00
hpayer@chromium.org
ac8b636756
Reland "Precisely sweep scan on scavenge pages and use heap iterator to iterate over them."
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/377863003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:44:45 +00:00
jkummerow@chromium.org
d7ecf0e428
Fix build (solve OBJECT_PRINT dependency)
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/373003004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:43:20 +00:00
verwaest@chromium.org
cef7b20ec0
Only create arguments-maps in the bootstrapper, remove now obsolete ValueType flag.
...
TBR=dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/375503008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 13:27:37 +00:00
dslomov@chromium.org
7050e6fa06
Revert "Only create arguments-maps in the bootstrapper, remove now obsolete ValueType flag."
...
This reverts commit r22240 for breaking tests on Linux.
Revert "Remove SetOwnPropertyIgnoreAttribute uses from the bootstrapper"
This reverts commit r22241 for breaking tests on Linux.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/371913002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 13:12:29 +00:00
verwaest@chromium.org
1ef7582e7e
Only create arguments-maps in the bootstrapper, remove now obsolete ValueType flag.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/358363003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 12:21:01 +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
rmcilroy@chromium.org
40af47d46a
[Arm]: Enable use of extended out-of-line constant pool for Arm.
...
- Adds support to the Arm assembler to use extended constant pools.
- Update (set_)target_address_at to support extended constant pool load
updates.
- Replace Operand::is_single_instruction with Operand::instructions_required
Due to the fact that different constant pool load types require different
numbers of instructions.
- Various cleanups of ConstantPoolBuilder to cleaner integration of the
extended constant pool building.
- Update GetRelocatedValue such that offsets to both map_check and bool_load
are explicitly provided, rather than location of bool_load being inferred
based on map_check, since the code inbetween is no longer of a predictable
size.
- Update MacroAssembler::GetRelocatedValueLocation() to add support for
getting a value from an extended constant pool entry.
- Update Debug::SetAfterBreakTarget() to use target_address_from_return_address
when checking for debug breaks at constant pool load points.
- Change ConstantPoolIterateBody to iterate over both heap and code pointer in
the small section before moving onto the extended section, to work around the
requirement of the serializer that pointers are iterated in-order.
- Increase old_pointer_space SizeOfFirstPage() to offset the fact that constant
pools are now in the old pointer space (rather than code).
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/356393003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-03 17:01:14 +00:00
jkummerow@chromium.org
dfa8df2fdd
Fix deopt reason printing to print stub failure reason with --trace-stub-failures --code-comments
...
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/369843002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-03 11:47:31 +00:00
ishell@chromium.org
2fba190240
One of the fast cases in JSObject::MigrateFastToFast() should not be taken if the number of fields did not change.
...
BUG=chromium:390918
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/363073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 19:10:19 +00:00
verwaest@chromium.org
a1dd1a262c
Revert "Remove special ExecutableAccessorInfo handling based on flag"
...
Temporarily reverting until we figure out how to handle the API cases that use accessors to lazily compute values.
dataAttributeGetterCustom in V8MessageEventCustom (at least) overwrites itself with the computed value using ForceSet. We can either force such clients to first use ForceDelete before caching, use some other caching mechanism; or provide an API for lazily computed properties.
TBR=dcarney@chromium.org
BUG=
Review URL: https://codereview.chromium.org/365903005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 16:59:04 +00:00
verwaest@chromium.org
2350d46146
Remove special ExecutableAccessorInfo handling based on flag
...
This additionally removes special "prototype" handling for O.o, since it's broken; and added test.
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/368853003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 15:28:29 +00:00
yangguo@chromium.org
a481d753d0
Stack traces exposed to Javascript should omit extensions.
...
R=marja@chromium.org
BUG=v8:311
LOG=Y
Review URL: https://codereview.chromium.org/363893003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 13:36:29 +00:00
marja@chromium.org
7717f2366f
Handle "//# sourceURL" comments in the Parser instead of the JS.
...
BUG=v8:2948
LOG=N
R=svenpanne@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/316173002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 07:01:31 +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
verwaest@chromium.org
26eae0c429
Clean up the global object naming madness.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/352173006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-01 12:12:34 +00:00
verwaest@chromium.org
6ff2a77364
Wrap InitializeProperty around SetOwnPropertyIgnoreAttributes and switch over uses
...
This is a step in the direction of disentangling all uses of SetOwnPropertyIgnoreAttributes so we can provide a more specific implementation for those usecases, and reduce the capabilities of those clients, avoiding subtle bugs.
InitializeProperty only supports adding properties to extensible objects that do not contain the property yet. JSGlobalProxies cannot have properties themselves, so are not supported either.
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/352813002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 13:48:57 +00:00
jochen@chromium.org
a4506cd3f2
Move platform abstraction to base library
...
Also split v8-core independent methods from checks.h to base/logging.h and
merge v8checks with the rest of checks.
The CPU::FlushICache method is moved to CpuFeatures::FlushICache
RoundUp and related methods are moved to base/macros.h
Remove all layering violations from src/libplatform
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/358363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 13:25:46 +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
mstarzinger@chromium.org
b7d3d51a62
Remove kDontInline and simplify compiler hints.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/359733004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 08:59:23 +00:00
yangguo@chromium.org
a2d15ce518
Compile optimized code with active debugger but no break points.
...
R=ulan@chromium.org
BUG=386492
LOG=Y
Review URL: https://codereview.chromium.org/356713004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 06:32:51 +00:00
danno@chromium.org
8313c523b3
Optimize Map/Set.prototype.forEach
...
Instead of using an iterator result object and an entries array
(for Map) we introduce a new runtime function that uses an array
as an out param.
On the Map ForEach perf test this leads to a 2.5x performance
improvement. On the overall Map and Set tests this leads to a 18%
and 13% improvement respectively.
BUG=None
LOG=Y
R=danno@chromium.org
Review URL: https://codereview.chromium.org/355663002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 00:40:45 +00:00
mstarzinger@chromium.org
8a35e9ce47
Drop obsolete dont_optimize compiler hint.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/354813003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:12:21 +00:00
ishell@chromium.org
80e1bf42e5
More Map methods moved to private part.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/350023002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 15:56:36 +00:00
ishell@chromium.org
ae1aaf7c76
Making MigrateToMap() a single bottleneck for all migrations except slow-to-fast case.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/346743005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 15:28:29 +00:00
svenpanne@chromium.org
52fa41c3df
Make Object::IsFoo const.
...
Removed a few useless const_casts on the way.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/351573002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 09:47:25 +00:00
yangguo@chromium.org
438f49a322
Do not eagerly update allow_osr_at_loop_nesting_level.
...
Having debug break points prevents OSR. That causes
allow_osr_at_loop_nesting_level and the actually patched state
to go out of sync.
R=jkummerow@chromium.org
BUG=387599
LOG=Y
Review URL: https://codereview.chromium.org/346223007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 09:31:30 +00:00
ishell@chromium.org
f73e033be7
Map::MigrateToMap() now supports fast case (transition from a map that has run out of property space).
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/347413002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 14:23:25 +00:00
ishell@chromium.org
d2f229bf9f
Several methods moved from JSObject to Map.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/349203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 13:46:49 +00:00
alph@chromium.org
f61854fe0a
Support LiveEdit on Arm64
...
BUG=368580
LOG=Y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/339663007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 13:20:26 +00:00
rmcilroy@chromium.org
1b080a76c1
[Arm] Various cleanups to the Arm assembler backend.
...
A couple of cleanups to the Arm backend to enable support of extended
OOL constant pools in a following CL.
- Remove instruction pattern extern const's and replace their use with IsXXX()
functions.
- Do calculation of the target address of a load from constant pool in one
place.
- A couple of other small cleanups.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/317653003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 11:27:24 +00:00
verwaest@chromium.org
bd5f13ebc3
Remove specialized access checks and overwrites altogether. They are already handled by GetOwnPropertyAttributes (and GetPropertyAttributesWithFailedAccessChecks)
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/331693006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 09:11:45 +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
svenpanne@chromium.org
996eed315e
Make our FOO::cast methods const.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/347073003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 08:51:13 +00:00
plind44@gmail.com
b6b57605ed
MIPS: Fix big-endian after r21774/r21803.
...
Fix big-endian ordering of InstanceType and BitField by always loading
the pair as a 16-bit value, even in the API accessor. Clean up some
assertions.
R=danno@chromium.org , mtbrandy@gmail.com
Review URL: https://codereview.chromium.org/334403003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 23:02:36 +00:00
palfia@homejinni.com
57d0b53eed
MIPS: Support LiveEdit.
...
Port r21895 (210f7aa)
BUG=368580
LOG=Y
R=jkummerow@chromium.org , palfia@homejinni.com
Review URL: https://codereview.chromium.org/349703002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 20:52:57 +00:00
svenpanne@chromium.org
dda110fd77
Make object accessors more const-correct.
...
Getting closer to making our IsFOO and FOO::cast methods const-correct...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/349623002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 10:31:17 +00:00
alph@chromium.org
969759fd3f
Support LiveEdit on ARM
...
BUG=368580
LOG=Y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/344573004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 09:41:14 +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
dcarney@chromium.org
bd3f8a524e
Revert "Optimize Function.prototype.call"
...
This reverts commit r21840.
R=danno@chromium.org
LOG=y
BUG=chromium:385565
Review URL: https://codereview.chromium.org/347573002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-18 14:04:41 +00:00
verwaest@chromium.org
7005abf03b
Optimize Function.prototype.call
...
- May inline the function, or call it directly, instead of going through call
- Supports arguments object escaping when it escapes to builtins (preparation for slice.call(arguments, ...) optimization)
- Both .call and .apply now support inlining when calling builtins indirectly
BUG=
R=verwaest@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/335683002
Patch from Petka Antonov <p.antonov@partner.samsung.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 12:52:23 +00:00
jkummerow@chromium.org
8334faa0e0
Allow all Names to be fast property names
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/329393005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 09:59:39 +00:00
verwaest@chromium.org
fd80653a4c
Rewrite GetPropertyAttribute to use the LookupIterator
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/321543004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 15:08:33 +00:00
danno@chromium.org
634cb5e8a1
Revert "Revert "Reland 21774: Generate KeyedLoadGeneric with Hydrogen""
...
This CL tickled an unrelated arm64 bug which was is fixed separately.
The MIPS port (originally landed 21784) is also included.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/331633002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 09:58:10 +00:00
danno@chromium.org
c17e79293b
Revert "Reland 21774: Generate KeyedLoadGeneric with Hydrogen"
...
Due to lingering arm64 failures in Test262
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/332663003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 07:38:49 +00:00
danno@chromium.org
905d777d8f
Reland 21774: Generate KeyedLoadGeneric with Hydrogen
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/57123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 21:44:50 +00:00
danno@chromium.org
006bdafecc
Revert 21774: "Generate KeyedLoadGeneric with Hydrogen"
...
Due to arm64 and GCMole failures
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/329253003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 16:33:44 +00:00
danno@chromium.org
3b9039abc3
Generate KeyedLoadGeneric with Hydrogen
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/57123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 14:56:38 +00:00
verwaest@chromium.org
bb2b08b194
Implement LookupIterator designed to replace LookupResult
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/314953006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 09:59:14 +00:00
danno@chromium.org
7c56c0e864
Reland 21720: Introduce FieldIndex to unify and abstract property/field offset
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/300283002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-10 14:01:08 +00:00
bmeurer@chromium.org
0fcd89161b
Fix invalid attributes when generalizing because of incompatible map change.
...
BUG=382143
LOG=y
TEST=mjsunit/regress/regress-382143
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/324933003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-10 12:24:54 +00:00
danno@chromium.org
ec57abdaa7
Revert 21720: "Introduce FieldIndex to unify and abstract property/field offset"
...
Due to assorted failures
R=mstarzinger@chromium.org
TBR=mstarzginer@chromium.org
Review URL: https://codereview.chromium.org/329463005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-10 09:00:10 +00:00
danno@chromium.org
ffc4ad0697
Introduce FieldIndex to unify and abstract property/field offset
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/300283002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-06 14:05:10 +00:00
jochen@chromium.org
3d882db26a
Drop unused Object::GetMarkerMap method
...
R=verwaest@chromium.org
BUG=none
LOG=n
Review URL: https://codereview.chromium.org/317373002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-06 13:54:08 +00:00
rmcilroy@chromium.org
97c962c255
Add support for extended constant pool arrays.
...
This CL adds support for ConstantPoolArrays which contain an extended section.
This will be used to enable larger constant pools than can be addressed by a
single ldr with immediate offset instruction (which has a limit of a 4KB range).
Extended constant pools will have a small section, which is addressable via a
single ldr instruction, and an extended section, which will require a multi-
instruction sequence to load from.
Currently, no code uses the extended ConstantPoolArray's - this change will
be made in a followup CL.
A number of changes are made to the ConstantPoolArray object in order to
support this:
- Small section layout is now entirely defined by the small layout bitmaps.
- The ConstantPoolArray no longer extends FixedArrayBase since the length
field is not useful for extended layouts.
- Enums are used to represent the type of an entry and the layout section.
- An iterator can be used to iterate through all elements of a given type.
- A number of tests were added for these features.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/304143002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 16:22:10 +00:00
ishell@chromium.org
55443af648
Fixed lint errors caused by "runtime/references" rule (Is this a non-const reference?) and the rule itself is restored.
...
BUG=v8:3326
LOG=N
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/314723002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 15:45:38 +00:00
hpayer@chromium.org
5a1364a588
Deopt maybe tenure allocation sites when semi-space is maximum size.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/307363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 11:59:47 +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
hpayer@chromium.org
b8c3ee40ab
Tenure allocation sites only when semi-space is maximum size.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/309623007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 07:55:38 +00:00
bmeurer@chromium.org
2a2874b9c3
Inline fast path for Array.indexOf() and Array.lastIndexOf().
...
TEST=mjsunit/array-indexing
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/308793012
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 04:01:34 +00:00
adamk@chromium.org
2e2eb6a07e
Split Put into Put and Remove
...
No longer treat the hole as a removal. This removes one branch in
Put and cleans up the API.
BUG=None
LOG=Y
R=adamk@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/309663005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 00:53:16 +00:00
adamk@chromium.org
509a1a405c
ES6: Add support for values/keys/entries for Map and Set
...
This allows code like this:
var map = new Map();
map.set(1, 'One');
...
var iter = map.values();
var res;
while (!(res = iter.next()).done) {
print(res.value);
}
BUG=v8:1793
LOG=Y
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/259883002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 00:34:01 +00:00
yangguo@chromium.org
19c71f9e47
Some more debugger-related refactorings.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/297303006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 12:51:19 +00:00
verwaest@chromium.org
60a71d8a8c
Remove PROHIBITS_OVERWRITING as it is subsumed by non-configurable properties.
...
v8::DontDelete is set for Unforgeable properties, so just not setting PROHIBITS_OVERWRITING should be enough.
The secondary "feature" of not allowing accessors to be installed in extending objects is incorrect and confusing, given that it only applies to accessors but not to regular properties:
Object.defineProperty({__proto__:window}, "location", { value: 10 })
works where
Object.defineProperty({__proto__:window}, "location", { get: function() {} })
doesn't work.
LOG=y
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/306203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 11:02:06 +00:00
verwaest@chromium.org
92022c1175
Clean up (Get|Set)Property(Attributes)WithFailedAccessChecks
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/309653003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 10:59:11 +00:00
danno@chromium.org
8669cce70a
Fix lint complaints in objects.h
...
R=rossberg@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/304533007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 12:03:40 +00:00
mvstanton@chromium.org
8c54a373dd
Changing the attributes of a data property implemented with
...
ExecutableAccessorInfo turns the property into a field. Better
to keep it as a callback, and correctly deal with the changed
property attributes.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/262053011
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 09:58:27 +00:00
verwaest@chromium.org
6b712555dd
Cleanup GetPropertyWithCallback / SetPropertyWithCallback API
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/305513004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 09:29:27 +00:00
danno@chromium.org
6fa616ad73
Convert String array index/length hash to BitField
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/300023011
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 14:55:29 +00:00
jochen@chromium.org
276adeda1a
Replace STATIC_CHECK with STATIC_ASSERT.
...
It's just an alias, and STATIC_ASSERT is used way more often
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304553002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 13:43:29 +00:00
yangguo@chromium.org
1630b6d83c
Fix PathTracer.
...
When tracing, we abuse the map for marking, thereby mutating it.
FixedTypedArrayBase::size() uses the object's map, which causes crash.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/300753002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 13:05:11 +00:00
yangguo@chromium.org
620555b495
Do not break in native code (including non-builtin debugger code).
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/300773002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 12:21:40 +00:00
danno@chromium.org
621c7eb673
Convert ElementsKind into a BitField
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/306513002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 09:38:01 +00:00
bmeurer@chromium.org
683bc694ad
Skip write barriers in the fast case when setting up local context.
...
The FastNewContextStub always allocates in new space, so we don't
need to update the write barrier when copying the parameters to
the newly allocated context.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/297203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-26 08:13:09 +00:00
ishell@chromium.org
7c55f645d5
Cleanup after inobject slack tracking improvement.
...
1) %SetExpectedNumberOfProperties() function removed.
2) Obsolete SharedFunctionInfo::BeforeVisitingPointers() removed.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/289283018
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 12:55:57 +00:00
bmeurer@chromium.org
a56bbe9203
Avoid dynamic initial map check when inlining call-new.
...
This improves check elimination and removes a load plus
a map check for every inlined call-new.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/293223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 09:30:47 +00:00
ishell@chromium.org
4b9c03050a
Reland r21442 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/292183008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 08:52:05 +00:00
ishell@chromium.org
9f3183f76b
Revert "Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.""
...
This reverts r21442.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/292433016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 17:13:28 +00:00
ishell@chromium.org
00b8e6128f
Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/290993009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 16:22:23 +00:00
rossberg@chromium.org
06f746a576
Consistently say 'own' property
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/291153005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 15:27:57 +00:00
ishell@chromium.org
58932c6c44
Revert "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This reverts r21436.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/295933012
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 13:38:32 +00:00
ishell@chromium.org
4a47cc5f63
Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/283383006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 12:35:45 +00:00
ulan@chromium.org
e56594f10a
Fix Array.prototype.push and Array.prototype.unshift for read-only length.
...
BUG=
R=mstarzinger@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/279773002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 08:09:57 +00:00
yangguo@chromium.org
ab3afc5722
Reland "Prevent liveedit on or under generators with open activations"
...
The change relative to the previous CL is a logic change in
DropActivationsInActiveThreadImpl. The previous CL skipped the matcher
unless the frame was a JS frame; this was correct for
MultipleFunctionTarget but not for SingleFrameTarget.
I have not been able to reproduce the original failures on either
architecture (ia32 or x64; stack frame dropping is unsupported on other
architectures).
R=yangguo@chromium.org
LOG=N
TEST=mjsunit/harmony/generators-debug-liveedit.js
BUG=
Review URL: https://codereview.chromium.org/270283002
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 07:32:59 +00:00
adamk@chromium.org
9f86a91e76
Teach OrderedHashSet::Remove to report whether it actually removed anything
...
This avoids an unnecessary runtime call from Set.prototype.delete().
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/290733008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 12:16:47 +00:00
adamk@chromium.org
50f5a79590
Use SameValueZero for Map and Set
...
Instead of normalizing the keys we use SameValueZero for the actual
comparison.
BUG=v8:1622
LOG=Y
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/299703004
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 08:47:02 +00:00
adamk@chromium.org
70c3a714a1
ES6 Map/Set iterators/forEach improvements
...
This changes how Map/Set interacts with its iterators. When the
underlying table is rehashed or cleared, we create a new table (like
before) but we add a reference from the old table to the new table. We
also add an array describing how to transition the iterator from the
old table to the new table.
When Next is called on the iterator it checks if there is a newer table
that it should transition to. If there is, it updates the index based
on the previously recorded changes and finally changes itself to point
at the new table.
With these changes Map/Set no longer keeps the iterators alive. Also,
as before, the iterators keep the underlying table(s) alive but not the
actual Map/Set.
BUG=v8:1793
LOG=Y
R=mstarzinger@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/289503002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 14:22:05 +00:00
jkummerow@chromium.org
a3a5642097
Harden more runtime functions
...
BUG=chromium:372239
LOG=n
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/282493005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-12 15:30:00 +00:00