Commit Graph

3281 Commits

Author SHA1 Message Date
marja@chromium.org
61c9683d71 Add script streaming API.
Blink will use this API to stream script data into V8 as the scripts
load. During loading, V8 can already parse the scripts. They will be then
compiled and executed when the loading is complete.

BUG=
R=jochen@chromium.org, rossberg@chromium.org, svenpanne@chromium.org, yangguo@chromium.org

Review URL: https://codereview.chromium.org/366153002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 11:06:26 +00:00
bmeurer@chromium.org
bfa3884ae0 [turbofan] Machine operators are globally shared singletons.
TEST=compiler-unittests,cctest
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/547233003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 10:37:49 +00:00
yangguo@chromium.org
a311c26d4d Expect requiring access check on objects with hidden properties.
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/563723002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 09:48:56 +00:00
aandrey@chromium.org
95260f66d0 Fix crash in ScriptDebugServer::wrapCallFrames
The crash happens in DebugEventListener that gets called for an unhandled exception thrown by TryCatch.ReThrow().

In DevTools some parts of DebugEventListener are implemented in JavaScript, thus we should allow JavaScript execution while handling ReThrow exception in debugger.

BUG=411196
LOG=Y
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/553043002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 09:43:30 +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
ulan@chromium.org
9261c44fd4 Fix status file after r23840.
TBR=yangguo@chromium.org
BUG=

Review URL: https://codereview.chromium.org/557323004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 16:19: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
yangguo@chromium.org
d3af5b67d2 Fix JSReceiver::HasHiddenProperties wrt access-checked objects.
R=jkummerow@chromium.org
BUG=chromium:411877
LOG=N

Review URL: https://codereview.chromium.org/564443002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 12:31:13 +00:00
bmeurer@chromium.org
cf293f7780 [turbofan] Lower JSStoreProperty during JS typed lowering.
Note that we cannot yet emit a diamond here (patch is ready), because
the scheduler is still broken wrt. free floating control (seems related
although this diamond is not free floating).

TEST=cctest
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/557123005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 12:29:48 +00:00
bmeurer@chromium.org
6bb08db27e [turbofan] Next step towards shared operators.
TEST=compiler-unittests,cctest
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/555283004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 12:23:45 +00:00
mstarzinger@chromium.org
13f01e65c4 Enable typed pipeline for TurboFan.
R=danno@chromium.org

Review URL: https://codereview.chromium.org/552303003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 09:52:50 +00:00
mstarzinger@chromium.org
de0b213cf2 Switch inlining to use simplified instead of machine loads.
R=sigurds@chromium.org
TBR=bmeurer@chromium.org
TEST=cctest/test-run-inlining --turbo-types

Review URL: https://codereview.chromium.org/557253004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 09:48:03 +00:00
bmeurer@chromium.org
4f5b0911db Revert "Switch inlining to use simplified instead of machine loads.", "Fix size_t to int conversion compile error." and "Add copy support in inliner.".
This reverts commits r23813, r23805 and r23804 for Windows breakage.

TBR=mstarzinger@chromium.org,sigurds@chromium.org

Review URL: https://codereview.chromium.org/562543002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 06:39:25 +00:00
mstarzinger@chromium.org
947726a79c Switch inlining to use simplified instead of machine loads.
R=sigurds@chromium.org
TEST=cctest/test-run-inlining --turbo-types

Review URL: https://codereview.chromium.org/551413002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-09 15:55:47 +00:00
yangguo@chromium.org
8d6f9811da Do not force interrupt in test-debug/ProcessDebugMessagesThreaded.
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/557773002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-09 14:31:49 +00:00
bmeurer@chromium.org
bbd96b97e4 [turbofan] Add support for overflow add/sub to the MachineOperatorReducer.
TEST=base-unittests,compiler-unittests,cctest
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/555833002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-09 14:18:17 +00:00
sigurds@chromium.org
1f9215ba8d Add copy support in inliner.
Refactors JSGraph to ensure that the zone operators are created in
can be different from the Graph's zone.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/553873002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-09 13:20:09 +00:00
balazs.kilvady@imgtec.com
b9af36b1fd MIPS: Fix cctest/NaNs after r23767 "Replace our home-grown BitCast with bit_cast from Chrome/Google3".
BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/548283002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23779 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 16:14:21 +00:00
bmeurer@chromium.org
2bbeb652ee [turbofan] Fix the node matchers.
E.g. make sure that Int32Matcher matches only int32 constants, and
Float64Matcher matches only float64 constants.

