Commit Graph

282 Commits

Author SHA1 Message Date
lrn@chromium.org
2e37ebe1ed Added stack overflow check for RegExp analysis phase.
A very long regexp graph can overflow the stack with recursive calls.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-27 11:23:26 +00:00
lrn@chromium.org
945245393c Fix for issue 351 - lastIndexOf.
Review URL: http://codereview.chromium.org/113838


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-26 15:42:06 +00:00
lrn@chromium.org
2ff3901cf7 Fix for issue 349: Make initial boundary check for BM text search.
There was a case where the BMH algorithm bailed out exactly at the end of the string, and the BM algorithm that takes over wasn't expecting this.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-19 09:01:03 +00:00
sgjesse@chromium.org
94879a93b0 Add a script cache to the debugger
When loaded scripts are requested this cache is filled with all the script objects in the heap. Hereafter its content is kept in sync with the active scripts in the heap through the notifications of new scripts compiled and by using weak handles to get notified when a script is collected.

Through the tracking of collected scripts the debugger event OnScriptCollected have been added to notify a debugger that a script previously returned through the scripts command is no longer in use.

Make the ComputeIntegerHash globally available.

Moved clearing of the mirror cache to when debugger is really left. Previously recursive invocations of the debugger cause the mirror cache to be cleared causing handles to become either stale or reference other objects.
Review URL: http://codereview.chromium.org/115462

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 13:14:37 +00:00
yurys@chromium.org
acfc50ac12 MirrorSerializer now converts mirrors to plain JS objects. This objects are serialized to json string using JSON.stringify.
Review URL: http://codereview.chromium.org/113399

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 07:35:11 +00:00
yurys@chromium.org
750a8391c2 Add parameter that allows to request data for scripts by their ids. It's going to be used e.g. to request script sources by their ids.
Review URL: http://codereview.chromium.org/113335

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 06:39:47 +00:00
whesse@chromium.org
1ae8a7da3d Fix bug 344: always keep attributes of existing properties.
Review URL: http://codereview.chromium.org/113197

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 10:46:28 +00:00
sgjesse@chromium.org
ada3d37219 Added support to backtrace from botton of stack to debugger protocol.
Fixed backtrace in D8 debugger and added gdb like syntax 'bt n' and 'bt -n' in addition to the already existing 'bt from to'.
Review URL: http://codereview.chromium.org/99342

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 08:54:50 +00:00
kmillikin@chromium.org
18f69a7171 Fix for issue 341. In the stub for instanceof, we could try to read
an object's map before we were sure it was a heap object.
Review URL: http://codereview.chromium.org/115236

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 11:40:14 +00:00
yurys@chromium.org
052d63f5bd Script context information is included in before/afterCompile events.
Review URL: http://codereview.chromium.org/115128

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 09:08:01 +00:00
mikhail.naganov@gmail.com
7d260e5f8c Don't keep data about JS code that is never executed.
This reduces memory usage of tickprocessor. Thanks to William Hesse for pointing out this issue.

