Commit Graph

1684 Commits

Author SHA1 Message Date
ricow@chromium.org
22d1249b68 Disable flaky test on x64 when running with --crankshaft.
mjsunit/compiler/simple-osr is flaky.

Disabling for now until we get osr in place on the x64 port.

Bug 1026 created to track this:
http://code.google.com/p/v8/issues/detail?id=1026


Review URL: http://codereview.chromium.org/6176001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:53:20 +00:00
whesse@chromium.org
50eaaf4be4 Speed up a regression test regress-3249650.js so it does not timeout.
Review URL: http://codereview.chromium.org/6175001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:52:36 +00:00
lrn@chromium.org
90fd0ee897 Change interpretation of malformed \c? escapes in RegExp to match JSC.
Review URL: http://codereview.chromium.org/6171001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 12:35:42 +00:00
sgjesse@chromium.org
cce04b9071 Added a few new debugger tests.
Patch by Mark Lam from Hewlett-Packard Development Company, LP

Review URL: http://codereview.chromium.org/6035016


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:59:41 +00:00
ricow@chromium.org
08cd803827 Landing for Peter Hallam
First cut at bug 992 

Fixes JS portion of DefineOwnProperty when there is 
an existing property and the new descriptor is generic. 

Makes code follow spec steps more closely. 

Fixes typo for check for unchanged enumerable in step 6. 

Adds regression test. 

Codereview url: http://codereview.chromium.org/6035014/




git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:09 +00:00
whesse@chromium.org
f39ff5c679 X64 Crankshaft: Implement some methods in LInstruction, update mjsunit test expectations.
Review URL: http://codereview.chromium.org/6118002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 09:47:16 +00:00
lrn@chromium.org
a50e69bda5 Avoid calling inherited setters when creating object literals and their boilerplates.
Fix issue 1015.

Review URL: http://codereview.chromium.org/6118001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 14:00:50 +00:00
whesse@chromium.org
2655060546 Fix errors in x64 crankshaft port, add failing tests to test expectations.
Review URL: http://codereview.chromium.org/6104004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 13:29:22 +00:00
sgjesse@chromium.org
2957881a26 Misc debugger enhancements and bug fixes.
1. Added gdb style debugger commands (and their shortcuts) for d8.
These include:
- s[tep] : step into the current statement.
- s[tep]i[n]: step into the current statement with the minimum step.
- n[ext] : step to the next statement.
- fin[ish] : step out of the current function.
- cond : setting conditions on breakpoints.
- d[elete] : deletes breakpoints.
- en[able]|dis[able]: enables/disables breakpoints including
exception breakpoints.
- ignore : ignores a breakpoint for a specified period.
- inf[o] ar[gs] : info on arguments of the current function.
- inf[o] lo[cals] : info on local vars of the current function.
- inf[o] br[eakpoints] : info on breakpoints.
- l[ist] : similar to source, but allows the user to continually
dump subsequent lines of source code either in the
forward or backward direction.
- quit / exit / disconnect : terminates the remote debugger
session.

NOTE: Active breakpoints will automatically be disabled when
the remote debugger detaches. This allows v8 to continue to
run without worrying about a loss of a debugger session.

2. Added support for breaking the debugger by simply typing ENTER.
The break command is now optional.

3. Once the debugger is broken, the user can now just type ENTER
to repeat the last command. This is useful to functionality that
needs to be invoked repeatedly e.g. step, list.

4. Added more verbose descriptions in d8's help.

5. Fixed a line and column number offset bug in the listing of breakpoint
line and column numbers.

6. Added a gc command to allow GCs to be requested from the debugger
interface. The plumbing for requesting different types of GCs is
there, but the underlying implementation currently only triggers a
full mark-compact GC. The command also returns the before and after
sizes of the heap.

7. Added trace json, and flags commands that are not published in help.
trace json is used for tracing the debugger packets send from and
received by d8. flags is for setting v8 flags. These are useful for
people debugging v8 itself, but not necessarily users of v8.

8. Added the ability to enable and disable break on all / uncaught
exceptions in to d8.

9. Added a fix to prevent the Debugger Agent from being re-instantiated
if one already exists.

10. Added the ability to filter results of the script command by matching
text or numbers on the results.

11. Added v8 flags to enable/disable the sending of debugger BeforeCompile,
AfterCompile, and ScriptCollected events.

