jochen@chromium.org [Mon, 2 Jun 2014 11:10:03 +0000 (11:10 +0000)]
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
verwaest@chromium.org [Mon, 2 Jun 2014 11:02:06 +0000 (11:02 +0000)]
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
verwaest@chromium.org [Mon, 2 Jun 2014 10:59:11 +0000 (10:59 +0000)]
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
bmeurer@chromium.org [Mon, 2 Jun 2014 09:20:19 +0000 (09:20 +0000)]
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
bmeurer@chromium.org [Mon, 2 Jun 2014 08:51:25 +0000 (08:51 +0000)]
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
bmeurer@chromium.org [Mon, 2 Jun 2014 07:02:24 +0000 (07:02 +0000)]
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
bmeurer@chromium.org [Mon, 2 Jun 2014 06:42:56 +0000 (06:42 +0000)]
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
yangguo@chromium.org [Mon, 2 Jun 2014 06:22:09 +0000 (06:22 +0000)]
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
bmeurer@chromium.org [Mon, 2 Jun 2014 05:33:35 +0000 (05:33 +0000)]
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
jkummerow@chromium.org [Sat, 31 May 2014 14:11:48 +0000 (14:11 +0000)]
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
jkummerow@chromium.org [Fri, 30 May 2014 17:07:38 +0000 (17:07 +0000)]
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
jkummerow@chromium.org [Fri, 30 May 2014 17:04:40 +0000 (17:04 +0000)]
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
bmeurer@chromium.org [Fri, 30 May 2014 16:12:25 +0000 (16:12 +0000)]
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
verwaest@chromium.org [Fri, 30 May 2014 14:27:19 +0000 (14:27 +0000)]
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
rmcilroy@chromium.org [Fri, 30 May 2014 09:31:44 +0000 (09:31 +0000)]
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
plind44@gmail.com [Thu, 29 May 2014 13:40:51 +0000 (13:40 +0000)]
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
weiliang.lin@intel.com [Thu, 29 May 2014 13:11:55 +0000 (13:11 +0000)]
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
bmeurer@chromium.org [Thu, 29 May 2014 04:13:50 +0000 (04:13 +0000)]
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
rafaelw@chromium.org [Wed, 28 May 2014 19:13:41 +0000 (19:13 +0000)]
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
adamk@chromium.org [Wed, 28 May 2014 18:40:04 +0000 (18:40 +0000)]
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
ishell@chromium.org [Wed, 28 May 2014 16:00:52 +0000 (16:00 +0000)]
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
rossberg@chromium.org [Wed, 28 May 2014 15:05:53 +0000 (15:05 +0000)]
Split Distributivity test
TBR=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
298253008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21572
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 28 May 2014 13:36:25 +0000 (13:36 +0000)]
Check that all properties are processed in NameDictionary::CopyEnumKeysTo.
BUG=372579
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
306663002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21571
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 28 May 2014 13:05:17 +0000 (13:05 +0000)]
Add new benchmark suite runner.
TEST=./tools/run_benchmarks.py benchmarks/v8.json
TEST=cd tools/unittests; python -m unittest run_benchmarks_test
Does not support custom results processors yet. Will implement that in a future CL.
BUG=374740
LOG=n
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
293023006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21570
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 28 May 2014 13:01:47 +0000 (13:01 +0000)]
Use non-copying sorting in test harness.
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
300873006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21569
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 28 May 2014 13:00:47 +0000 (13:00 +0000)]
Fix deopt fuzzer after adding a no_sorting flag.
BUG=
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
305643007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21568
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 28 May 2014 12:03:40 +0000 (12:03 +0000)]
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
jochen@chromium.org [Wed, 28 May 2014 11:48:55 +0000 (11:48 +0000)]
Add a dummy v8 target to BUILD.gn so we can depend on this from chrome
BUG=none
R=dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
300883003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21566
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Wed, 28 May 2014 11:45:09 +0000 (11:45 +0000)]
CallIC::PrintState() was incorrectly declared as V8_FINAL.
This broke the windows build.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
304633004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21565
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Wed, 28 May 2014 11:29:55 +0000 (11:29 +0000)]
Refactor CallICStub to use a different stub for each customization.
This gives us much more room to customize on different functions, by
using MajorKey to differentiate them.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
295383004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21564
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 28 May 2014 11:17:02 +0000 (11:17 +0000)]
Fix processing of partially initialized JSWeakCollection.
R=hpayer@chromium.org
BUG=v8:2070
LOG=N
Review URL: https://codereview.chromium.org/
300843009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21563
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 28 May 2014 11:00:11 +0000 (11:00 +0000)]
Free memory in the mock array buffer allocator.
Turns out ASAN and valgrind notice if you leak 0 allocated bytes.
R=jkummerow@chromium.org, jochen@chromium.org
Review URL: https://codereview.chromium.org/
306583006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21562
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 28 May 2014 10:49:10 +0000 (10:49 +0000)]
Add flag to test harness to stop sorting test cases.
R=jkummerow@chromium.org, machenbach@chromium.org
Review URL: https://codereview.chromium.org/
307553003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21561
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 28 May 2014 10:41:13 +0000 (10:41 +0000)]
Refactor after break target computation.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
301563004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21560
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 28 May 2014 10:21:46 +0000 (10:21 +0000)]
Move LiveEdit-related code.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
300793002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21559
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Wed, 28 May 2014 09:58:27 +0000 (09:58 +0000)]
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
mstarzinger@chromium.org [Wed, 28 May 2014 09:52:38 +0000 (09:52 +0000)]
Add Seq[One,Two]ByteString to runtime test generator.
R=dcarney@chromium.org, jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
303543006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21557
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 28 May 2014 09:49:53 +0000 (09:49 +0000)]
Force inline runtime functions into its wrapper.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
307543009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21556
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 28 May 2014 09:29:27 +0000 (09:29 +0000)]
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
mstarzinger@chromium.org [Wed, 28 May 2014 09:20:03 +0000 (09:20 +0000)]
Drop bogus assert after r21552.
R=hpayer@chromium.org
BUG=v8:2070
LOG=N
Review URL: https://codereview.chromium.org/
303493005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21554
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Wed, 28 May 2014 08:39:33 +0000 (08:39 +0000)]
Repairs to FLAG_pretenure_call_new.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
307583002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21553
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 28 May 2014 08:35:16 +0000 (08:35 +0000)]
Make incremental marker post-process JSWeakCollection.
R=hpayer@chromium.org
BUG=v8:2070
LOG=N
Review URL: https://codereview.chromium.org/
301553003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21552
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Wed, 28 May 2014 08:21:43 +0000 (08:21 +0000)]
X87: Fix a typo in below CL
r21515 (6d0ec9a)
Convert ElementsKind into a BitField
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
301563008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21551
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Wed, 28 May 2014 08:19:43 +0000 (08:19 +0000)]
X87: Small changes in preparation for Hydrogen-generated KeyedLoadGeneric
Port r21535(8bb4c2b)
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
302453011
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21550
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Wed, 28 May 2014 08:18:39 +0000 (08:18 +0000)]
X87: Convert String array index/length hash to BitField.
Port r21533 (736c779)
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
298293007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21549
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Wed, 28 May 2014 08:17:21 +0000 (08:17 +0000)]
X87: Merge Debugger and Debug.
port r21524 (af88824)
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
298193004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21548
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Wed, 28 May 2014 08:16:11 +0000 (08:16 +0000)]
X87: Avoid HeapObject check in HStoreNamedField.
port r21509 (78a54b0)
Original commit message:
This way an HStoreNamedField instruction can never deoptimize
itself, which is another important step towards a working
store elimination.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
306483013
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21547
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Wed, 28 May 2014 08:07:18 +0000 (08:07 +0000)]
Extract build configuration into a separate header and move it to the base lib
With this, change, atomicops, once, and lazy instance are no longer dependant
on v8 core. I'll move them in a follow-up change to the libbase as well.
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
303463005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21546
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 28 May 2014 08:06:14 +0000 (08:06 +0000)]
Reuse ZoneList memory if possible.
Clear() is rather wasteful for ZoneLists, because it discards
all previously allocated memory, making it impossible to reuse
until the whole Zone is released. Better use Rewind(0) in this
case, which just resets the length to zero.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
302783007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21545
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 28 May 2014 06:42:01 +0000 (06:42 +0000)]
Fix path tracer test.
Path tracer is not compatible with --enable-slow-assert.
R=mstarzinger@chromium.org
BUG=v8:3350
LOG=N
Review URL: https://codereview.chromium.org/
297193005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21542
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Wed, 28 May 2014 04:56:28 +0000 (04:56 +0000)]
X87: Skip write barriers in the fast case when setting up local context.
Port r21481 (5973b48)
Original commit message:
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.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
307433004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21541
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Tue, 27 May 2014 23:54:07 +0000 (23:54 +0000)]
MIPS: Fix improper register use in DoMinMax.
This fixes failure on pidigit benchmark from web-shootout
after 840 digits are calculated.
TEST=
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
300853002
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21540
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Tue, 27 May 2014 17:11:33 +0000 (17:11 +0000)]
MIPS: Convert String array index/length hash to BitField.
Port r21533 (736c779)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
297233007
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21539
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 27 May 2014 17:07:39 +0000 (17:07 +0000)]
Fix check for empty type
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
307453005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21538
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Tue, 27 May 2014 17:06:40 +0000 (17:06 +0000)]
MIPS: Use TempDoubleRegister.
Port r21517 (53d6507)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
305563002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21537
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 27 May 2014 15:16:42 +0000 (15:16 +0000)]
Reland 21529 - "Add a flag to d8 to invoke weak callbacks"
> This will send an idle notification and a low memory notification after
> each test.
>
> For some reason it's not enough to send a low memory notification alone.
>
> BUG=none
> R=yangguo@chromium.org
> LOG=n
BUG=none
R=yangguo@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
297213006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21536
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 27 May 2014 15:15:49 +0000 (15:15 +0000)]
Small changes in preparation for Hydrogen-generated KeyedLoadGeneric
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
303583002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21535
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 27 May 2014 15:00:26 +0000 (15:00 +0000)]
Revert "Make 'name' property on functions configurable."
R=danno@google.com, danno@chromium.org
Review URL: https://codereview.chromium.org/
297163009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21534
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 27 May 2014 14:55:29 +0000 (14:55 +0000)]
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
rossberg@chromium.org [Tue, 27 May 2014 14:26:32 +0000 (14:26 +0000)]
Remove cpp hack to avoid link failures on Windows
TBR=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
298133005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21532
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 27 May 2014 14:21:46 +0000 (14:21 +0000)]
Revert "Add a flag to d8 to invoke weak callbacks"
This reverts r21529.
TBR=jochen@chromium.org
Review URL: https://codereview.chromium.org/
302543004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21531
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 27 May 2014 13:58:51 +0000 (13:58 +0000)]
Drop unused includes from worker-thread.cc
BUG=none
R=marja@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
302463007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21530
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 27 May 2014 13:57:48 +0000 (13:57 +0000)]
Add a flag to d8 to invoke weak callbacks
This will send an idle notification and a low memory notification after
each test.
For some reason it's not enough to send a low memory notification alone.
BUG=none
R=yangguo@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
306483006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21529
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 27 May 2014 13:52:31 +0000 (13:52 +0000)]
Establish distributivity for type union & intersection
This requires introducing proper bounds on all leaf types, so that intersection between bitsets and these types can be accurately represented. Extending a union also becomes more involved.
(On the upside, the modified union/intersect algorithm would now allow support for proper variance for function types.)
Not sure if it is worth landing this. Distributivity isn't really a crucial property for our use cases. It seems fine if intersection is slightly lossy.
R=bmeurer@chromium.org, jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
251753005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21528
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 27 May 2014 13:43:29 +0000 (13:43 +0000)]
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
yangguo@chromium.org [Tue, 27 May 2014 13:40:40 +0000 (13:40 +0000)]
Skip PathTracer test for now.
TBR=mstarzinger@chromium.org
BUG=3350
LOG=N
Review URL: https://codereview.chromium.org/
305583002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21526
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Tue, 27 May 2014 13:37:33 +0000 (13:37 +0000)]
MIPS: Avoid HeapObject check in HStoreNamedField.
Port r21509 (78a54b0)
Original commit message:
This way an HStoreNamedField instruction can never deoptimize
itself, which is another important step towards a working
store elimination.
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
297143007
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21525
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 27 May 2014 13:20:58 +0000 (13:20 +0000)]
Merge Debugger and Debug.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
301633005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21524
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 27 May 2014 13:05:11 +0000 (13:05 +0000)]
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
yangguo@chromium.org [Tue, 27 May 2014 12:52:15 +0000 (12:52 +0000)]
Cache optimization status getter in mjsunit.js
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
300003007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21522
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vogelheim@chromium.org [Tue, 27 May 2014 12:26:44 +0000 (12:26 +0000)]
Add defensive assert against a weak callback on an empty persistent.
(This shouldn't happen in the first place, as by definition that callback would never be called. However, the referenced bug sorta looks like this happened. If so, the CHECK should help us pinpoint the culprit.)
R=jochen@chromium.org
BUG=368095
LOG=N
Review URL: https://codereview.chromium.org/
265823006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21521
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 27 May 2014 12:21:40 +0000 (12:21 +0000)]
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
jochen@chromium.org [Tue, 27 May 2014 12:02:44 +0000 (12:02 +0000)]
Replace some calls to MemCopy with small constant sizes with memcpy
MemCopy is only meant for variable size, large (>64bytes) copies,
otherwise, it's probably slower than memcpy due to the call
overhead and the compiler can't optimize it away.
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
306453005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21519
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 27 May 2014 11:53:12 +0000 (11:53 +0000)]
Do not (eagerly) trigger exception in mjsunit.js.
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
301673002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21518
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
m.m.capewell@googlemail.com [Tue, 27 May 2014 10:22:53 +0000 (10:22 +0000)]
ARM: use TempDoubleRegister
R=ulan@chromium.org, bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
302453008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21517
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 27 May 2014 09:40:04 +0000 (09:40 +0000)]
Remove HType::HeapNumber from mutable heap numbers.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
293353004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21516
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 27 May 2014 09:38:01 +0000 (09:38 +0000)]
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
vogelheim@chromium.org [Tue, 27 May 2014 09:31:06 +0000 (09:31 +0000)]
Fix the "PersistentValueMap" memory leak reported here:
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN
The bug:
The code assumed that a weak Persistent whose weak callback is being
called would still be weak. That isn't true since the persistent is
un-weakened by the garbage collector before calling the weak callback. [1]
Specifically, PersistentValueMap would funnel all 'remove' actions
through its Release method, which uses PersistentBase::ClearWeak to
obtain the callback data. [2] For 'removes' caused by the weak callback,
ClearWeak always returns a NULL-pointer since by that time the weak
persistent was already un-weakend. The result was a memory leak in
the test, since the code to delete the weak callback data would
delete NULL.
The fix:
I explicity call Traits::DisposeCallbackData from the weak callback
with the data obtained from the v8::WeakCallbackData. To avoid invalid
calls to DisposeCallbackData, I also check whether this instance is
(still) weak before calling it. (That check could easily be elided
if it's expensive, for the price of having two 'remove' code paths.)
Severety:
Probably low. At least in Chromium, noone uses the API in a way to
trigger this; only the test does.
[1] https://code.google.com/p/chromium/codesearch#chromium/src/v8/src/global-handles.cc&q=global-handles.cc&sq=package:chromium&type=cs&l=231
[2] https://code.google.com/p/chromium/codesearch#chromium/src/v8/include/v8-util.h&sq=package:chromium&l=332-345
R=dcarney@chromium.org, dcarney
BUG=
Review URL: https://codereview.chromium.org/
297193004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21514
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 27 May 2014 08:41:12 +0000 (08:41 +0000)]
Escape % in SNPrintF call in pretenuring test.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
298183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21513
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 27 May 2014 07:57:22 +0000 (07:57 +0000)]
Reland 21502 - "Move OS::MemCopy and OS::MemMove out of platform to utils"
Verified that arm builds locally.
BUG=none
TBR=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
306473004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21512
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 27 May 2014 07:48:36 +0000 (07:48 +0000)]
Remove global pretenuring mode.
BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
304493002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21511
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 27 May 2014 07:19:32 +0000 (07:19 +0000)]
Fix d8's interactive shell.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
305553002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21510
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 27 May 2014 07:17:08 +0000 (07:17 +0000)]
Avoid HeapObject check in HStoreNamedField.
This way an HStoreNamedField instruction can never deoptimize
itself, which is another important step towards a working
store elimination.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
299373005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21509
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 27 May 2014 06:35:45 +0000 (06:35 +0000)]
Fix arm64 gc stress issue.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
306483002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21506
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 27 May 2014 04:19:18 +0000 (04:19 +0000)]
Relax register constraints for LMathSqrt.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
299423005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21505
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Mon, 26 May 2014 19:56:27 +0000 (19:56 +0000)]
Revert 21502 - "Move OS::MemCopy and OS::MemMove out of platform to utils"
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
297303004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21504
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Mon, 26 May 2014 19:43:01 +0000 (19:43 +0000)]
Buildfix for arm
TBR=jkummerow@chromium.org
LOG=n
BUG=none
Review URL: https://codereview.chromium.org/
299353006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21503
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Mon, 26 May 2014 19:33:15 +0000 (19:33 +0000)]
Move OS::MemCopy and OS::MemMove out of platform to utils
Since both are jitted on some platforms and depend on codegen, they
don't belong to the platform abstraction. At the same time, I can't put
them to codegen.h, as this would introduce cyclic dependencies.
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
302563004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21502
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Mon, 26 May 2014 15:18:45 +0000 (15:18 +0000)]
Move NumberOfProcessorsOnline from CPU to OS
It's really more an OS-level information, and this way the default
platform doesn't depend on CPU-level details
BUG=none
R=yangguo@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
300713002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21501
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Mon, 26 May 2014 14:40:55 +0000 (14:40 +0000)]
MIPS: Skip write barriers in the fast case when setting up local context.
Port r21481 (5973b48)
Original commit message:
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.
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
302633002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21500
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Mon, 26 May 2014 13:59:24 +0000 (13:59 +0000)]
Reland "Customized support for feedback on calls to Array." and follow-up fixes.
Comparing one CallIC::State to another was not done correctly, leading to a failure to patch a CallIC when transitioning from monomorphic Array to megamorphic.
BUG=chromium:377198,chromium:377290
LOG=Y
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
305493003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21499
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Mon, 26 May 2014 13:34:23 +0000 (13:34 +0000)]
Send idle notification on ASAN builder for proper tear down.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
300003005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21498
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 26 May 2014 13:33:06 +0000 (13:33 +0000)]
More nuisance
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
297323004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21497
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 26 May 2014 13:31:55 +0000 (13:31 +0000)]
D8 should send idle notification even after the last run.
This, in combination with changes to the bot, should weed out false negatives.
R=marja@chromium.org
Review URL: https://codereview.chromium.org/
293393003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21496
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 26 May 2014 13:24:59 +0000 (13:24 +0000)]
Shut up VS
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
298073005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21495
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 26 May 2014 13:10:52 +0000 (13:10 +0000)]
Various extensions to types
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
296213005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21494
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Mon, 26 May 2014 12:58:55 +0000 (12:58 +0000)]
Remove high promotion mode.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
296413004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21493
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 26 May 2014 11:42:56 +0000 (11:42 +0000)]
Make 'name' property on functions configurable.
R=rossberg@chromium.org
BUG=v8:3333
LOG=N
Review URL: https://codereview.chromium.org/
296413003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21492
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 26 May 2014 11:40:34 +0000 (11:40 +0000)]
Actually fix the memory leak in debugger wrt promises.
In the fuzz test the debugger is not actually loaded...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
304453003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21491
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Mon, 26 May 2014 11:28:08 +0000 (11:28 +0000)]
Reland 21482 - "Merge v8globals.h and globals.h"
> BUG=none
> R=mstarzinger@chromium.org
> LOG=n
>
> Review URL: https://codereview.chromium.org/
293363006
BUG=none
TBR=mstarzinger@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
295373003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21490
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00