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
danno@chromium.org [Fri, 22 Jul 2011 09:48:54 +0000 (09:48 +0000)]
Enable unboxed double arrays by default.
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7491007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8719
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 22 Jul 2011 09:04:16 +0000 (09:04 +0000)]
Remaining changes to fully support FastDoubleArray.
R=ager@chromium.org
BUG=none
TEST=cctests, unboxed-double-array.js
Review URL: http://codereview.chromium.org/
7473031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8718
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 22 Jul 2011 09:03:55 +0000 (09:03 +0000)]
Fixed an off-by-one error in SplitConstantsInFullCompiler test.
The test tried to disassemble the last entry in a constant pool, which only
worked by accident until address randomization was introduced.
Review URL: http://codereview.chromium.org/
7489005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8717
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 21 Jul 2011 13:51:04 +0000 (13:51 +0000)]
Implement a type recording ToBoolean IC.
The IC records the set of types it has seen, e.g. {String} or {Boolean,
Undefined}, etc. Note that in theory this could lead to a large number of
different ToBoolean ICs (512, to be exact, because we distinguish 9 types),
but in practice only a small handful of them are actually generated.
Currently the type recording part is only implemented on ia32, other platforms
continue to work like they did before, though.
Removed some dead code on the way.
Review URL: http://codereview.chromium.org/
7473028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8716
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 21 Jul 2011 13:06:55 +0000 (13:06 +0000)]
Introduce a poor man's version of STL's bitset.
Used in a separate upcoming patch...
Review URL: http://codereview.chromium.org/
7472029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8715
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 21 Jul 2011 12:39:35 +0000 (12:39 +0000)]
Fix ClassOf check on ARM.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7472034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8713
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 21 Jul 2011 12:01:51 +0000 (12:01 +0000)]
Fix deopts caused by misplaced COW checks.
TEST=Performance of pixel-array-blur back to normal.
Review URL: http://codereview.chromium.org/
7471034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8709
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 21 Jul 2011 11:28:18 +0000 (11:28 +0000)]
Make proxy fixing GC safe.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7460009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8708
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 21 Jul 2011 11:20:27 +0000 (11:20 +0000)]
Implement Object.prototype.{hasOwnProperty, propertyIsEnumerable} for proxies.
Refactor trap invocation.
Test other Object.prototype functionality for proxies.
R=ager@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/
7436004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8707
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 21 Jul 2011 11:01:50 +0000 (11:01 +0000)]
Re-apply: Implement mapping randomization for 64-bit Linux.
- 32-bit Linux already seems to scatter the mmap() chunks around;
64-bit didn't.
- Seed the system random number generator a little better (we needlessly trunctaed microsecond resolution to millisecond resolution).
- Will automatically take advantage of better entropy when V8::RandomPrivate uses it.
R=fschneider@chromium.org,cevans@chromium.org
BUG=v8:805
TEST=
Review URL: http://codereview.chromium.org/
7464022
Patch from Chris Evans <cevans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8705
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 21 Jul 2011 10:51:06 +0000 (10:51 +0000)]
Fix overlap check in MoveBlock and fix assertion.
The old code was adding a size in words to a byte*. Should use size in
bytes. Also, the assertions were doing signed comparisons on pointers
instead of unsigned. Fixing the assertions makes one of the assertions
identical to the condition just before it.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7468024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8704
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 21 Jul 2011 08:36:58 +0000 (08:36 +0000)]
Revert "Implement mapping randomization for 64-bit Linux."
Causes sputnik test failures.
R=cevans@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7468023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8703
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 21 Jul 2011 07:52:54 +0000 (07:52 +0000)]
Implement mapping randomization for 64-bit Linux. Notes:
- 32-bit Linux already seems to scatter the mmap() chunks around; 64-bit didn't.
- Seed the system random number generator a little better (we needlessly
trunctaed microsecond resolution to millisecond resolution).
- Will automatically take advantage of better entropy when V8::RandomPrivate
uses it.
BUG=v8:805
Review URL: http://codereview.chromium.org/
7377008
Patch from Chris Evans <cevans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8702
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Wed, 20 Jul 2011 17:46:56 +0000 (17:46 +0000)]
ICU 4.6 NumberFormat::EStyle enum is gone in ICU 4.8. Adding #if #else to make it work across versions.
There was an ICU cleanup (removing all C++ style enums and replacing them with plain C enums). NumberFormat::EStyle had a draft status (from ICU 4.2) and it was cut. Confusion came up because DateFormat::EStyle is stable and won't be removed.
TEST=Compile Chromium with ICU 4.6 and ICU 4.8
BUG=1561
Review URL: http://codereview.chromium.org/
7421003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8701
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 20 Jul 2011 15:14:50 +0000 (15:14 +0000)]
Slightly simplify slow elements conversion check.
R=danno@chromium.org
Review URL: http://codereview.chromium.org/
7460011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8700
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 20 Jul 2011 14:43:10 +0000 (14:43 +0000)]
Add fake data dependencies (instead of disabling GVN) to fix code motion
for HInstructions used in polymorphic array access code.
TEST=existing tests pass.
Review URL: http://codereview.chromium.org/
7298003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8699
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 20 Jul 2011 13:41:50 +0000 (13:41 +0000)]
Implement support for getters/setter on FixedDoubleArrays.
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7459009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8696
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 20 Jul 2011 13:22:01 +0000 (13:22 +0000)]
Preparing push to trunk.
Review URL: http://codereview.chromium.org/
7452020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8695
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 20 Jul 2011 13:14:46 +0000 (13:14 +0000)]
Fix for issue 1566: added flushing after writing to stdout.
BUG=v8:1566
Review URL: http://codereview.chromium.org/
7459007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8694
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 20 Jul 2011 10:54:58 +0000 (10:54 +0000)]
Implement for..in for FastDoubleArrays
Also add tests for apply on FastDoubleArrays.
R=ager@chromium.org
BUG=none
TEST=unboxed-double-array.js
Review URL: http://codereview.chromium.org/
7461018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8693
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 20 Jul 2011 10:51:11 +0000 (10:51 +0000)]
Revert "Make window.undefined, window.NaN, window.Infinitiy read-only (ES5 section 15.1.1)"
This reverts r8691.
Review URL: http://codereview.chromium.org/
7457020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8692
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 20 Jul 2011 10:06:53 +0000 (10:06 +0000)]
Make window.undefined, window.NaN, window.Infinitiy read-only (ES5 section 15.1.1)
BUG=89490
TEST=manual: "Infinity = 42;" doesn't change the value of "Infinity"
Review URL: http://codereview.chromium.org/
7457019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 20 Jul 2011 09:11:38 +0000 (09:11 +0000)]
Reland 8636: Implement setting the length property for FixedDoubleArrays.
R=ager@chromium.org
BUG=none
TEST=unboxed-double-arrays.js
Review URL: http://codereview.chromium.org/
7460008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8690
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 20 Jul 2011 08:45:30 +0000 (08:45 +0000)]
Fix presubmit error in copyright message.
Use new gcc flag -Wno-unused-but-set-variable only on linux.
TBR=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7457018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8689
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 20 Jul 2011 08:09:58 +0000 (08:09 +0000)]
fix -Wunused-but-set-variable for gcc-4.6 on x64
* src/third_party/valgrind/valgrind.h: Update from upstream valgrind
r11899, so as to get around some unused value warnings. Also adds
support for darwin.
This version of valgrind.h differs from the original in that all
instances of "unsigned long long int" have been replaced with
"uint64_t", as the former is not allowed in ISO C++ 89.
See https://bugs.kde.org/show_bug.cgi?id=211926 for the upstream bug
report.
* src/x64/cpu-x64.cc:
* src/builtins.cc:
* src/conversions-inl.h:
* src/debug.cc:
* src/frames.cc:
* src/full-codegen.cc:
* src/jsregexp.cc:
* src/objects.cc:
* src/parser.cc:
* src/platform-linux.cc:
* src/x64/code-stubs-x64.cc:
* src/x64/deoptimizer-x64.cc:
* src/x64/full-codegen-x64.cc:
* src/x64/lithium-codegen-x64.cc:
* src/x64/regexp-macro-assembler-x64.cc:
* src/x64/stub-cache-x64.cc: Remove a number of assigned but
unreferenced variables.
* SConstruct (CCTEST_EXTRA_FLAGS): Punt on -Wunused-but-set-variable for
the test suite.
BUG=1291
TEST=A build and tools/test.py passes.
Review URL: http://codereview.chromium.org/
7400023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8688
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 20 Jul 2011 08:06:43 +0000 (08:06 +0000)]
Add guard pages in front of executable allocations
BUG=89247
Review URL: http://codereview.chromium.org/
7379004
Patch from Chris Neckar <cdn@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 20 Jul 2011 07:24:50 +0000 (07:24 +0000)]
MIPS: port Implement ICs for FastDoubleArray loads and stores
Ported r8637 (
72bd791)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7386003
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8686
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 19 Jul 2011 18:29:18 +0000 (18:29 +0000)]
grokdump: Add simple support for non-full minudumps.
At least we can show the disassembly around the exception now.
R=antonm@chromium.org
Review URL: http://codereview.chromium.org/
7439006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8685
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 19 Jul 2011 16:34:17 +0000 (16:34 +0000)]
Rollback 8683: Implement setting the length property for FixedDoubleArrays
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7448002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8684
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 19 Jul 2011 16:06:17 +0000 (16:06 +0000)]
Implement setting the length property for FixedDoubleArrays.
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7400020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8683
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 19 Jul 2011 13:04:00 +0000 (13:04 +0000)]
Crankshaft support for FixedDoubleArrays
BUG=none
TEST=unboxed-double-arrays.js
Review URL: http://codereview.chromium.org/
7350021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8682
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 19 Jul 2011 09:38:59 +0000 (09:38 +0000)]
Implement `in' for proxies.
R=ager@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/
7390028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 19 Jul 2011 08:19:31 +0000 (08:19 +0000)]
Correctly mark functions from our natives files during compilation.
When creating a CompilationInfo we always have the script and can
determine if it is a natives script.
Now that all natives functions are recognized as such, many of them
are called with undefined as the receiver. We have to use different
filtering for builtins functions when printing stack traces.
Also, fixed one call of CALL_NON_FUNCTION to be correctly marked as a
method call (with fixed receiver). Now that CALL_NON_FUNCTION is
marked as a native function this caused the receiver to be undefined.
R=svenpanne@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7395030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 18 Jul 2011 17:44:57 +0000 (17:44 +0000)]
Add GetPropertyAttribute method for Object in the API
Patch by Peter Varga.
BUG=none
TEST=cctest/test-api/PropertyAttributes
Review URL: http://codereview.chromium.org/
7321006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 18 Jul 2011 17:32:41 +0000 (17:32 +0000)]
Pass isolate to AST ID functions.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/
7399023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8678
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 18 Jul 2011 16:39:41 +0000 (16:39 +0000)]
Revert "Make GYP build usable for day-to-day work"
This reverts r8674 due to failures on the buildbots.
Review URL: http://codereview.chromium.org/
7396022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8677
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 18 Jul 2011 14:46:35 +0000 (14:46 +0000)]
Encapsulated the AST ID recording a bit, this time for MIPS.
Review URL: http://codereview.chromium.org/
7400019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8676
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 18 Jul 2011 14:29:50 +0000 (14:29 +0000)]
Fix the debugger for strict-mode functions.
undefined is passed unchanged as the receiver for strict-mode
functions through call and apply. Also, if a strict-mode function is
called without an explicit receiver, undefined is passed as the
receiver (not the global object as for other functions).
R=vegorov@chromium.org
BUG=89236
TEST=mjsunit/debug-scopes.js
Review URL: http://codereview.chromium.org/
7388011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8675
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 18 Jul 2011 14:19:48 +0000 (14:19 +0000)]
Make GYP build usable for day-to-day work
- 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
Review URL: http://codereview.chromium.org/
7383006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 18 Jul 2011 13:04:52 +0000 (13:04 +0000)]
Implement sealing, freezing, and related functions for proxies.
R=ager@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/
7391001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8673
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 18 Jul 2011 10:51:28 +0000 (10:51 +0000)]
Replace reinterpret_cast with BitCast in deoptimizer to please certain compilers.
R=jkummerow@chromium.org
BUG=v8:1564
Review URL: http://codereview.chromium.org/
7398024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8672
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 18 Jul 2011 10:44:13 +0000 (10:44 +0000)]
Fixed confusion between AST IDs and condition codes on ARM.
C++'s 'great' idea of implicitly converting an enum to an integral value hit us
again, this time resulting in silly (but currently non-harmful) entries in the
relocation table. Encapsulated the AST ID recording a bit, which helped a lot to
find the culprit.
Review URL: http://codereview.chromium.org/
7400016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8671
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 18 Jul 2011 09:36:15 +0000 (09:36 +0000)]
Prepare push to trunk.
Review URL: http://codereview.chromium.org/
7397010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8668
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Sun, 17 Jul 2011 09:16:28 +0000 (09:16 +0000)]
Introduce a random entropy source which can optionally be provided at initialization.
BUG=89462
Review URL: http://codereview.chromium.org/
7395012
Patch from Chris Neckar <cdn@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8666
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 15 Jul 2011 17:01:54 +0000 (17:01 +0000)]
Fix win64 build.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 15 Jul 2011 16:57:35 +0000 (16:57 +0000)]
Avoid TLS load in AstNode constructor.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/
7383013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8664
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 15 Jul 2011 12:13:29 +0000 (12:13 +0000)]
Removed unnecessary semicolon.
Review URL: http://codereview.chromium.org/
7383009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8663
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 15 Jul 2011 11:07:18 +0000 (11:07 +0000)]
Fixed bug in array filter and reduce functions.
R=danno@chromium.org
BUG=v8:1559
TEST=test262
Review URL: http://codereview.chromium.org/
7368005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8661
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00