12. Fixed some undefined value bugs that resulted in v8 or the debugger
failing.

13. Added a few minor WEBOS__ customizations (analogous to ANDROID
customizations).

Patch by Mark Lam from Hewlett-Packard Development Company, LP

Review URL: http://codereview.chromium.org/5980006
Review URL: http://codereview.chromium.org/6086010


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 13:14:32 +00:00
sgjesse@chromium.org
82b9758e9a Update test expectations
The functions with DIV/MOV can get optimized if typefeedback indicate to use a binary op stub.
Review URL: http://codereview.chromium.org/6117001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 12:34:35 +00:00
sgjesse@chromium.org
9bc3a16af0 Fix bug in instanceof stub
If the instanceof stub was requested to deliver true/false objects as the result instead of 0/1 then 0/1 was actually returned if the builtin INSTANCE_OF ended up being called. This is now fixed.

BUG=v8:1020
TEST=test/mjsunit/regress/regress-1020.js
Review URL: http://codereview.chromium.org/6014013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 14:19:12 +00:00
ricow@chromium.org
44adf11d8a Add exception for test-deoptimization/DeoptimizeBinaryOperationDIV
under arm with crankchaft.

This test assumes that a specific function is always optimized when
running with crankshaft, but we do not yet support this on arm.

Review URL: http://codereview.chromium.org/6102002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 09:34:45 +00:00
ricow@chromium.org
aa396c5779 Allow getters and setters on JSArray elements.
This fixes bug 900 

Review URL: http://codereview.chromium.org/5959009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 13:59:34 +00:00
lrn@chromium.org
d8fb09a030 Fix tab in javascript file.
Review URL: http://codereview.chromium.org/6004009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 13:14:39 +00:00
lrn@chromium.org
e7ecb74b8a Don't let JSON parsed objects hit inherited setters.
Review URL: http://codereview.chromium.org/6101001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 12:19:55 +00:00
lrn@chromium.org
59aea66dfa Fix bug that happens when the first non-ASCII character of a literal is at a power-of-two position.
Review URL: http://codereview.chromium.org/6044009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 11:25:59 +00:00
sgjesse@chromium.org
2a259f9df4 Changed #define symbols in test to OBJECT_PRINT from PRINT_OBJECT
because this is actually what is being used.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

Review URL: http://codereview.chromium.org/6037015


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 09:32:42 +00:00
lrn@chromium.org
c9928c0595 Change scanner buffers to not use utf-8.
Make preparser keep its symbol text itself instead of relying on the scanner.

Review URL: http://codereview.chromium.org/6075005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 20:14:19 +00:00
sgjesse@chromium.org
716e6282e9 Refactoring out object printing functions into objects-printer.cc.
Patch by Mark Lam from Hewlett-Packard Development Company, LP

Review URL: http://codereview.chromium.org/6083001


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 13:04:47 +00:00
mikhail.naganov@gmail.com
a968ed0470 Implement HeapIterator that skips over unreachable objects.
I'm using it when creating heap snapshots. I decided that it will
be more convenient to have it as a separate piece of code, instead
of embedding into the snapshot generator.

Review URL: http://codereview.chromium.org/6014004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-21 10:49:40 +00:00
lrn@chromium.org
5741575327 Tweak quicksort loop to reduce number of compares slightly.
Review URL: http://codereview.chromium.org/6039002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 14:57:51 +00:00
antonm@chromium.org
ae476ecd6c Teach C++ ArraySlice builtin to deal with arguments object.
Array.prototype.slice.call(arguments, ...) idiom is pretty common (up to 97% of invocations
in GMail), so we'd better handle it efficiently too.

Review URL: http://codereview.chromium.org/6034003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 14:41:41 +00:00
ager@chromium.org
06ac3b18a0 When setting property on a context extension object do not inherit the
attributes from an existing property on a prototype object.

Review URL: http://codereview.chromium.org/5995002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 13:04:53 +00:00
ricow@chromium.org
717153274f Reduce number of iterations in new regression test, this times out on arm and the regression is hit with an order of magnitude less iterations.
Review URL: http://codereview.chromium.org/5963001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 07:23:06 +00:00
fschneider@chromium.org
73737fcdb6 Fix bugs in the range analysis for integers.
The overflow conditions were not correctly detected for 
certain add, sub and mul instructions.

