Commit Graph

16682 Commits

Author SHA1 Message Date
bmeurer@chromium.org
c0e047d53f Improve write barriers in optimized code.
Use a cheaper RecordWriteForMap() to update the
write barrier for maps. And skip the value check
in RecordWriteField() when we statically know that
the value is in new space (and therefore has "pointers
to here are interesting" flag set).

R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 10:59:11 +00:00
hpayer@chromium.org
8b1f83ada7 Rename new_space_dominator to dominator since dominators can also be in old space.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 10:40:36 +00:00
rossberg@chromium.org
396c169e7c Fix test
R=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 09:34:29 +00:00
jochen@chromium.org
55e65935c9 Fix compilation on win shared and mips
TBR=mvstanton@chromium.org
LOG=n
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:29:03 +00:00
ishell@chromium.org
b58a08d998 Fix PathTracer.
When tracing, we abuse the map for marking, thereby mutating it.
HeapObject::map() takes care of recovering unabused value.

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:28:38 +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
mvstanton@chromium.org
848a9af6b4 %ObjectFreeze needs to exclude non-fast-path objects.
ClusterFuzz will call it with sloppy arguments and similar cases.

BUG=380049
LOG=N
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 07:59:36 +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
mvstanton@chromium.org
adeaedf547 When flag --nouse-osr is set, don't allow osr from hidden runtime calls.
BUG=379770
R=yangguo@chromium.org
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 07:45:40 +00:00
marja@chromium.org
048ee40e3d Minor cleanups & trivial refactoring related to Ast.
1) Literal::IsNull, IsTrue and IsFalse were dead code, and not needed.
2) No need to use the node type constants outside the Ast; there is IsSomeNodeType().
3) AsSomeNodeType() != NULL -> IsSomeNodeType().

R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 07:40:43 +00:00
Jacob.Bramley@arm.com
32679b57e9 ARM64: Fix ASM_LOCATION and the like.
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 07:37:16 +00:00
jochen@chromium.org
1e3fba1add Add collection-iterator.js to BUILD.gn after r21615
LOG=n
BUG=none
TBR=adamk@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 07:26:07 +00:00
jochen@chromium.org
8e05308e6c First cut at run_mksnapshot action for gn
BUG=none
R=brettw@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 06:50:46 +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
weiliang.lin@intel.com
1d57c2d65f X87: Don't push eax/rax before calling Runtime_Abort
Additionally delete the unused Throw(BailoutReason)

Port r21582 (41dd40b)

BUG=
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 13:53:21 +00:00
weiliang.lin@intel.com
5cb7e512ec X87: Simplify known successor block lowering.
Port r21589 (a9f3228)

BUG=
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 13:50:59 +00:00
plind44@gmail.com
e4215c6a54 MIPS: Simplify known successor block lowering.
Port r21589 (a9f3228)

BUG=
R=bmeurer@chromium.org

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 13:40:39 +00:00
mstarzinger@chromium.org
d6500b6cf7 Reland "Make 'name' property on functions configurable."
R=rossberg@chromium.org
BUG=v8:3333
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 13:35:26 +00:00
Jacob.Bramley@arm.com
0c8cd46302 ARM64: Restructure the L1 deopt jump table.
This restructures the L1 deopt jump table so that the base address of
the L2 table is only loaded once. This significantly reduces the size of
the generated code because only one big immediate needs to be loaded.

The total size of all L1 deopt tables generated during Octane is almost
halved in size, from about 1105kB to 584kB.

BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 13:12:12 +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
bmeurer@chromium.org
77130247ac Handle HCheckInstanceType and HIsStringAndBranch in check elimination.
R=ishell@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=21593

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 12:17:05 +00:00
yangguo@chromium.org
97e550985e Release execution lock before dispatching interrupt handling.
R=yurys@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 12:07:37 +00:00
yangguo@chromium.org
f1357a21d2 Some debugger-related clean-ups and renamings.
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 11:41:50 +00:00
weiliang.lin@intel.com
2f04631d9e X87: use more suitable build flag
BUG=
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 11:39:44 +00:00
weiliang.lin@intel.com
9a1fe563b9 X87: Remove check for SAHF support in ia32
port r21422 (38edcd2)

Original commit message:
On ia32, SAHF is guaranteed. It's only necessary to probe for it on x64.

BUG=
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 11:37:50 +00:00
weiliang.lin@intel.com
14e244a9b4 X87: Refactor CallICStub to use a different stub for each customization.
port r21564 (a39968c)

Original commit message:
This gives us much more room to customize on different functions, by
using MajorKey to differentiate them.

BUG=
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 11:34:45 +00:00
weiliang.lin@intel.com
eab27d69b6 X87: Move LiveEdit-related code.
port r21559 (dfd0cf8)

