danno@chromium.org [Wed, 10 Aug 2011 10:51:01 +0000 (10:51 +0000)]
Refactor UnionOfKeys into ElementsAccessor
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7529046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8870
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 10 Aug 2011 08:03:22 +0000 (08:03 +0000)]
ARM: Fix deoptimizer for two-word call sites.
R=svenpanne@chromium.org,kmillikin@chromium.org
BUG=v8:1584
Review URL: http://codereview.chromium.org/7585006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8868
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 9 Aug 2011 13:45:54 +0000 (13:45 +0000)]
Make presubmit check happier with GYP.
R=jkummerow@chromium.org
Review URL: http://codereview.chromium.org/7598034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8867
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 9 Aug 2011 13:32:53 +0000 (13:32 +0000)]
Simpler (and a bit faster) keyword matcher.
Replaced the keyword matching state machine with a switch on the first char followed up by inlined char comparisons.
R=lrn@chromium.org
TEST=cctest/test-parsing/ScanKeywords
Review URL: http://codereview.chromium.org/7558017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8866
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 9 Aug 2011 12:43:08 +0000 (12:43 +0000)]
Fix a bug in named getter/setter compilation.
Because these are function literals that have an associated name, we were
compiling them as if they were named function expressions. This is
incorrect, the property name should not be in scope.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7599024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8863
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 9 Aug 2011 11:28:09 +0000 (11:28 +0000)]
Added fast detection of one character tokens.
Reduced size of first-character table for keyword scanner.
Review URL: http://codereview.chromium.org/7585030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8862
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 9 Aug 2011 08:16:32 +0000 (08:16 +0000)]
Fixed extremely important, mission-critical presubmit warnings...
Review URL: http://codereview.chromium.org/7600019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8860
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 9 Aug 2011 07:59:00 +0000 (07:59 +0000)]
Implement type recording for ToBoolean on ARM.
Review URL: http://codereview.chromium.org/7491054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8859
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 8 Aug 2011 16:14:46 +0000 (16:14 +0000)]
Revert "Revert "Fix a bug in scope analysis.""
Reapply r8838 with a fix for the issue of function names.
Because function names can be added/changed/removed through the API,
remember whether the function is anonymous when initially parsed and use
that information when compiling.
R=vegorov@chromium.org
BUG=1583
TEST=regress-1583
Review URL: http://codereview.chromium.org/7491097
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8858
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 8 Aug 2011 14:31:47 +0000 (14:31 +0000)]
Remove orphaned file src/shell.h
This has nothing to do with the sample shell.
Review URL: http://codereview.chromium.org/7541078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8857
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 8 Aug 2011 09:53:28 +0000 (09:53 +0000)]
Added two whitespaces to match correct indentation.
Review URL: http://codereview.chromium.org/7585033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8855
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 8 Aug 2011 09:34:18 +0000 (09:34 +0000)]
Fixed a known issue in D8 (read file), enabled D8 shared library build on Windows.
Review URL: http://codereview.chromium.org/7586001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8853
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 8 Aug 2011 07:34:54 +0000 (07:34 +0000)]
Fix compilation error on X64 and ARM. Error was introduced in r8851.
Clean up TranslationIterator and DeoptimizationInputDataPrint, so they will work with alignment padding in the Translation info.
BUG=
TEST=v8 compiles on X64 and ARM platforms.
Review URL: http://codereview.chromium.org/7491087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8852
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 8 Aug 2011 07:17:01 +0000 (07:17 +0000)]
Clean up TranslationIterator and DeoptimizationInputDataPrint.
Without this refactoring, they break when we add alignment padding in the Translation info.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7569009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8851
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 5 Aug 2011 13:34:46 +0000 (13:34 +0000)]
Make d8-os test less flaky.
Because of stress testing there may be parallel instances of the test
running, which makes it fail when using a hardcoded test dir
name. Adding a random suffix helps. It'd be nicer to add something
like pid, but there doesn't seem to be an easy way of getting it.
R=yangguo@chromium.org
Review URL: http://codereview.chromium.org/7491057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8848
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 5 Aug 2011 12:55:29 +0000 (12:55 +0000)]
Avoid infinite recursion for unterminated non-ASCII JSON string literals.
BUG=91787
TEST=mjsunit/regress/regress-91787
Review URL: http://codereview.chromium.org/7569008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8847
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 5 Aug 2011 12:31:37 +0000 (12:31 +0000)]
Remove TLS load in regexp code.
Spotted while reviewing Yang's patch.
R=yangguo@chromium.org
Review URL: http://codereview.chromium.org/7585005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8846
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 5 Aug 2011 12:05:23 +0000 (12:05 +0000)]
Add lost -O3 flag when building inside Chromium
TEST=WebKit layout tests no longer timeout
Review URL: http://codereview.chromium.org/7582003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8845
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Fri, 5 Aug 2011 12:00:57 +0000 (12:00 +0000)]
Fix DebugEvaluate crash within a catch in a function without local context.
BUG=v8:1586
TEST=mjsunit/regress/regress-1586.js
Review URL: http://codereview.chromium.org/7491053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8844
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 5 Aug 2011 11:32:46 +0000 (11:32 +0000)]
Static state cleanup: add more consts.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/7491052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8843
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 5 Aug 2011 11:21:04 +0000 (11:21 +0000)]
Fix bug in scanner.
Checking for end-of-comment truncated to byte before comparing to '*'.
BUG=v8:1546
TEST=mjsunit/regress/regress-1546
Review URL: http://codereview.chromium.org/7585004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8842
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 5 Aug 2011 10:00:35 +0000 (10:00 +0000)]
Specify stack size for win64 when linking d8.
Review URL: http://codereview.chromium.org/7574008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8841
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 5 Aug 2011 09:44:30 +0000 (09:44 +0000)]
Make GYP build usable for day-to-day work (second attempt)
- Introduce a global Makefile that triggers GYP-based building
- Some fixes to .gyp[i] files to make everything work
- tools/test-wrapper-gypbuild.py as a temporary solution for easy testing
Original review URL: http://codereview.chromium.org/7383006/
Review URL: http://codereview.chromium.org/7550030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8840
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 5 Aug 2011 09:20:08 +0000 (09:20 +0000)]
Revert "Fix a bug in scope analysis."
This reverts commit revision 8838.
TBR=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7584005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8839
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 5 Aug 2011 08:28:11 +0000 (08:28 +0000)]
Fix a bug in scope analysis.
When recompiling code (e.g., when optimizing) we could incorrectly hoist
some function expressions. This leads to incorrect results or a crash. The
root cause was that functions were not correctly categorized as expression
or declaration at parse time.
This requires some extra hoops to prevent the print name "anonymous" for
functions created by 'new Function' from establishing a binding.
R=vegorov@chromium.org,kasperl@chromium.org
BUG=1583
TEST=regress-1583
Review URL: http://codereview.chromium.org/7572019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8838
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 5 Aug 2011 08:04:47 +0000 (08:04 +0000)]
Fix report printing in test.py script.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/7491050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8837
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 4 Aug 2011 16:43:20 +0000 (16:43 +0000)]
Revert "tighten invariants of HValue::InferRange"
This change reportedly causes a slowdown or inifinite loop on ARM. Revert
pending investigation.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7566040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8834
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 4 Aug 2011 15:18:18 +0000 (15:18 +0000)]
Minimize malloc heap allocation on process startup.
R=vegorov@chromium.org
BUG=http://b/issue?id=5095592
Review URL: http://codereview.chromium.org/7572018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8833
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 4 Aug 2011 12:07:43 +0000 (12:07 +0000)]
grokdump: Tiny bugfix and type list update.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/7566033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8827
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 4 Aug 2011 11:42:14 +0000 (11:42 +0000)]
Move element deletion into element handlers
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7566004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8826
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 4 Aug 2011 11:13:15 +0000 (11:13 +0000)]
Additional functions to Harmony weak maps API.
R=rossberg@chromium.org
BUG=v8:1565
TEST=mjsunit/harmony/weakmaps
Review URL: http://codereview.chromium.org/7572013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8825
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 4 Aug 2011 11:00:32 +0000 (11:00 +0000)]
Add regression test for 91517
R=vegorov@chromium.org
BUG=91517
TEST=regress-91517.js
Review URL: http://codereview.chromium.org/7575007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8824
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 4 Aug 2011 09:23:25 +0000 (09:23 +0000)]
Fix out-of-bounds access in fetching propery names
R=vegorov@chromium.org
BUG=chromium:91517
TEST=none
Review URL: http://codereview.chromium.org/7565009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8823
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 3 Aug 2011 15:42:25 +0000 (15:42 +0000)]
Fix GCMole warning.
R=danno@chromium.org
Review URL: http://codereview.chromium.org/7508020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8821
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 3 Aug 2011 13:56:55 +0000 (13:56 +0000)]
Add missing bounds check in FixedArray::set for smis
R=svenpanne@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7564010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8820
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 3 Aug 2011 12:48:30 +0000 (12:48 +0000)]
Prototype of mark-and-compact support for Harmony weak maps.
R=vegorov@chromium.org
BUG=v8:1565
TEST=cctest/test-weakmaps
Review URL: http://codereview.chromium.org/7553012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8817
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 3 Aug 2011 12:44:17 +0000 (12:44 +0000)]
Ensure that the length property of bound functions are actual unique
for the individually bound functions.
Our existing code will generate a new function on every call to bind,
but it will use the same shared function. When setting the lenght this
will be set on the shared function, i.e., the length of all bound
functions will be that of the last bound function.
Review URL: http://codereview.chromium.org/7475002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8816
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 3 Aug 2011 12:42:04 +0000 (12:42 +0000)]
Fix performance regression due to elements refactor
Consolidate the runtime logic for fetching elements from Objects and JSObjects so that element access in the GetElement cases that are not handled in generated code.
R=svenpanne@chromium.org
BUG=none
TEST=closure.js test faster
Review URL: http://codereview.chromium.org/7569001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8815
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 3 Aug 2011 12:23:55 +0000 (12:23 +0000)]
Fix presubmit error.
TBR=svenpanne@chromium.org
Review URL: http://codereview.chromium.org/7508016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8814
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 3 Aug 2011 11:55:13 +0000 (11:55 +0000)]
Preliminary Harmony weak maps API implementation.
R=rossberg@chromium.org,danno@chromium.org
BUG=v8:1565
TEST=mjsunit/harmony/weakmaps
Review URL: http://codereview.chromium.org/7529007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8811
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 3 Aug 2011 11:12:46 +0000 (11:12 +0000)]
Encapsulate element handling into a class keyed on ElementsKind
Advantage is that it's much easier to add new element types (like FAST_SMI_ELEMENTS), and that handling logic for each element kind is (more) consolidated.
Currently, only GetElementsWithReceiver uses the new encapsulation, but the goal is to move much more element functionality into the class incrementally.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7527001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8810
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 3 Aug 2011 10:56:06 +0000 (10:56 +0000)]
Prepare push to trunk. Now working on 3.5.4.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/7465079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8805
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 3 Aug 2011 10:44:20 +0000 (10:44 +0000)]
tighten invariants of HValue::InferRange
* src/hydrogen-instructions.cc (HValue::InferRange): Only mark values
with int32 representation as never being -0. Always return a non-NULL
value; callers should check for representation().IsNone() if that's
their concern.
In practice these invariants were not violated by callers, but they
were sometimes two calls away, which seems brittle.
BUG=
TEST=tests pass, modulo http://code.google.com/p/v8/issues/detail?id=1572
Review URL: http://codereview.chromium.org/7514040
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8804
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 3 Aug 2011 10:40:03 +0000 (10:40 +0000)]
Check phi uses of the arguments object after redundant phies elimination.
This allows to handle code like:
var a = arguments;
while (smth) a[i];
without bailout.
R=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/7465078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8803
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 3 Aug 2011 10:11:09 +0000 (10:11 +0000)]
MIPS: port Fix ClassOf check on ARM.
Ported r8713 (6bdadc4)
BUG=
TEST=
Review URL: http://codereview.chromium.org/7564003
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8802
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 3 Aug 2011 10:07:34 +0000 (10:07 +0000)]
MIPS: port Ensure that GenerateStoreFastDoubleElement returns stored value on all paths.
Ported r8781 (ca7888b)
BUG=
TEST=
Review URL: http://codereview.chromium.org/7563002
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 3 Aug 2011 09:53:14 +0000 (09:53 +0000)]
Revert "Make window.{undefined,NaN,Infinity} read-only"
This reverts r8766.
TEST=WebKit LayoutTests green again.
Review URL: http://codereview.chromium.org/7562005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8800
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 3 Aug 2011 09:10:35 +0000 (09:10 +0000)]
Revert "Revert "Fix a bug in scope analysis.""
Reapply r8783 with an additional fix.
Because the preparser and parser do not use the same scope analysis to
determine if a function can be lazily compiled, the parser can have false
positives. Rather than treating this as a parse error, treat the preparser
as authoritative and eagerly compile the function.
R=lrn@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7565003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8797
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 2 Aug 2011 17:43:32 +0000 (17:43 +0000)]
Fix ContextDeserialization and PartialDeserialization tests.
Space should be reserved twice before each deserialization.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/7550009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8795
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 2 Aug 2011 17:02:24 +0000 (17:02 +0000)]
Revert "Fix a bug in scope analysis."
This reverts r8783.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7550013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8794
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 2 Aug 2011 16:16:32 +0000 (16:16 +0000)]
Don't use mprotect on Cygwin as virtual memory is managed directly via WinAPI calls.
Patch by Bert Belder.
Review URL: http://codereview.chromium.org/7549009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8793
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 2 Aug 2011 16:02:33 +0000 (16:02 +0000)]
Avoid uninitialized member warning on gcc 4.3.4
Patch by Bert Belder.
Review URL: http://codereview.chromium.org/7553011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 2 Aug 2011 15:14:12 +0000 (15:14 +0000)]
Fixed code generation for LBranch on ARM when the operand's representation is double.
The condition code for branching on the result of vcmp was wrong, effectively
swapping the true/false branches.
TEST=regress-lbranch-double.js
Review URL: http://codereview.chromium.org/7553010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 2 Aug 2011 15:04:31 +0000 (15:04 +0000)]
Fix a bug in scope analysis.
Function declarations inside catch are hoisted to the nearest enclosing
function scope, but we compiled their bodies as if occurring inside the
catch scope.
BUG=chrome:91120
TEST=regress/regress-91120 attached
Review URL: http://codereview.chromium.org/7548011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 2 Aug 2011 14:05:11 +0000 (14:05 +0000)]
Properly handle FixedDoubleArrays in sort()
R=jkummerow@chromium.org
BUG=91008
TEST=regress-91008.js
Review URL: http://codereview.chromium.org/7542008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8782
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 2 Aug 2011 13:36:38 +0000 (13:36 +0000)]
Ensure that GenerateStoreFastDoubleElement returns stored value on all paths.
BUG=chromium:91013
TEST=test/mjsunit/regress/regress-91013.js
Review URL: http://codereview.chromium.org/7551009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8781
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 2 Aug 2011 13:34:52 +0000 (13:34 +0000)]
Mark optimized modulo and memcpy code pages -w after writing them.
BUG=91245
Review URL: http://codereview.chromium.org/7538028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8780
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 2 Aug 2011 09:32:28 +0000 (09:32 +0000)]
Check for phi-uses of arguments object before eliminating dead phi's.
HGraphBuilder::TryArgumentsAccess does not emit any uses for receiver and will generate incorrect code when receiver for a property access is defined by a phi that returns either arguments object or something else.
BUG=v8:1582
TEST=test/mjsunit/regress/regress-1582.js
Review URL: http://codereview.chromium.org/7553006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8774
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 2 Aug 2011 09:28:55 +0000 (09:28 +0000)]
Properly handle FastDoubleArrays in Runtime_MoveArrayContents
BUG=91013
TEST=regress91013.js
Review URL: http://codereview.chromium.org/7551004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8773
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 1 Aug 2011 14:15:02 +0000 (14:15 +0000)]
Fixed: regression in issue 1579 concerning readline() in d8.
BUG=v8:1579
Review URL: http://codereview.chromium.org/7537023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8771
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 1 Aug 2011 13:35:11 +0000 (13:35 +0000)]
Tiny cleanup.
Review URL: http://codereview.chromium.org/7541020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8769
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 1 Aug 2011 12:53:24 +0000 (12:53 +0000)]
Implement type recording for ToBoolean on x64.
Handle oddballs on ia32 via root indices, similar to other platforms. Added a
special case for Smi types on ia32 to make lithium code generation on both Intel
platforms more similar.
Review URL: http://codereview.chromium.org/7544012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8767
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 1 Aug 2011 12:18:03 +0000 (12:18 +0000)]
Make window.{undefined,NaN,Infinity} read-only
as per ES5.
BUG=89490
TEST=es5conform 15.1.*, 15.2.3.*; mjsunit/undeletable-functions
Review URL: http://codereview.chromium.org/7538016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8766
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 1 Aug 2011 11:10:33 +0000 (11:10 +0000)]
Prepare push to trunk. Now working on 3.5.3.
Review URL: http://codereview.chromium.org/7538017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 29 Jul 2011 09:49:40 +0000 (09:49 +0000)]
String to ascii char array converter for debug mode.
Review URL: http://codereview.chromium.org/7523052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8763
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 29 Jul 2011 09:14:00 +0000 (09:14 +0000)]
Revert r8753.
It caused a regressions in compile time in the optimizing compiler. I'm reverting until
the reason for this is identified and fixed.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/7453024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8762
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 28 Jul 2011 17:21:22 +0000 (17:21 +0000)]
Reintroduced dictionary that can use objects as keys.
R=vitalyr@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/7385006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8761
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 28 Jul 2011 14:56:08 +0000 (14:56 +0000)]
Optimization: Do not assign an environment to LBranch when are sure that we will never deopt later.
Review URL: http://codereview.chromium.org/7524025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8760
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 28 Jul 2011 14:31:16 +0000 (14:31 +0000)]
Tiny cleanup of LCodeGen::DoBranch.
Review URL: http://codereview.chromium.org/7482044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8759
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 28 Jul 2011 13:33:51 +0000 (13:33 +0000)]
Use type info for the ToBoolean translation in crankshaft.
To do this, the Branch instruction needs to carry around a temporary register,
but only when the crankshafted code will make a map access. When the
crankshafted code sees an object of a type it hasn't encountered before, it will
always trigger a deopt. Another option in theses cases would be calling a
ToBooleanStub which can handle all types, but then one has to be careful to
*not* trigger a GC (which is currently a bit tricky to achieve).
Const-corrected ToBoolean::Types. Moved the NeedsMap logic into ToBoolean::Types
itself, where it belongs.
This patch improves a lot of benchmarks, crypto-orig even by 16.7%, but slows
down others. The slowdown has to be investigated, but I'd like to get this patch
out first to fix the flakiness problems we currently have due to the previous
crankshafted ToBoolean.
Review URL: http://codereview.chromium.org/7461107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8758
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 28 Jul 2011 12:34:37 +0000 (12:34 +0000)]
Fix win64 debug mode compilation
Review URL: http://codereview.chromium.org/7482042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8757
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Thu, 28 Jul 2011 12:17:36 +0000 (12:17 +0000)]
Fix calculation of 'scope_calls_eval' when 'eval' is within a nested catch.
BUG=
TEST=mjsunit/scope-calls-eval.js
Review URL: http://codereview.chromium.org/7464030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8756
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 28 Jul 2011 10:17:41 +0000 (10:17 +0000)]
Add tracing of the stack height to full code generator.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7097011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8755
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 28 Jul 2011 09:34:14 +0000 (09:34 +0000)]
Fix presubmit error.
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/7523025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8754
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 28 Jul 2011 09:19:57 +0000 (09:19 +0000)]
Simplifications and cleanup of range analysis code.
Landing two patches contributed by Andy Wingo:
http://codereview.chromium.org/7514040/ and
http://codereview.chromium.org/7516001/
Review URL: http://codereview.chromium.org/7520022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8753
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 28 Jul 2011 07:31:21 +0000 (07:31 +0000)]
Prepare push to trunk. Now working on 3.5.2.
Review URL: http://codereview.chromium.org/7522015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8750
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 27 Jul 2011 15:29:02 +0000 (15:29 +0000)]
Re-activate unboxed double arrays by default.
R=svenpanne@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7477047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8749
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 27 Jul 2011 15:08:50 +0000 (15:08 +0000)]
Fix FixedDoubleArray crashes in chromebot
R=ricow@chromium.org
BUG=non
TEST=running urls from reliability bots
Review URL: http://codereview.chromium.org/7497010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8748
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 27 Jul 2011 14:56:36 +0000 (14:56 +0000)]
Record safepoint at calls ToBooleanStub.
This fixes the issues when GC happens when invoking
ToBooleanStub.
Review URL: http://codereview.chromium.org/7465066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8747
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 27 Jul 2011 14:34:59 +0000 (14:34 +0000)]
Ensure that a string is flattened when entering JsonParser::ParseJson. Fixes issue v8:1572.
BUG=v8:1572
TEST=mjsunit/regress/regress-crbug-l84186.js
Review URL: http://codereview.chromium.org/7480044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8746
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 26 Jul 2011 16:31:11 +0000 (16:31 +0000)]
Allow GVN to separately optimize FastDoubleArrays
R=fschneider@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7488016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8745
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 26 Jul 2011 13:56:21 +0000 (13:56 +0000)]
Improve fast to slow elements conversion:
o Use a more strict limit for old arrays.
o Initial capacity of a slow elements dictionary should be the number
of used elements and not the old array capacity.
R=danno@chromium.org
Review URL: http://codereview.chromium.org/7464032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8744
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 26 Jul 2011 10:24:14 +0000 (10:24 +0000)]
Fix presubmit error.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/7470016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8743
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 26 Jul 2011 10:12:37 +0000 (10:12 +0000)]
Landing http://codereview.chromium.org/7514005/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8742
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 26 Jul 2011 08:15:49 +0000 (08:15 +0000)]
Fixed win64 compiler warnings for D8 (static type casting).
Review URL: http://codereview.chromium.org/7470014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8741
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 26 Jul 2011 06:03:36 +0000 (06:03 +0000)]
Update oom_dump README to indicate that people should build the correct V8 version.
Review URL: http://codereview.chromium.org/7198021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8740
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 26 Jul 2011 05:56:45 +0000 (05:56 +0000)]
Switch from sample shell to d8 for unit test
Landing for yangguo to coordinate with buildbot update.
Original codereview: http://codereview.chromium.org/7282008/
Review URL: http://codereview.chromium.org/7495033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8739
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 25 Jul 2011 15:43:41 +0000 (15:43 +0000)]
remove dead code in fast double elements
* src/x64/lithium-codegen-x64.cc (DoLoadKeyedFastDoubleElement)
(DoStoreKeyedFastDoubleElement): Remove set but unused variables.
BUG=
TEST=Fixes a build with gcc-4.6.
Review URL: http://codereview.chromium.org/7491041
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8738
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 25 Jul 2011 15:01:45 +0000 (15:01 +0000)]
Fix: FunctionTemplate::SetPrototypeAttributes broke prototype object
BUG=v8:1539
TEST=cctest test-api/SetPrototypeAttributes
Review URL: http://codereview.chromium.org/7324027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8737
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 25 Jul 2011 14:08:36 +0000 (14:08 +0000)]
Record ToBoolean's type information in Hydrogen's HBranch instruction, so we can use it in LCodeGen::DoBranch later.
Review URL: http://codereview.chromium.org/7491043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8736
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 25 Jul 2011 13:28:35 +0000 (13:28 +0000)]
Better range information for logical shift right >>>.
If the input range is positive and the shift count is constant
we can replace >>> with >> to compute the output range.
For negative inputs, we can only compute a range if the
result always fits into a signed int32.
BUG=v8:1510
Review URL: http://codereview.chromium.org/7489043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8735
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 25 Jul 2011 10:51:46 +0000 (10:51 +0000)]
Prepare push to trunk. Now working on 3.5.1.
Review URL: http://codereview.chromium.org/7493055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8732
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 25 Jul 2011 10:24:14 +0000 (10:24 +0000)]
Revert r8719 - Enable unboxed double arrays by default.
It causes relibility bot crashes
Review URL: http://codereview.chromium.org/7461061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8731
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 25 Jul 2011 07:49:36 +0000 (07:49 +0000)]
Removed forgotten debugging code.
Review URL: http://codereview.chromium.org/7492042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8730
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 25 Jul 2011 06:58:54 +0000 (06:58 +0000)]
Fix compilation error in ia32 platform valgrind tests. Error was introduced in r8721.
Review URL: http://codereview.chromium.org/7495025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8729
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Sun, 24 Jul 2011 17:59:59 +0000 (17:59 +0000)]
v8: Move DeleteEmpty test to test-list.cc
BUG=None
TEST=None
Signed-off-by: Thiago Farina <tfarina@chromium.org>
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8728
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 22 Jul 2011 16:01:53 +0000 (16:01 +0000)]
Fix bug in ARM pixel array clamping
Properly handle undefined conversion to zero in Crankshaft.
R=yangguo@chromium.org
BUG=none
TEST=regress-1563.js
Review URL: http://codereview.chromium.org/7461028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8723
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 22 Jul 2011 12:42:40 +0000 (12:42 +0000)]
Do not explicitly record undetectable objects in the ToBoolean stub.
Loading the map within the stub already implies a check for an undetectable
object, so there is no need to record this separately. Furthermore, this brings
the size of the type info to record down to 8 bits, removing the need to find a
place for the ninth bit in the Code object. ;-)
Review URL: http://codereview.chromium.org/7484022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8722
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 22 Jul 2011 11:22:29 +0000 (11:22 +0000)]
Update valgrind.h. Codereview codereview.chromium.org/7468002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8721
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 22 Jul 2011 09:59:45 +0000 (09:59 +0000)]
Finally, remove logging to memory support.
Since r93412, Chromium no more passes "--logfile=*" to V8.
R=danno@chromium.org
BUG=859
Review URL: http://codereview.chromium.org/7479004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8720
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00