I replaced the previous code by using 64-bit arithmetic
to correctly identify overflows for *, + and -.

Review URL: http://codereview.chromium.org/5860009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 18:01:36 +00:00
ager@chromium.org
6e30a77ab5 A number of instructions use GVN but do not provide a comparison
function for the data. This leads to wrong results where operations
are wrongly assumed to have the same value as a previous (different)
operation.

Provide the data comparison functions.

BUG=995

Review URL: http://codereview.chromium.org/5898003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 15:40:02 +00:00
ager@chromium.org
1b67320800 Perform more aggressive time to NaN conversions. Our internal date
methods rely on the time values passed in being within a certain range
- not significantly larger than the the ECMA 262 specified time
range. When creating a time, always make it NaN if there is no way
that it can be within range even after UTC conversion.

Review URL: http://codereview.chromium.org/5905003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 13:02:09 +00:00
lrn@chromium.org
b20f0968fa Change DefaultString and DefaultNumber to match the spec required behavior.
Previously it did two reads of the .toString and .valueOf properties where
only one was allowed.

Review URL: http://codereview.chromium.org/5950001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 12:49:55 +00:00
ricow@chromium.org
357afa385b Change Object.defineProperty to accept undefined as getters and setters and to correctly accept overriding an accessor with a data property.
In the past we only accepted functions as argument for setting an
accessor. Since one should be able to set an accessor to undefined
this had to be changed to take either.

In addition, we did not lookup properties in the prototype chain,
causing us to call the setter of an existing accessor up the prototype
chain when trying to replace an existing accessor (that was not local)
with a data property.


Review URL: http://codereview.chromium.org/5861006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 12:21:08 +00:00
peter.rybin@gmail.com
e9c989b8fa Fix evaluate with context debug protocol
Review URL: http://codereview.chromium.org/5866002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 19:55:51 +00:00
vegorov@chromium.org
ed59e77256 Fix several register allocation issues revealed by fuzzer:
- LIsObject had incorrect contraint for value input;
- Temporaries had incorrect lifetime intervals;
- Live ranges for live_out values was not covering the whole block.

Review URL: http://codereview.chromium.org/5899002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 18:13:02 +00:00
kmillikin@chromium.org
ace6290452 Fix issue 974.
When entering a finally block in unoptimized code, we unconditionally
save the accumulator register in the stack in case it holds a return
value or an exception.  In the case of a break, continue, or falling
off the end of the try or catch block, this value is unpredictable and
not necessarily safe for GC.

Review URL: http://codereview.chromium.org/5883003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 16:14:29 +00:00
vegorov@chromium.org
655b30858d Fix issue 982.
When splitting at the beginning of a use interval assign coinciding position to the split child instead of leaving it to parent.

BUG=v8:982

Review URL: http://codereview.chromium.org/5898001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 14:35:46 +00:00
lrn@chromium.org
3ed6c2a12f Fix ES5 failure after removing Number/String/Boolean.prototype.toJSON.
The failure is that we no longer fail the tests.

Review URL: http://codereview.chromium.org/5896001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 12:39:18 +00:00
karlklose@chromium.org
88dfadd090 Fix presubmit error.
Review URL: http://codereview.chromium.org/5891001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 11:43:35 +00:00
karlklose@chromium.org
5f962f2eb2 Add array bound checks to code generated for SwapElements. This fixes a bug that lead to a segfault when an array was modified while it was sorted.
Review URL: http://codereview.chromium.org/5686006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 09:52:58 +00:00
lrn@chromium.org
f118f44130 Fix regression in JSON serialization of RegExps.
Tweaks to the serialization.

Review URL: http://codereview.chromium.org/5676005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 09:31:05 +00:00
ager@chromium.org
5dc1d7a126 Update test expectations for ARM crankshaft build.
Review URL: http://codereview.chromium.org/5813002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 07:46:22 +00:00
erik.corry@gmail.com
5b55e1ad9a API: Correct documentation of String::WriteUtf8, String::Write
and String::WriteAscii and add test.  Correct implementation of
String::Write, fixing bug 975 (the patch in that bug was not
used, however).
Review URL: http://codereview.chromium.org/5718005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 13:21:46 +00:00
ricow@chromium.org
cd2f41f7dd Don't run mjsunit/compiler/regress-funcaller in debug mode.
This test takes 12+ minutes to run on the windows slaves. In addition,
the regression is hit in release mode on the code prior to the fix for
this.