Also remove the confusing CommonOperatorTraits, which are too easy
to use in a wrong way.

TEST=compiler-unittests,cctest
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/552653003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 09:16:11 +00:00
bmeurer@chromium.org
dab61bc310 Replace our home-grown BitCast with bit_cast from Chrome/Google3.
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/553843002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 09:11:11 +00:00
bmeurer@chromium.org
20db0ff315 Next base/macros.h cleanup step.
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/544043002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 04:44:22 +00:00
weiliang.lin@intel.com
6bbd2e0e0c X87: disable turbofan dependent test
BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/548433002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 14:31:41 +00:00
titzer@chromium.org
09dccec9f4 Platform-dependent turbofan tests.
R=jarin@chromium.org
BUG=

Review URL: https://codereview.chromium.org/541343003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 13:22:27 +00:00
bmeurer@chromium.org
99ccab81e2 [turbofan] Add MachineType to Phi.
TEST=cctest,compiler-unittests,mjsunit
R=mstarzinger@chromium.org, titzer@chromium.org

Review URL: https://codereview.chromium.org/545153002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 11:44:31 +00:00
bmeurer@chromium.org
65fa2b49da [turbofan] Fix cctest/test-graph-reducer/ReduceForward1.
TBR=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/542063003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 11:20:55 +00:00
bmeurer@chromium.org
5042b23b86 [turbofan] Get rid of the StructuredMacroAssembler.
R=titzer@chromium.org

Review URL: https://codereview.chromium.org/544053002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 08:48:41 +00:00
yangguo@chromium.org
2e80f58239 Introduce code stub constructors for stub keys.
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/542613003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 07:44:31 +00:00
mstarzinger@chromium.org
bb025c1ceb Remove overly complex MachineNodeFactory.
R=titzer@chromium.org

Review URL: https://codereview.chromium.org/543763002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 16:29:40 +00:00
jarin@chromium.org
b3b4e3eea5 Fix deoptimization of context.
We need to handle the case where the context was removed by dead code
elimination. In that case, we just use the context from the activation
(or from the inlined function if we are inlined).

For reference, here is the CL that introduced the bug: https://codereview.chromium.org/522873002

BUG=410566
LOG=N
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/542613002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 14:52:52 +00:00
mstarzinger@chromium.org
4539e9b936 Remove deprecated PrintableUnique.
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/543743002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 13:45:05 +00:00
balazs.kilvady@imgtec.com
8f59d82f8b MIPS: Disable turbofan dependent cctests after r23638.
BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/541693002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 12:34:47 +00:00
verwaest@chromium.org
3ef094402e Flatten property_kind into state. Add UNKNOWN as a state for dict-mode receivers
BUG=
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/540903002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 12:28:13 +00:00
titzer@chromium.org
da167d747f Disable slow type tests for now.
R=mstarzinger@chromium.org, neis@chromium.org
BUG=

Review URL: https://codereview.chromium.org/545453002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 12:19:19 +00:00
yangguo@chromium.org
5294179e4c Remove dead code for inline string hashing.
This has become obsolete since hydrogenized StringAdd.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/544613002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 12:15:09 +00:00
mstarzinger@chromium.org
51894ec36c Move StructuredMachineAssembler into cctest suite.
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/539903002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 10:23:51 +00:00
bmeurer@chromium.org
c8ffed8879 [turbofan] Make sure Operator is really immutable.
Make Operator const-correct in preparation for allocating sharing
Operators across different isolates (using LazyInstance).

TEST=cctest,compiler-unittests,mjsunit
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/539933002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 09:37:25 +00:00
bmeurer@chromium.org
b1eca2cea7 [turbofan] Properly delete nodes in the GraphReducer.
This is required to enable a value numbering reducer, which needs to be
able to recognize "dead nodes".