Also speed up static symbols loading.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-08 11:27:02 +00:00
erik.corry@gmail.com
275a27d6bd Fix Chromium bug 1717 by emulating JSCs somewhat strange hidden
prototypes on some built in types.
Review URL: http://codereview.chromium.org/109004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 12:54:57 +00:00
yurys@chromium.org
beb5161b84 Add function inferred name to FunctionMirror and its json representation.
Review URL: http://codereview.chromium.org/109026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 18:12:03 +00:00
lrn@chromium.org
b11b61c4c0 Added test for issue 334.
Test for issue 334 (oveerwriting function erases attributes).

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 11:52:37 +00:00
erik.corry@gmail.com
282bc7a7b4 Reverty 1842 (see http://code.google.com/p/chromium/issues/detail?id=1717 )
Review URL: http://codereview.chromium.org/99346

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 19:35:46 +00:00
erik.corry@gmail.com
8a15c49974 Fix http://code.google.com/p/chromium/issues/detail?id=1717
undeletable functions on some prototypes.
Review URL: http://codereview.chromium.org/100335

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 12:34:20 +00:00
lrn@chromium.org
5026b2906c Removed long-running array sort test.
Long running array-sort test times out on ARM.
Also fixed a bug in another test.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 09:07:36 +00:00
lrn@chromium.org
83d1d02df7 Made sort on non-arrays also affect elements on the prototype, for JSC compatability.
Made sort on non-objects with inherited elements JSC compatible.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-01 10:06:55 +00:00
whesse@chromium.org
714e525b40 Improve register allocation of left shift operation. Add tests
for all shift operations.
Review URL: http://codereview.chromium.org/101016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-30 09:21:50 +00:00
mikhail.naganov@gmail.com
178a656429 Enhancing profiling data processing code with functionality needed for the Dev Tools Profiler.
Details:

 - added properties / functions in view objects needed for WebKit's ProfileView;

 - added ability to count profiles for specific functions.

The tickprocessor functionality does not affected.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-30 08:10:27 +00:00
whesse@chromium.org
732e3999e4 Add a mjsunit test to cover more paths in the ia32 code generator.
Review URL: http://codereview.chromium.org/99187

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-29 13:57:48 +00:00
mikhail.naganov@gmail.com
bffdfa3552 Rename profileview.js -> profile_view.js because WebInspector already has ProfileView.js.
Review URL: http://codereview.chromium.org/100102

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-28 09:15:31 +00:00
mikhail.naganov@gmail.com
aa2c33126c TickProcessor script reimplemented in JavaScript.
This is an effort to reuse profiler data processing code both in
TickProcessor and Dev Tools Profiler. The old Python implementation
will be removed.

The new TickProcessor works almost identical to the previous one.
However, it has some differences:

1. Not very useful "Call profile" section is replaced with a new
   WebKit-like "Bottom up (heavy) profile" which shows the most
   expensive functions together with their callers. I used it
   personally in order to find and remove bottlenecks in the
   tickprocessor script itself, and found it quite helpful.

2. Code entries with duplicate names (they occur for RegExes, stubs
   and sometimes for anonymous Function objects) are now distinguished
   by adding an occurence number inside curly brackets.

3. (Address -> code entry) mapping is more precise in boundary cases.

4. Windows version no more requires specifying .map file location.

5. Works faster.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-27 13:50:42 +00:00
lrn@chromium.org
889eac7f13 Fix Issue 326. Handle sorting of non-array objects correctly.
Change handling of sorting to be the same for all JS-arrays.
Collect undefined values as well while removing holes.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-27 11:16:59 +00:00
christian.plesner.hansen@gmail.com
4a909a7a62 - When cloning maps to set the 'lazy loading' bit remember to clone
the properties as well.  This fixes some failing tests.
- Moved json parsing into native code.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-24 12:45:29 +00:00
mikhail.naganov@gmail.com
2060dc1512 Added ProfileView object for performing sorting, searching and filtering operations on a profile.
It will be used both in the new tickprocessor and Dev Tools profiler.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-24 11:37:38 +00:00
christian.plesner.hansen@gmail.com
1f7e96743d - Extended lazy loading to general objects, not just functions.
- Added lazily loaded JSON object.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-24 08:13:09 +00:00
kmillikin@chromium.org
cb9d66638b Fix regression test by wrapping expression in a thunk^H^H^H^H^Hstring.
Review URL: http://codereview.chromium.org/95001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-22 17:44:28 +00:00
sgjesse@chromium.org
7fd0da52e7 Add setting break points by using handles.
Extend the D8 break command to handle script names with :line[:column] position specification and handles using #<id>#.
Review URL: http://codereview.chromium.org/92011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-22 13:59:48 +00:00
erik.corry@gmail.com
befbeba831 Small changes to improve test coverage in codegen-ia32.cc.
Review URL: http://codereview.chromium.org/92008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-22 13:34:35 +00:00
kmillikin@chromium.org
b39f4383dc When merging a frame to an expected on at block entry, the static type
of elements is set to a safe lower bound.  Move the setting of the
static type out of VirtualFrame::MergeTo (which is not necessarily run
for all frames) and into VirtualFrame::PrepareMergeTo (which is).
Review URL: http://codereview.chromium.org/92009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-22 13:19:38 +00:00
lrn@chromium.org
bfb33b1e2f Fix for Issue 317 - bug in string.replace(string, "$foo").
Fix for Issue 317. Replace string with something containing dollar now works.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-22 11:43:05 +00:00
sgjesse@chromium.org
22612a516e Change the expectations of the ARM debugger tests once more
A couple of the tests actually passes now.
Review URL: http://codereview.chromium.org/93011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-22 11:41:19 +00:00
sgjesse@chromium.org
a8c1df9fa4 Change the expectations of the ARM debugger tests.
Previous change r1756 caused some ARM debugger tests to fail instead of crash in release mode.
Review URL: http://codereview.chromium.org/93005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-22 08:54:59 +00:00
lrn@chromium.org
123f671a17 Reduced size of Array.reduce test.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-21 11:25:51 +00:00
lrn@chromium.org
97427d86e0 Add ES5 Array methods reduce and reduceRight, with test.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-21 09:57:30 +00:00
mikhail.naganov@gmail.com
6290e19716 Implemented a CSV parser in JavaScript.
Review URL: http://codereview.chromium.org/67253

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-17 17:58:14 +00:00
mikhail.naganov@gmail.com
dfe8af02a6 Implemented Profile object that processes profiling events and calculates profiling data.
Review URL: http://codereview.chromium.org/77014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-17 17:40:52 +00:00
erik.corry@gmail.com
fb303212b1 Improve coverage of line 619 in stub-cache-arm.cc
Review URL: http://codereview.chromium.org/77028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-17 14:34:35 +00:00
iposva@chromium.org
82ac3f3031 - Fix buffer overflow in the pre-allocated memory thread.
Review URL: http://codereview.chromium.org/67248

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-17 00:57:21 +00:00
mikhail.naganov@gmail.com
5edf6f35bc Reimplement (address -> code) mapping from tickprocessor.py in JS.
Found a pair of bugs concerned with border cases in the original implementation.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-16 16:05:17 +00:00
ager@chromium.org
069a8c096f Migrate a couple of old tests to mjsunit tests.
Review URL: http://codereview.chromium.org/67215

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-16 13:46:55 +00:00
ager@chromium.org
72294ca735 Change the enumeration order for unsigned integer keys to always be
numerical order independently of the representation of the object.

Exchanged the order of enumeration of integer and string keys so
integer keys are first instead of string keys to better match
WebKit/JSC behavior.

Added test cases that document our enumeration order choice.
Review URL: http://codereview.chromium.org/75035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-16 11:30:55 +00:00
erik.corry@gmail.com
4d18959446 Avoid a call to the runtime system when doing binary fp ops on ARM
(at the moment only if we do not need to allocate a heap number).
Find a few more oportunities to avoid heap number allocation on IA32.
Add some infrastructure to test coverage of generated ARM code in our
tests.
Review URL: http://codereview.chromium.org/67163

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-16 09:30:23 +00:00
yurys@chromium.org
b92740bf44 Lookup can now be performed for several handles.
Review URL: http://codereview.chromium.org/67155

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-16 06:03:17 +00:00
kmillikin@chromium.org
22896c8304 Change the function name collector to tolerate expressions that contain
multiple anonymous function literals as subexpressions.

Choose the rightmost one the one to attach a name to.
Review URL: http://codereview.chromium.org/67165

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-15 13:14:23 +00:00
ager@chromium.org
0c52806f0d Add mjsunit test for the overriding of read-only properties.
For compatibility, our behavior here does not match the spec.  Added a
comment to that effect in the test.
Review URL: http://codereview.chromium.org/67164

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-15 12:31:02 +00:00
ager@chromium.org
0de8a28ea7 Fix crash bug when loading const variable in the presence of eval.
The problem was a missing 'uninitialized' check.
Review URL: http://codereview.chromium.org/73076

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-15 10:47:23 +00:00
mikhail.naganov@gmail.com
e9aa21849b Reimplement Splay Tree in JavaScript (and add unit tests!).
This is the first step in reimplementing tick processing scripts in
JavaScript. The goal is to have the same source both for Dev Tools and
Golem, so Python implementation will be removed to avoid code
duplication.

The implementation follows the Dev Tools style: namespaces and JSDocs
are used.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-15 01:22:52 +00:00
sgjesse@chromium.org
a74fcf458c Fixed the step in handling for function.apply.
The generic step-in mechanism floods the function called with break points to ensure a break is hit when entering the function. This generic mechanism was also used for function.apply. The code for function.apply contains a keyed load IC which was patched when stepping into function.apply. However function.apply enteres an internal frame not a JavaScript frame. This caused the logic for returning from the break in function.apply to fail as it forced a jump to the IC on the top JavaScript frame. The top JavaScript frame was the frame for the function calling function.apply not the frame for the apply function. Now returning from the break point in the keyed load IC in the apply code caused a jump to the code for the call IC for the function calling function.apply in the first place. Not a pretty sight.

Step-in now handles function.apply as a separate case where the actual JavaScript function called through apply is flodded with breakpoints instead of the function.apply function.

BUG=269
BUG=8210@chromium.org
Review URL: http://codereview.chromium.org/63055

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-07 09:54:53 +00:00