Review URL: http://codereview.chromium.org/5701006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 13:15:28 +00:00
ricow@chromium.org
60f07139aa Disable mjsunit/regress/regress-create-exception in debug mode.
This test takes a very long time to run in debug mode. This test alone
is causing 10+ minutes of cycle time on the windows debug bots (and the
same in CPU runtime on all slaves!).


Review URL: http://codereview.chromium.org/5748006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 08:55:57 +00:00
ricow@chromium.org
f89d4f39e6 mjsunit/regress/regress-3247124 takes a long time to run, and the original regression is hit
with two orders of magnitude less iterations.

Review URL: http://codereview.chromium.org/5822001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 08:29:33 +00:00
sgjesse@chromium.org
d9c202752e Initial attempt to add support for using gyp to build V8 itself
This is based on the structore used in chromium with a script wrapping the call to gyp itself and the default processing of common.gypi.

It is possible to build all our targets on Intel Linux for all architectures (ia32, x64 and ARM simulator). When this is committed I wil take a look at Windows.

See the README.txt file in the changelist for the current way of using it.
Review URL: http://codereview.chromium.org/5701001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 08:16:39 +00:00
ricow@chromium.org
3b1152aed4 Change the number of iterations in mjsunit/regress-962
This test causes the arm simulator to timeout, and the test reveals
the original problem with three orders of magnitude less iterations.


Review URL: http://codereview.chromium.org/5678007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 07:57:14 +00:00
peter.rybin@gmail.com
8c3e13cad8 Introduce additional context to evaluate operations
Review URL: http://codereview.chromium.org/5733001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 00:07:44 +00:00
kmillikin@chromium.org
b1c71408d7 Rename regression test and reenable disabled test.
The regression test for v8 issue 969 was committed with the wrong file
name.  Also reenable a test that was disabled due to that issue.

Review URL: http://codereview.chromium.org/5707008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 16:52:04 +00:00
kmillikin@chromium.org
49f4c39d6d Deoptimize to the proper target after assignment side effects.
This fixes V8 issue 989.

Before, assignments used the AST ID of the assignment expression to
mark the side effect of the store, which became a target for
deoptimization bailout for code after the assignment.  In effect
contexts this environment included the value of the assignment, which
was unexpected by the unoptimized code.

Now we introduce a new assignment ID for AST node types that include
an assignment (Assignment, CountOperation, and ForInStatement) and use
it for the side effect of the store.

Review URL: http://codereview.chromium.org/5682010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 16:29:47 +00:00
ricow@chromium.org
ad0401174a Temporarily disable mjsunit/array-splice (issue 969)
Disabling this to get the waterfall green, Kevin knows what the issue
is and is working on a fix.


Review URL: http://codereview.chromium.org/5752005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 12:10:41 +00:00
mikhail.naganov@gmail.com
5cf643aa42 New heap profiler: add support for progress reporting and control.
As taking a snapshot of a large heap takes noticeable time, it's
good to be able to monitor and control it.

The change itself is small, big code deletes and additions are in
fact moves. The only significant change is simplification of
approximated retained sizes calculation algorithm.

Review URL: http://codereview.chromium.org/5687003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 10:42:06 +00:00
lrn@chromium.org
94bb378ee5 Make RegExp character class match JSC.
See http://trac.webkit.org/changeset/73594

