mstarzinger@chromium.org
2bb7c74f80
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
2011-08-03 11:55:13 +00:00
danno@chromium.org
bdf6895bb3
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
2011-08-03 11:12:46 +00:00
lrn@chromium.org
8a8329ed75
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
2011-08-03 10:56:06 +00:00
kmillikin@chromium.org
ffa08197e4
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
2011-08-03 10:44:20 +00:00
vegorov@chromium.org
bd8c469cf9
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
2011-08-03 10:40:03 +00:00
danno@chromium.org
76ede3e063
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
2011-08-03 10:11:09 +00:00
danno@chromium.org
efb7c67a2c
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
2011-08-03 10:07:34 +00:00
jkummerow@chromium.org
a41c25607d
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
2011-08-03 09:53:14 +00:00
kmillikin@chromium.org
4487f8c050
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
2011-08-03 09:10:35 +00:00
vegorov@chromium.org
cb99571cec
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
2011-08-02 17:43:32 +00:00
kmillikin@chromium.org
a129c95a54
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
2011-08-02 17:02:24 +00:00
vegorov@chromium.org
db2d2b0c1b
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
2011-08-02 16:16:32 +00:00
vegorov@chromium.org
129a2ba06b
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
2011-08-02 16:02:33 +00:00
svenpanne@chromium.org
6f6c882e19
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
2011-08-02 15:14:12 +00:00
kmillikin@chromium.org
f37f6e88ca
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
2011-08-02 15:04:31 +00:00
danno@chromium.org
b333719607
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
2011-08-02 14:05:11 +00:00
vegorov@chromium.org
9226cfe5b7
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
2011-08-02 13:36:38 +00:00
vegorov@chromium.org
9f24cd0eef
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
2011-08-02 13:34:52 +00:00
vegorov@chromium.org
a547d333f0
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
2011-08-02 09:32:28 +00:00
danno@chromium.org
008f834117
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
2011-08-02 09:28:55 +00:00
yangguo@chromium.org
6bc1aa0db2
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
2011-08-01 14:15:02 +00:00
svenpanne@chromium.org
ddf38624b5
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
2011-08-01 13:35:11 +00:00
svenpanne@chromium.org
3d4ab9be07
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
2011-08-01 12:53:24 +00:00
jkummerow@chromium.org
15c979eeaa
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
2011-08-01 12:18:03 +00:00
vegorov@chromium.org
0a470aa578
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
2011-08-01 11:10:33 +00:00
yangguo@chromium.org
15b13fac8e
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
2011-07-29 09:49:40 +00:00
fschneider@chromium.org
6637fa2835
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
2011-07-29 09:14:00 +00:00
mstarzinger@chromium.org
eef3e8739e
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
2011-07-28 17:21:22 +00:00
svenpanne@chromium.org
3ce397f975
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
2011-07-28 14:56:08 +00:00
svenpanne@chromium.org
d9c2e28a32
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
2011-07-28 14:31:16 +00:00
svenpanne@chromium.org
e48ec1c4bd
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
2011-07-28 13:33:51 +00:00
ricow@chromium.org
588d039433
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
2011-07-28 12:34:37 +00:00
keuchel@chromium.org
dfb195550f
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
2011-07-28 12:17:36 +00:00
whesse@chromium.org
b10a1141b5
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
2011-07-28 10:17:41 +00:00
fschneider@chromium.org
2ff0383c7c
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
2011-07-28 09:34:14 +00:00
fschneider@chromium.org
b87a0e5a22
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
2011-07-28 09:19:57 +00:00
ricow@chromium.org
1cad334d1b
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
2011-07-28 07:31:21 +00:00
danno@chromium.org
d7641b89aa
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
2011-07-27 15:29:02 +00:00
danno@chromium.org
b7300c6fb1
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
2011-07-27 15:08:50 +00:00
fschneider@chromium.org
4ac6f0253f
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
2011-07-27 14:56:36 +00:00
whesse@chromium.org
4cba3faf71
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
2011-07-27 14:34:59 +00:00
danno@chromium.org
e4e83422bc
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
2011-07-26 16:31:11 +00:00
vitalyr@chromium.org
42a2b4ede7
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
2011-07-26 13:56:21 +00:00
fschneider@chromium.org
6c58013b36
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
2011-07-26 10:24:14 +00:00
fschneider@chromium.org
41ac29d0f4
Landing http://codereview.chromium.org/7514005/
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-26 10:12:37 +00:00
yangguo@chromium.org
635a9f72ef
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
2011-07-26 08:15:49 +00:00
ricow@chromium.org
4022089144
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
2011-07-26 06:03:36 +00:00
ricow@chromium.org
950feb6940
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
2011-07-26 05:56:45 +00:00
danno@chromium.org
a923a94d6d
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
2011-07-25 15:43:41 +00:00
jkummerow@chromium.org
0aab25fabf
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
2011-07-25 15:01:45 +00:00