dslomov@chromium.org [Fri, 17 Oct 2014 13:19:45 +0000 (13:19 +0000)]
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
dslomov@chromium.org [Fri, 17 Oct 2014 13:01:54 +0000 (13:01 +0000)]
Revert "Correct semantics for numerically indexed stores to typed arrays."
This reverts commit r24691 because win64 release build breaks.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
659313002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24695
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Fri, 17 Oct 2014 11:51:57 +0000 (11:51 +0000)]
Implement graph trimming in ControlReducer.
Trimming the graph consists of breaking links from nodes that are not reachable from end to nodes that are reachable from end. Such dead nodes show up in the use lists of the live nodes and though mostly harmless, just clutter up the graph. They also can limit instruction selection opportunities, so it is good to get rid of them.
This CL is one half of the ControlReducer functionality, the other half
being branch folding.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
661923002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24694
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
neis@chromium.org [Fri, 17 Oct 2014 11:46:06 +0000 (11:46 +0000)]
Test monotonicity of expression typings.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
653093002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24693
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Fri, 17 Oct 2014 11:40:40 +0000 (11:40 +0000)]
Correct semantics for numerically indexed stores to typed arrays.
R=verwaest@chromium.org, ishell@chromium.org
Review URL: https://codereview.chromium.org/
652303002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
balazs.kilvady@imgtec.com [Fri, 17 Oct 2014 11:30:13 +0000 (11:30 +0000)]
MIPS: Implement the new semantics for 'super(...)'.
Port r24683 (b1533f6)
Original commit message:
Per the latest ES6 draft, super(...) translates into a call
to function's prototype.
BUG=v8:3330
LOG=N
R=dusan.milosavljevic@imgtec.com
Review URL: https://codereview.chromium.org/
661043003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24690
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Fri, 17 Oct 2014 11:26:26 +0000 (11:26 +0000)]
Fix InstructionSelector to handle calls with no (used) output values.
R=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
664693002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24689
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 17 Oct 2014 10:22:47 +0000 (10:22 +0000)]
test-serialize/Bug3628 is expected to fail, not crash.
TBR=jochen@chromium.org
BUG=v8:3628
LOG=N
Review URL: https://codereview.chromium.org/
663483003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24688
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 17 Oct 2014 10:01:38 +0000 (10:01 +0000)]
Improve String.repeat.
Adapted from patch contributed by Isiah Meadows <impinball@gmail.com>.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
657863002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 17 Oct 2014 09:54:48 +0000 (09:54 +0000)]
Prohibit serializing with --harmony-scoping.
R=jochen@chromium.org
BUG=v8:3628
LOG=N
Review URL: https://codereview.chromium.org/
650423005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24686
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 17 Oct 2014 09:35:45 +0000 (09:35 +0000)]
[turbofan] Eliminate typed array bounds checks if both key and length are constant.
TEST=mjsunit,unittests
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
638853004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24685
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Fri, 17 Oct 2014 09:26:55 +0000 (09:26 +0000)]
Initial set of perf tests for classes.
R=arv@chromium.org, machenbach@chromium.org, rossberg@chromium.org
Review URL: https://codereview.chromium.org/
645933003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24684
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Fri, 17 Oct 2014 09:16:03 +0000 (09:16 +0000)]
Implement the new semantics for 'super(...)'
Per the latest ES6 draft, super(...) translates into a call
to function's prototype.
R=arv@chromium.org, ishell@chromium.org, verwaest@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/
661433002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24683
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Fri, 17 Oct 2014 09:11:21 +0000 (09:11 +0000)]
Share test framework between js-perf-tests.
Also small reformat in Iterators/forof.js
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
662723006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24682
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Fri, 17 Oct 2014 09:04:58 +0000 (09:04 +0000)]
Share code between Factory::NewJSTypedArray and API
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
641343005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 17 Oct 2014 07:35:38 +0000 (07:35 +0000)]
[x64] add missing disassm of pcmpeqd
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
658063003
Patch from Weiliang Lin <weiliang.lin@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 17 Oct 2014 07:12:30 +0000 (07:12 +0000)]
Fix Mac build after r24676.
BUG=v8:3638
LOG=n
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
659253002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 17 Oct 2014 07:07:54 +0000 (07:07 +0000)]
[arm] Prefer BIC over BFC.
BFC requires same register for input and output and causes introduction
of some unneccesary gap moves.
TEST=unittests,mjsunit
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
658283003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24678
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 17 Oct 2014 06:59:02 +0000 (06:59 +0000)]
Blacklist tests that are too slow with TurboFan in debug mode.
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
660653008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24677
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 17 Oct 2014 06:58:20 +0000 (06:58 +0000)]
Enable libstdc++ debug mode in debug builds.
See https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html for
details about the debug mode.
BUG=v8:3638
LOG=y
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
648293007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24676
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Fri, 17 Oct 2014 06:58:08 +0000 (06:58 +0000)]
Performance tests for iterators.
R=wingo@igalia.com
Review URL: https://codereview.chromium.org/
641123003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24675
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Fri, 17 Oct 2014 05:23:14 +0000 (05:23 +0000)]
X87: Eliminate special keyed load string stub in favor of uniform handlers
port r24661.
original commit message:
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
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
643783005
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 17 Oct 2014 04:18:38 +0000 (04:18 +0000)]
[x64] simply tweak materialization of float/double constants
port 24485
Fixed a bug of "psllq" instruction in x64
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
658813003
Patch from Weiliang Lin <weiliang.lin@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24673
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 17 Oct 2014 04:03:15 +0000 (04:03 +0000)]
Move them from .data to .rodata.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
659663005
Patch from Ben Noordhuis <ben@strongloop.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24672
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
haraken@chromium.org [Fri, 17 Oct 2014 00:46:18 +0000 (00:46 +0000)]
Pass an Isolate to v8::VisitHandlesWithClassIds
The Isolate version of v8::VisitHandlesWithClassIds is needed
for https://codereview.chromium.org/
651713002/
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
664473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24671
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Thu, 16 Oct 2014 19:38:32 +0000 (19:38 +0000)]
Harden CopyJSObject.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
489833004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24670
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
balazs.kilvady@imgtec.com [Thu, 16 Oct 2014 17:24:15 +0000 (17:24 +0000)]
MIPS: Fix clang compilation error.
Port r24662 (4722032)
BUG=
R=dusan.milosavljevic@imgtec.com
Review URL: https://codereview.chromium.org/
657413003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24669
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
balazs.kilvady@imgtec.com [Thu, 16 Oct 2014 16:39:51 +0000 (16:39 +0000)]
MIPS: Eliminate special keyed load string stub in favor of uniform handlers.
Port r24661 (5499efb)
Original commit message:
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.
BUG=
R=paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/
657413002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24668
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
balazs.kilvady@imgtec.com [Thu, 16 Oct 2014 16:25:27 +0000 (16:25 +0000)]
MIPS: Fix code for InstanceofStub.
Port r24654 (66aa0fb)
BUG=
R=dusan.milosavljevic@imgtec.com
Review URL: https://codereview.chromium.org/
661803002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24667
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Thu, 16 Oct 2014 13:45:59 +0000 (13:45 +0000)]
Fix new git workflow in release scripts.
Need to svn fetch in order to make svn find-rev work.
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/
662643002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24666
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Thu, 16 Oct 2014 13:26:28 +0000 (13:26 +0000)]
Fix ASAN warning.
Missing line in a test to dispose of a string.
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
643873004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Thu, 16 Oct 2014 13:21:13 +0000 (13:21 +0000)]
Add v8 git hashes to releases script.
Also change the tests to use git mode.
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/
658033005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24664
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Thu, 16 Oct 2014 13:19:36 +0000 (13:19 +0000)]
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
mvstanton@chromium.org [Thu, 16 Oct 2014 12:27:35 +0000 (12:27 +0000)]
Fix clang compilation error.
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
659053002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24662
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Thu, 16 Oct 2014 11:42:47 +0000 (11:42 +0000)]
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
bmeurer@chromium.org [Thu, 16 Oct 2014 11:31:00 +0000 (11:31 +0000)]
[turbofan] Correctify typed lowering.
We cannot add new JSToNumber nodes here in general, because:
a) The inserted ToNumber operation screws up observability of valueOf.
b) Deoptimization at ToNumber doesn't have corresponding bailout id.
TEST=cctest,mjsunit
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
649543004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24660
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Thu, 16 Oct 2014 11:29:31 +0000 (11:29 +0000)]
Fix x64 after r24656.
TBR=jarin@chromium.org
Review URL: https://codereview.chromium.org/
655383003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24659
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Thu, 16 Oct 2014 11:24:45 +0000 (11:24 +0000)]
Object.is should use SameValue
BUG=v8:3576
LOG=
R=arv@chromium.org, svenpanne@chromium.org, wingo@igalia.com
Review URL: https://codereview.chromium.org/
626323002
Patch from Diego Pino <dpino@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24658
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Thu, 16 Oct 2014 10:55:26 +0000 (10:55 +0000)]
Implement .forEach() on typed arrays
BUG=v8:3578
LOG=Y
R=dslomov@chromium.org, wingo@igalia.com
Review URL: https://codereview.chromium.org/
583723002
Patch from Adrian Perez de Castro <aperez@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24657
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Thu, 16 Oct 2014 10:50:21 +0000 (10:50 +0000)]
[turbofan] Run value numbering after SimplifiedLowering.
Running ValueNumberingReducer together with ChangeLowering causes
trouble with the current GraphReducer and makes GVN ineffective, so
running it before we get to change lowering works around that well-known
(phase ordering) problem for now.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
660733003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24656
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
aandrey@chromium.org [Thu, 16 Oct 2014 10:42:08 +0000 (10:42 +0000)]
Introduce v8::Exception::GetStackTrace API method.
This will be needed to get a stack trace from a DOMException.
API=v8::Exception::GetStackTrace
R=yangguo@chromium.org
LOG=Y
Review URL: https://codereview.chromium.org/
655243002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24655
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
m.m.capewell@googlemail.com [Thu, 16 Oct 2014 10:38:58 +0000 (10:38 +0000)]
[arm][arm64] fix code for InstanceofStub
R=ulan@chromium.org, bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
657813002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24654
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Thu, 16 Oct 2014 10:03:14 +0000 (10:03 +0000)]
Whitespace change to test the new poller.
TBR=agable@chromium.org
Review URL: https://codereview.chromium.org/
657113003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24653
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Thu, 16 Oct 2014 08:39:20 +0000 (08:39 +0000)]
Whitespace change to test the new poller.
TBR=agable@chromium.org
Review URL: https://codereview.chromium.org/
664483002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24652
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Thu, 16 Oct 2014 08:19:45 +0000 (08:19 +0000)]
Whitespace change to test the new poller.
TBR=agable@chromium.org
Review URL: https://codereview.chromium.org/
654393003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24651
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Thu, 16 Oct 2014 06:59:39 +0000 (06:59 +0000)]
[turbofan] Fix GraphC1Visualizer::PrintType().
TBR=jarin@chromium.org
Review URL: https://codereview.chromium.org/
657993003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24650
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Thu, 16 Oct 2014 06:24:47 +0000 (06:24 +0000)]
X87: Implement inline %_IsJSProxy() for full codegen and Hydrogen.
port r24636.
original commit message:
Implement inline %_IsJSProxy() for full codegen and Hydrogen
Saving a runtime call for many builtin functions.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
657273002
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24649
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 15 Oct 2014 23:53:02 +0000 (23:53 +0000)]
Revert "Remove SmartMove, bringing Array methods further into spec compliance"
This reverts https://code.google.com/p/v8/source/detail?r=24647
It caused test failures in Array methods in Linux64 OptimizeForSize.
BUG=v8:2615
TBR=verwaest@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
656683003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24648
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 15 Oct 2014 23:36:58 +0000 (23:36 +0000)]
Remove SmartMove, bringing Array methods further into spec compliance
This is one step towards a single codepath for each method in array.js.
This patch is based on rafaelw's https://codereview.chromium.org/
349073002
BUG=v8:2615
LOG=Y
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
455933002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24647
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 15 Oct 2014 18:22:20 +0000 (18:22 +0000)]
Handle exceptions thrown by Array.observe machinery
BUG=chromium:417709
LOG=N
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
651323003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24646
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
balazs.kilvady@imgtec.com [Wed, 15 Oct 2014 17:14:17 +0000 (17:14 +0000)]
MIPS: Implement inline %_IsJSProxy() for full codegen and Hydrogen.
Port r24636
Original commit message:
Saving a runtime call for many builtin functions.
BUG=
R=paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/
661503002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24645
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 15 Oct 2014 15:04:09 +0000 (15:04 +0000)]
Fix compilation some more after r24639
Third time's a charm...
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
655223003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24644
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sigurds@chromium.org [Wed, 15 Oct 2014 14:42:32 +0000 (14:42 +0000)]
Fix compilation after r24639
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
653353003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24643
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 15 Oct 2014 14:27:26 +0000 (14:27 +0000)]
Fix compilation after r24639
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
661473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24642
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 15 Oct 2014 14:17:26 +0000 (14:17 +0000)]
Fix verification of Int64Constant
TBR=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
660533002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24641
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
neis@chromium.org [Wed, 15 Oct 2014 14:12:20 +0000 (14:12 +0000)]
Give simple types to Math.Min, Math.Max, Math.Fround, Math.Clz32.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
657793002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24640
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 15 Oct 2014 14:04:53 +0000 (14:04 +0000)]
Break deserializer reservations into chunks that fit onto a page.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
653033002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24639
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 15 Oct 2014 14:01:20 +0000 (14:01 +0000)]
Convert argument toObject() in Object.getOwnPropertyNames/Descriptors
BUG=v8:3443
LOG=Y
R=arv@chromium.org, dslomov@chromium.org
Review URL: https://codereview.chromium.org/
613283002
Patch from Caitlin Potter <caitpotter88@gmail.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24638
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 15 Oct 2014 13:26:43 +0000 (13:26 +0000)]
Implement inline %_IsJSProxy() for full codegen and Hydrogen
Saving a runtime call for many builtin functions.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
651223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24636
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Wed, 15 Oct 2014 13:07:18 +0000 (13:07 +0000)]
Fix bug in NodeCache::GetCachedNodes
TBR=dcarney@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
656033003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24635
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Wed, 15 Oct 2014 12:38:53 +0000 (12:38 +0000)]
Fix GetCurrentThreadId for Solaris etc..
BUG=v8:3620
R=svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
653263003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24634
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 15 Oct 2014 12:38:38 +0000 (12:38 +0000)]
Whitespace change to test new git workflow.
TBR=agable@chromium.org
Review URL: https://codereview.chromium.org/
657073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24633
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Wed, 15 Oct 2014 12:29:39 +0000 (12:29 +0000)]
Add JSGraph::GetCachedNodes and NodeCache::GetCachedNodes. These routines are necessary in the dead code elimination phase to trim away uses from unreachable nodes.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
656103002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24632
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 15 Oct 2014 12:22:15 +0000 (12:22 +0000)]
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
dcarney@chromium.org [Wed, 15 Oct 2014 12:15:38 +0000 (12:15 +0000)]
[turbofan] more verification of rpo
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
603533002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24630
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 15 Oct 2014 12:06:41 +0000 (12:06 +0000)]
Fix out-of-bounds read in SourcePositionToScriptPosition with --hydrogen-track-positions.
We were indexing into the list of inlined functions with inlining ID, which is incorrect.
There can be multiple inlinining IDs corresponding to the same inlined function, because inlining ID is inlining path sensitive unique id for an inlining attempt.
Additionally allow HAbnormalExit to have unknown source position even if we are tracking source positions. No code is generated from abnormal exits anyways.
R=svenpanne@chromium.org
BUG=v8:3184
LOG=N
Review URL: https://codereview.chromium.org/
653993005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24629
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 15 Oct 2014 11:58:30 +0000 (11:58 +0000)]
Presubmit checks
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
658733002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24628
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 15 Oct 2014 11:56:05 +0000 (11:56 +0000)]
Fix oversight in type change
TBR=dcarney@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
646033005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24627
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 15 Oct 2014 11:38:04 +0000 (11:38 +0000)]
Better typing and type verification
- Extend verifier to check types of JS and Simplified nodes.
- Untyped nodes now contain NULL as types, enforcing hard failure.
- Typer immediately installs itself as a decorator; remove explicit decorator installation.
- Decorator eagerly types all nodes that have typed inputs
(subsumes typing of constant cache, removing its typing
side-channel and various spurious dependencies on the typer).
- Cut down typer interface to prevent inconsistently typed graphs.
- Remove verification from start, since it caused too much trouble
with semi-wellformed nodes.
- Fix a couple of bugs on the way that got uncovered.
To do: verifying machine operators. Also, various conditions in the
verifier are currently commented out, because they don't yet hold.
BUG=
R=jarin@chromium.org,titzer@chromium.org
Review URL: https://codereview.chromium.org/
658543002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24626
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 15 Oct 2014 11:16:42 +0000 (11:16 +0000)]
Make event logger slightly more light-weight.
R=dcarney@chromium.org
BUG=chromium:423668
LOG=N
Review URL: https://codereview.chromium.org/
651413002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24624
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erikcorry@chromium.org [Wed, 15 Oct 2014 10:11:08 +0000 (10:11 +0000)]
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
yangguo@chromium.org [Wed, 15 Oct 2014 09:24:55 +0000 (09:24 +0000)]
Initialize double values before calling rempio2.
R=ishell@chromium.org
BUG=chromium:421981
LOG=N
Review URL: https://codereview.chromium.org/
645243003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24621
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 15 Oct 2014 09:11:32 +0000 (09:11 +0000)]
Array.prototype.{every, filter, find, findIndex, forEach, map, some}: Use fresh primitive wrapper for calls.
When the receiver is a primitive value, it's cast to an Object before entering the loop. Instead, it should be cast to an Object for each function call while in the loop.
BUG=v8:3536
LOG=Y
R=arv@chromium.org, svenpanne@chromium.org, wingo@igalia.com
Review URL: https://codereview.chromium.org/
553413002
Patch from Diego Pino <dpino@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24620
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 15 Oct 2014 09:05:40 +0000 (09:05 +0000)]
[x86] Several small performance improvements.
- Generate
cmp reg, 0
instead of
test reg, -1
for word tests.
- Generate
mov reg, [stack slot]
add reg, reg
jo label
instead of
mov reg, [stack slot]
add reg, [stack slot]
jo label
for SMI tagging.
- Improve materialization of int32 constants on X86-64.
- Branch fusion fix for Word64And and Int64Sub on X86-64.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
651383003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24619
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Wed, 15 Oct 2014 08:48:44 +0000 (08:48 +0000)]
Let FastCloneShallowObjectStub work with empty literal objects.
R=verwaest@chromium.org
LOG=N
BUG=417290
Review URL: https://codereview.chromium.org/
655163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24618
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 15 Oct 2014 08:44:00 +0000 (08:44 +0000)]
Remove test-api/Regress2107 since it doesn't test what Chrome does.
BUG=v8:3625
LOG=N
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
657033003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24617
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Wed, 15 Oct 2014 08:23:24 +0000 (08:23 +0000)]
[turbofan] fix block mapping in code comments
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
635213003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24616
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
neis@chromium.org [Wed, 15 Oct 2014 08:21:46 +0000 (08:21 +0000)]
Again reland "Refine expression typing, esp. by propagating range information."
This relands commit 24552.
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
650513003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24615
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 15 Oct 2014 03:50:13 +0000 (03:50 +0000)]
Revert "Reland "Refine expression typing, esp. by propagating range information.""
This reverts commit r24609 for breaking the
cctest/test-js-typed-lowering/Int32BitwiseBinops test.
TBR=rossberg@chromium.org,neis@chromium.org
Review URL: https://codereview.chromium.org/
656003002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24614
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
balazs.kilvady@imgtec.com [Tue, 14 Oct 2014 17:26:14 +0000 (17:26 +0000)]
MIPS: [turbofan] Optimize division/modulus by constant.
Port r24595 (d0f464e)
TEST=cctest,mjsunit,unittests
BUG=
R=paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/
651223003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24611
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sigurds@chromium.org [Tue, 14 Oct 2014 16:28:32 +0000 (16:28 +0000)]
Fix performance bug in scheduler.
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
651233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24610
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
neis@chromium.org [Tue, 14 Oct 2014 16:27:26 +0000 (16:27 +0000)]
Reland "Refine expression typing, esp. by propagating range information."
This relands commit 24552.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
653693002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24609
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 14 Oct 2014 14:46:11 +0000 (14:46 +0000)]
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
yangguo@chromium.org [Tue, 14 Oct 2014 14:45:03 +0000 (14:45 +0000)]
Fix V8's default timer event logger.
This broke because the optimizing compiler thread no longer holds
Isolate::Current() in its TLS.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
655813002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24607
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 14 Oct 2014 14:43:45 +0000 (14:43 +0000)]
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
jkummerow@chromium.org [Tue, 14 Oct 2014 13:52:15 +0000 (13:52 +0000)]
Always initialize key_type_ in AST nodes
BUG=chromium:423117
LOG=n
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
652183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24604
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 14 Oct 2014 13:25:19 +0000 (13:25 +0000)]
Correctly expand literal buffer for surrogate pairs.
R=jkummerow@chromium.org
BUG=chromium:423212
LOG=Y
Review URL: https://codereview.chromium.org/
652743005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24603
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
neis@chromium.org [Tue, 14 Oct 2014 12:41:34 +0000 (12:41 +0000)]
Add typing for Int32MulHigh.
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
656803003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24602
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
neis@chromium.org [Tue, 14 Oct 2014 12:27:29 +0000 (12:27 +0000)]
Simple typing of machine operators.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
658523002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24601
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 14 Oct 2014 12:21:18 +0000 (12:21 +0000)]
Fix de/serialization tests after r24592
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
654853002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24600
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 14 Oct 2014 12:19:32 +0000 (12:19 +0000)]
Make release script cleanup more robust.
This is a work-around that checks out master if the
remembered branch is corrupt.
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/
659473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24599
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 14 Oct 2014 12:10:48 +0000 (12:10 +0000)]
Fix remote branch location in releases script (2).
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/
653533003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24598
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sigurds@chromium.org [Tue, 14 Oct 2014 12:08:55 +0000 (12:08 +0000)]
Reland "Fix scheduler to correctly schedule nested diamonds".
Reland fix: Consume less memory.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
636233006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24597
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 14 Oct 2014 12:00:22 +0000 (12:00 +0000)]
Fix remote branch location in releases script.
BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org
Review URL: https://codereview.chromium.org/
653923002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24596
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 14 Oct 2014 11:57:06 +0000 (11:57 +0000)]
[turbofan] Optimize division/modulus by constant.
TEST=cctest,mjsunit,unittests
R=dcarney@chromium.org, svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
654833002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24595
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Tue, 14 Oct 2014 11:03:35 +0000 (11:03 +0000)]
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
svenpanne@chromium.org [Tue, 14 Oct 2014 10:24:18 +0000 (10:24 +0000)]
Squeeze the layout of various AST node types.
The following AST node types were improved (in decreasing number of
importance for asm.js-like source code): Expression, VariableProxy,
Assignment, BinaryOperation, Declaration, Property, Call.
BUG=chromium:417697
LOG=y
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
646803004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24593
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 14 Oct 2014 09:59:24 +0000 (09:59 +0000)]
Always compile functions in the snapshot with deoptimization support.
This prevents an unnecessary deopt-reopt cycle due to type feedback
having been thrown away as part of recompiling with deopt support.
(For non-snapshotted functions this is not an issue.)
Bonus: Add missing space in --trace-ic output, and provide names for
PropertyDescriptor's methods, because passing anonymous functions to
SetUpLockedPrototype frightens and confuses our FuncNameInferrer.
R=hpayer@chromium.org, yangguo@chromium.org
Review URL: https://codereview.chromium.org/
648243002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24592
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
baptiste.afsa@arm.com [Tue, 14 Oct 2014 09:28:53 +0000 (09:28 +0000)]
[turbofan] Add support for shifted and rotated operands on ARM64.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
642923003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24591
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 14 Oct 2014 09:22:21 +0000 (09:22 +0000)]
build fix
TBR=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
652163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24590
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00