Review URL: http://codereview.chromium.org/5723002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 08:33:32 +00:00
vegorov@chromium.org
65f98b1e7a Fix issue 962.
SplitBetween (formely known as Split with 3 arguments) should select split position from [start, end] instead of [start, end[. This should also improve allocation quality (remove certain redundant move patterns).

Also some minor renaming and refactoring to make register allocator code more readable.

BUG=v8:962
TEST=test/mjsunit/regress/regress-962.js

Review URL: http://codereview.chromium.org/5720001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 14:25:10 +00:00
ager@chromium.org
eb8e1d9d0e Change test script to make it easy to run crankshaft tests on ARM and
x64 where crankshaft is not the default. Add ability to add custom
expectations for running in this special crankshaft mode.

The expectations are not updated in this change. There are a couple of
bugs that I would like to fix before doing that. Otherwise the lists
will be very long. :)

Review URL: http://codereview.chromium.org/5787001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 12:05:28 +00:00
lrn@chromium.org
c0df3f0a23 Fix issue 965.
Review URL: http://codereview.chromium.org/5773002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 11:27:15 +00:00
kmillikin@chromium.org
a695d0731e Change the HGraphBuilder to dispatch on the context.
Before, expressions didn't take advantage of knowing their context in
the AST.  Now, we use the context to decide what to do with a value at
the end of visiting an expression.

Review URL: http://codereview.chromium.org/5620007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-09 12:49:53 +00:00
lrn@chromium.org
6691d531ab Revert 5911 (RegExp fail on invalid range syntax).
Review URL: http://codereview.chromium.org/5703001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-09 12:07:52 +00:00
vitalyr@chromium.org
fa9a0625ea Fix RecordStackTraceAtStartProfiling test.
Review URL: http://codereview.chromium.org/5598008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 14:10:41 +00:00
lrn@chromium.org
b55add7e20 Optimized scanner to avoid virtual calls for every character read.
Review URL: http://codereview.chromium.org/5545006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 14:03:59 +00:00
mikhail.naganov@gmail.com
670aea0218 Remove log compression support.
This is no longer used in Chromium, and only pollutes code.

BUG=859

Review URL: http://codereview.chromium.org/5575006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 13:24:22 +00:00
ricow@chromium.org
88e0c29901 Disable mozilla test that when timing out prints insane amounts of data.
I have filled a bug for this:
http://code.google.com/p/v8/issues/detail?id=960

Review URL: http://codereview.chromium.org/5662003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 12:42:37 +00:00
kmillikin@chromium.org
e0d3f6afdf Be more careful about exiting inlined functions in a test context.
When falling off the end of a function inlined in a test context, we cannot
constant fold the test of undefined away. The graph builder assumes that
control flow always reaches both branches of a test.

Instead, explicitly test and branch on "undefined". Introduce a pair of
empty blocks to hold the necessary LeaveInlined instructions.

Review URL: http://codereview.chromium.org/5566005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 12:07:40 +00:00
ricow@chromium.org
de6f019a7a Disable tests failing due to sockets on arm.
This is a copy of http://codereview.chromium.org/5365005/ against the 3.0 branch.

TBR: eric.corry


Review URL: http://codereview.chromium.org/5624005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:59:50 +00:00
kasperl@chromium.org
90b3370374 Update V8 to version 3.0 (re-land r5920).
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:31:57 +00:00
kasperl@chromium.org
51b494d096 Revert r5920. Will re-land shortly.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:01:02 +00:00
kasperl@chromium.org
e5860bd6a8 Update V8 to version 3.0.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 09:11:56 +00:00
sandholm@chromium.org
209eb1c219 Improved JSON stringify.
Review URL: http://codereview.chromium.org/5578004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-06 15:41:07 +00:00
mikhail.naganov@gmail.com
dd1a7fa2b3 New Heap Profiler: add API method for finding a graph node by id.
TEST=cctest/test-heap-profiler/HeapSnapshotGetNodeById

Review URL: http://codereview.chromium.org/5537001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-02 15:38:51 +00:00
lrn@chromium.org
be20c55b3e Change RegExp syntax to fail on invalid ranges like [\d-x], [x-\d] and [\d-\d].
The previous behavior was to treat the "-" as verbatim if the range was invalid.
This change matches the JSC changeset http://trac.webkit.org/changeset/72813/

Review URL: http://codereview.chromium.org/5464001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-02 08:02:37 +00:00
vitalyr@chromium.org
9edb2367bb Fix mac build.
Review URL: http://codereview.chromium.org/5333007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-30 11:44:51 +00:00
vitalyr@chromium.org
4bbf601214 RelocInfo: fix source position decoding.
We used to rely on reading both POSITION and STATEMENT_POSITION to get
correct decoding of positions. This was error prone and made liveedit
unhappy.

Review URL: http://codereview.chromium.org/5277007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-30 10:55:24 +00:00
lrn@chromium.org
84f2f5ee90 Preparser extracted into separate files that can be compiled to a library.
No scons target yet.

Review URL: http://codereview.chromium.org/5295004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-29 13:24:37 +00:00
lrn@chromium.org
84bf943626 Fix number parsing to not allow space between sign and digits.
Affects both parseFloat and ToNumber conversion.

Fix issue 946.

Review URL: http://codereview.chromium.org/5338005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-26 12:45:41 +00:00
lrn@chromium.org
7be18f702b make DateParser::TimeComposer handle 1-2 digits millisecond values
see http://code.google.com/p/v8/issues/detail?id=944
This patch makes DateParser::TimeComposer process times that have
millisecond values with only 1 or 2 digits.

Without this patch, Date.parse("2010-11-25T22:02:30.5") returns
1290690150005 and
Date.parse("2010-11-25T22:02:30.5") == Date.parse("2010-11-25T22:02:30.005")
evaluates to true.

With this patch, Date.parse("2010-11-25T22:02:30.5") returns
1290690150500 instead, and
Date.parse("2010-11-25T22:02:30.5") == Date.parse("2010-11-25T22:02:30.005")
evaluates to false.

Review URL: http://codereview.chromium.org/5336005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-26 11:48:35 +00:00
mikhail.naganov@gmail.com
646a578b3f Simplify ProfLazyMode test on Linux.
Instead of installing signal handler, count samples taken.

Review URL: http://codereview.chromium.org/5325003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-25 15:54:52 +00:00
yurys@chromium.org
9137e4a8c9 Expose a method for getting JSObject constructor name
Review URL: http://codereview.chromium.org/5256004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-25 08:04:12 +00:00
mikhail.naganov@gmail.com
0634c50950 New Heap profiler: fix JSON serialization of aggregated profiles.
Serialization was failing due to unset dominator pointers.

TEST=test-heap-snapshot/AggregatedHeapSnapshotJSONSerialization

Review URL: http://codereview.chromium.org/5314003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-24 10:47:18 +00:00
lrn@chromium.org
dc390d0e1f Untemplated preparser.h and made it depend on virtual types.
Extracted preparse-data specification and logging classes.

Review URL: http://codereview.chromium.org/5166006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-23 11:46:36 +00:00
floitschV8@gmail.com
1fafbe760d Remove Gay's dtoa from sources.
Farewell.

Review URL: http://codereview.chromium.org/5195003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 14:42:07 +00:00
mikhail.naganov@gmail.com
1cfc63cf8a New heap profiler: implement fast retaining sizes approximation.
Approximation is done by building a dominators tree for the heap graph.
Dominator nodes and retained sizes are serialized into JSON.

Removed:
 - reachable size (it is useless, after all);
 - HeapEntryCalculatedData (size is now stored in the node, retaining
   paths in a hash map);

Review URL: http://codereview.chromium.org/5154007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 14:00:40 +00:00
sgjesse@chromium.org
af466d80a6 Add more tests of breaks in infinite loops
Move stack check in do while loops to before the continue target to enable breaks even if continue was always used in the loop.
Review URL: http://codereview.chromium.org/5184007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-19 12:08:52 +00:00
serya@chromium.org
bc42d95cc3 Avoiding repacking payload for v8::Arguments and v8::AccessorInfo (arm)
Review URL: http://codereview.chromium.org/5107002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-19 09:06:00 +00:00
lrn@chromium.org
ecf0d85a8e Fix off-by-one in hex-parsing.
Review URL: http://codereview.chromium.org/5129002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 13:50:21 +00:00
lrn@chromium.org
2d4aa6295b Extract scanner base/JS/JSON and move base and JS to scanner-base.
Remove templates from prescanner.

Review URL: http://codereview.chromium.org/5136002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 13:07:02 +00:00
mikhail.naganov@gmail.com
051f314a99 New heap profiler: include all heap objects and refs into snapshot.
Otherwise, retaned memory sizes are not precise. This increases size
of heap snapshot, I will deal with this later. Heap objects and
references previously missing in snapshot are now marked as 'hidden'.
That means, they not shown to user, but participate in sizes
calculation.

Other small changes:
 - added 'shortcut' graph edges: e.g. to pin global objects on top
   level;
 - meta-information in JSON snapshot is no more double encoded.

Review URL: http://codereview.chromium.org/5139002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 10:38:25 +00:00
sgjesse@chromium.org
010f35f478 Change the order of evaluation of sub-expressions for keyed call
The expression of the key is now evaluated before the arguments, so all expressions in a keyed call are evaluared from left to right.

BUG=http://code.google.com/p/v8/issues/detail?id=931
TEST=test/mjsunit/regress/regress-931.js
Review URL: http://codereview.chromium.org/5161002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 13:59:07 +00:00
floitschV8@gmail.com
7ac932c088 Add bignum fall-back when the fast dtoa doesn't succeed. This removes Gay's dtoa for the double->string direction. We still need it for the string->double direction.
Review URL: http://codereview.chromium.org/3468003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 13:20:44 +00:00
lrn@chromium.org
0464b33625 Fix bug in parser that allows "(foo):42" as a labeled statement.
Fixes issue 918.

Review URL: http://codereview.chromium.org/5044003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-16 12:10:48 +00:00
lrn@chromium.org
47c1870996 Move static scanner fields to scanner-base.h
Review URL: http://codereview.chromium.org/5026005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-16 08:01:45 +00:00
mikhail.naganov@gmail.com
2a8eb35548 Provide more accurate results about used heap size via GetHeapStatistics.
I observed that used heap size provided by Heap::SizeOfObjects() is
usually about ~10% bigger than the number calculated by summing up
heap objects sizes.

This aligns DevTools Timeline stats with Heap profiler stats.

Review URL: http://codereview.chromium.org/4888001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-15 10:38:24 +00:00
erik.corry@gmail.com
ca7a438713 Improve support for vmrs/vmsr in ARM disassembler. This is a commit of http://codereview.chromium.org/4904001 for Martyn Capewell.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-15 10:21:57 +00:00
ager@chromium.org
2c4723639d Use the real climit for testing the stack limit API. The currently
active climit can be changed by other events and should not be trusted
for these tests. The real climit stays the same once set.

Review URL: http://codereview.chromium.org/4881001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-12 08:40:21 +00:00
floitschV8@gmail.com
121adebfde Fix strtod.
Strtod function used buffer that was allocated inside a nested scope.

Review URL: http://codereview.chromium.org/4639006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 16:32:32 +00:00
lrn@chromium.org
7fac48cc87 Fix compile error on Windows (no snprintf support).
Luckily the snprintf wasn't really needed.

TBR:whesse

Review URL: http://codereview.chromium.org/4678007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 13:47:15 +00:00
lrn@chromium.org
fc3bdf4d20 Preparsing now considers catch-blocks as inside a with.
Fix issue 928.

Review URL: http://codereview.chromium.org/4639005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 11:45:25 +00:00
lrn@chromium.org
17f532acb9 Fix Chromium bug 62639.
Add missing failure check after expecting an identifier in preparser.
This allowed code to use the non-existing literal.

Review URL: http://codereview.chromium.org/4800001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 10:18:48 +00:00
vitalyr@chromium.org
87834f8cf0 Make String.prototype.split honor limit when separator is empty.
BUG=929

Review URL: http://codereview.chromium.org/4750003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 12:34:28 +00:00
ager@chromium.org
f3f92b18d4 Fix executable memory setting and fix test.
Review URL: http://codereview.chromium.org/4764002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 09:20:08 +00:00
ager@chromium.org
17573d771a Landing for Justin Schuh.
Add 128MB limit for executable pages.

BUG=http://code.google.com/p/v8/issues/detail?id=925
TEST=None.
TBR=jschuh@chromium.org
Review URL: http://codereview.chromium.org/4634003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 08:38:42 +00:00
vegorov@chromium.org
20d3aad5ae Add check for overflow after MUL operations in side-effect free int32 expressions.
BUG=http://code.google.com/p/v8/issues/detail?id=927
TEST=test/mjsunit/regress/regress-927.js

Review URL: http://codereview.chromium.org/4746001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-09 19:32:49 +00:00
erik.corry@gmail.com
8ebe8e4756 ARM: The Simulator will now handle different VFP rounding modes. RZ and RM are implemented. This is a commit of
http://codereview.chromium.org/4295003/show for Alexander Rames of ARM.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-09 08:26:02 +00:00
mikhail.naganov@gmail.com
0f66199b5e Heap profiler: remove context checks for objects.
It seems that there will be no access to heap snapshots from
web pages' code, only from Developer Tools, thus it makes no
sense doing filtering of object by their security contexts.

Review URL: http://codereview.chromium.org/4681003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-08 15:18:12 +00:00