TEST=compiler-unittests,cctest
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/541643002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 09:22:10 +00:00
sigurds@chromium.org
f7d5558a7a Reland "Make FrameStates recursive (to be used for inlining).".
Reland fixes:
- Verifier is now aware of sentinel value for FrameState chains.

R=jarin@chromium.org

Review URL: https://codereview.chromium.org/534573002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 14:10:20 +00:00
verwaest@chromium.org
5941bb4e73 Never skip access checks in the lookup iterator
BUG=
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/536943002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 14:05:55 +00:00
mstarzinger@chromium.org
01b9f4e2d3 Lower simplified StringLessThan[OrEqual] to runtime call.
R=titzer@chromium.org
TEST=cctest/test-simplified-lowering/LowerStringOps_to_call_and_compare

Review URL: https://codereview.chromium.org/531093002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 12:43:41 +00:00
mstarzinger@chromium.org
3071a64f5f Fix typed lowering of JSToBoolean on number inputs.
R=titzer@chromium.org
TEST=cctest/test-js-typed-lowering/JSToBoolean_replacement

Review URL: https://codereview.chromium.org/533103002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 11:35:19 +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
paul.lind@imgtec.com
a08867f2ac MIPS: Disable cctest/test-simplified-lowering/LowerStringOps_to_call_and_wordeq because of turbofan after r23616.
BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/531853002

Patch from Balazs Kilvady <balazs.kilvady@imgtec.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 19:42:05 +00:00
mstarzinger@chromium.org
baf818b152 Lower simplified StringEqual to runtime call.
R=titzer@chromium.org
TEST=cctest/test-simplified-lowering/LowerStringOps_to_call_and_wordeq

Review URL: https://codereview.chromium.org/531763002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 13:26:52 +00:00
mstarzinger@chromium.org
9248f4d7d4 Lower simplified StringAdd to stub call.
R=titzer@chromium.org
TEST=cctest/test-simplified-lowering/LowerStringOps_to_calls

Review URL: https://codereview.chromium.org/530973002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 12:46:37 +00:00
bmeurer@chromium.org
db10bef4de [turbofan] First step of Operator refactoring.
- Real const-correctness
- Proper forward declarations instead of #include "src/v8.h"
- Flags for Operator properties.
- etc.

TEST=compiler-unittests,cctest
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/526313002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 11:36:55 +00:00
marja@chromium.org
7955937d31 Refactor Parser to make it usable on a background thread.
- Background Parsers cannot get the following data from Isolate (pass it to the
ctor instead): stack limit (background Parsers need a different stack limit),
UnicodeCache (background parsers need a separate UnicodeCache), hash seed
(Parser cannot access the Heap to get it). The Parser::Parse API won't change.

- Make the internalization phase (where Parser interacts with the heap) more
explicit. Previously, Parser was interacting with the heap here and there.

- Move HandleSourceURLComments out of DoParseProgram, so that background parsing
can use DoParseProgram too.

BUG=
R=rossberg@chromium.org

Review URL: https://codereview.chromium.org/527763002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 11:36:21 +00:00
jarin@chromium.org
a520e03442 Revert "Make FrameStates recursive (to be used for inlining)."
This reverts commit r23595.

TBR=sigurds@chromium.org
BUG=

Review URL: https://codereview.chromium.org/528963002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 11:28:40 +00:00
sigurds@chromium.org
7117cae25e Make FrameStates recursive (to be used for inlining).
- Changes FrameState node to require a 5th input
  (use undefined as sentinel).
- Adds outer_state pointer to FrameStateDescriptor.
- Instruction selection dumps dependencies of FrameState chain into the instruction.
- Code generator builds the translation for rec. FrameStates.
  (will require further integration tests)

R=jarin@chromium.org

Review URL: https://codereview.chromium.org/517323002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 10:49:27 +00:00
jarin@chromium.org
bb6cfbc416 Lazy deoptimization for comparisons in Turbofan.
BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/526953004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 10:38:31 +00:00