BUG=
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 11:31:32 +00:00
jochen@chromium.org
3ea92dead3 Update gn config after r21578
TBR=bmeurer@chromium.org
LOG=n
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 11:10:03 +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
bmeurer@chromium.org
dae3413cc4 Revert "Handle HCheckInstanceType and HIsStringAndBranch in check elimination."
This reverts commit r21593 for breaking the Webkit tests.

TBR=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 09:20:19 +00:00
bmeurer@chromium.org
1c17e61629 Handle HCheckInstanceType and HIsStringAndBranch in check elimination.
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 08:51:25 +00:00
bmeurer@chromium.org
7d14f34a1b Inline Array.shift() fast path instead of using a code stub.
TEST=mjsunit/array-shift,mjsunit/array-shift2,mjsunit/array-shift3
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 07:02:24 +00:00
bmeurer@chromium.org
f600133031 Fix HPushArguments instruction.
Use the zone that is passed to New() and fix implementation of
HPushArguments::AddInput() to match HPhi::AddInput().

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 06:42:56 +00:00
yangguo@chromium.org
50cba82cb9 Remove unused debug API.
R=yurys@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 06:22:09 +00:00
bmeurer@chromium.org
a52f569f93 Simplify known successor block lowering.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 05:33:35 +00:00
jkummerow@chromium.org
2232c05b32 BuildNumberToString: Check for undefined keys in the cache
BUG=chromium:368114
LOG=y
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-31 14:11:48 +00:00
jkummerow@chromium.org
f6a249c6d0 Inlined optimized runtime functions: expose Runtime versions for direct testing, skip Hydrogen versions
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-30 17:07:38 +00:00
jkummerow@chromium.org
e82b97ab40 Harden Runtime_FunctionSetPrototype, Isolate::PrintStack
BUG=chromium:377209
LOG=n
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-30 17:04:40 +00:00
bmeurer@chromium.org
5cd009a004 HRor and HSar can deoptimize.
BUG=v8:3359
LOG=y
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-30 16:12:25 +00:00
verwaest@chromium.org
f4aa3ab03d Don't push eax/rax before calling Runtime_Abort
Additionally delete the unused Throw(BailoutReason)

BUG=
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-30 14:27:19 +00:00
rmcilroy@chromium.org
a8b2528d7d Fix typo in test/fuzz-natives/testcfg.py
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21581 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-30 09:31:44 +00:00
plind44@gmail.com
d877929e38 MIPS: Refactor HType to get rid of various hacks.
Port r21578 (dcf13aa)

Original commit message:
- Move HType to it's own file.
- Add HType::HeapObject and some other useful types.
- Get rid of the broken and useless HType::NonPrimitive.
- Introduce HType::FromType() to convert from HeapType to HType.
- Also add unit tests for HType.
- Fix types in Crankshaft.

BUG=
R=bmeurer@chromium.org

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-29 13:40:51 +00:00
weiliang.lin@intel.com
232ddd9756 X87: Refactor HType to get rid of various hacks.
port r21578 (dcf13aa)

Original commit message:
- Move HType to it's own file.
- Add HType::HeapObject and some other useful types.
- Get rid of the broken and useless HType::NonPrimitive.
- Introduce HType::FromType() to convert from HeapType to HType.
- Also add unit tests for HType.
- Fix types in Crankshaft.

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-29 13:11:55 +00:00
bmeurer@chromium.org
e9357a5e77 Refactor HType to get rid of various hacks.
- Move HType to it's own file.
- Add HType::HeapObject and some other useful types.
- Get rid of the broken and useless HType::NonPrimitive.
- Introduce HType::FromType() to convert from HeapType to HType.
- Also add unit tests for HType.
- Fix types in Crankshaft.

R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-29 04:13:50 +00:00
rafaelw@chromium.org
74f92f21da Simplify, speed-up correct-context ObjectObserve calls
The original patch which ensured that Object.observe did allocations in the correct context regressed performance about 12%. This patch gets back most of that (about 11%) by simply returning the correct function which is then directly callable from JS, rather than by making the call from the runtime function. A side-effect is that their implementation is shorter.

LOG=Y
BUG=NONE
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 19:13:41 +00:00
adamk@chromium.org
20eeff9ae4 Allow microtasks to throw exceptions and handle them gracefully
If the embedder calls V8::TerminateExecution while we're running microtasks, bail out
and clear any pending microtasks.

All other exceptions are simply swallowed. No current Blink or V8 microtasks throw, this
just ensures something sane happens if another embedder decides to pass a throwing
microtask (or if ours unexpectedly throw due to, e.g., stack exhaustion).

BUG=371566
LOG=Y
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 18:40:04 +00:00
ishell@chromium.org
fdef9ac252 FastCloneShallowArrayStub should not be used it the length of the array is too big as it could eventually exceed the allowed size limit for manually folded allocations.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 16:00:52 +00:00