mikhail.naganov@gmail.com [Mon, 13 Apr 2009 23:12:04 +0000 (23:12 +0000)]
Implemented "no heap access" mode for JSFrame which is used for stack sampling in profiler.
As I discovered that JSFrame accesses SharedFunctionInfo only to calculate caller SP and the latter is not used in profiler's stack sampling, I disabled accessing heap objects in JSFrame when doing stack sampling. This finally made V8's profiling stable when used from Chrome on a real web app.
Review URL: http://codereview.chromium.org/73020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1694
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 13 Apr 2009 14:42:01 +0000 (14:42 +0000)]
Added another check in SafeStackFrameIterator.
While playing with profiling in debug version of Chrome, I encontered a
case when assertion in StackHandlerIterator failed.
Review URL: http://codereview.chromium.org/65005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1693
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Sat, 11 Apr 2009 09:01:45 +0000 (09:01 +0000)]
Prepare a push to trunk (version 1.1.8).
Review URL: http://codereview.chromium.org/71001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Thu, 9 Apr 2009 23:17:45 +0000 (23:17 +0000)]
- Fix lint failure.
- Add missing files d8-posix.cc and d8-windows.cc to Xcode project.
Review URL: http://codereview.chromium.org/68004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1690
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Thu, 9 Apr 2009 23:04:00 +0000 (23:04 +0000)]
Workaround for http://crbug.com/9746:
- Added special cutouts if a Vector has NULL data, which will now happen
if an external string's resource has been deleted.
- Added an verification phase before old gen GC to verify that all real
entries in the SymbolTable are valid symbols.
- Added test that verifies the correct behaviour of the workaround.
Review URL: http://codereview.chromium.org/66011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1689
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Thu, 9 Apr 2009 20:07:30 +0000 (20:07 +0000)]
- Exclude "build/include_what_you_use" from cpplint.py filters.
Review URL: http://codereview.chromium.org/65017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1688
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
asargent@chromium.org [Wed, 8 Apr 2009 21:05:29 +0000 (21:05 +0000)]
Fix v8::Object::DeleteHiddenValue to not bail when there are no hidden properties.
Review URL: http://codereview.chromium.org/58016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 7 Apr 2009 16:01:45 +0000 (16:01 +0000)]
Remove the PCRE_STATIC define.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/62103
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1686
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 7 Apr 2009 13:33:39 +0000 (13:33 +0000)]
Fix profiling on Android.
Review URL: http://codereview.chromium.org/62102
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1685
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 7 Apr 2009 12:11:43 +0000 (12:11 +0000)]
Fixed step in handling for function.call.
For function.call debug step in did not work as execution did not break in the function called. This has now been fixed using the same means as for function.apply in CL http://codereview.chromium.org/63055.
Review URL: http://codereview.chromium.org/63058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1684
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 7 Apr 2009 09:54:53 +0000 (09:54 +0000)]
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
sgjesse@chromium.org [Tue, 7 Apr 2009 07:16:10 +0000 (07:16 +0000)]
Apply Matt Hanselman's patch to fix issue 96.
Reviewed CL at http://codereview.chromium.org/42686.
BUG=96
Review URL: http://codereview.chromium.org/62052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 7 Apr 2009 06:00:21 +0000 (06:00 +0000)]
Prepare a push to trunk (version 1.1.7).
Review URL: http://codereview.chromium.org/62091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
davemoore@chromium.org [Mon, 6 Apr 2009 18:08:06 +0000 (18:08 +0000)]
Put back compilation cache
Review URL: http://codereview.chromium.org/56185
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 6 Apr 2009 14:55:01 +0000 (14:55 +0000)]
Fix crash with indexed setter on objects without corresponding getter.
Review URL: http://codereview.chromium.org/63010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1678
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 3 Apr 2009 13:27:14 +0000 (13:27 +0000)]
Rewrite of VisitCountOperation that should speed it up
Review URL: http://codereview.chromium.org/56151
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1677
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 3 Apr 2009 12:44:45 +0000 (12:44 +0000)]
Quick pointer comparison, removed undetectable tests.
Special case for NaN in equality test.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1676
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 3 Apr 2009 12:01:56 +0000 (12:01 +0000)]
Tracks static type of strings in frame elements and results.
Uses static string type to optimize string additions.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1675
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 3 Apr 2009 10:30:21 +0000 (10:30 +0000)]
Add two more invocations of ENTER_V8 to places where we need to write
to V8's heap.
Review URL: http://codereview.chromium.org/60089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 3 Apr 2009 08:18:24 +0000 (08:18 +0000)]
Move some more ENTER_V8 invocations. The biggest one is to move the
one in v8::V8::Initialize to after the early bailout.
Review URL: http://codereview.chromium.org/60083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1673
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 3 Apr 2009 07:49:20 +0000 (07:49 +0000)]
Remove ENTER_V8 from small API functions that do not need access to
V8's heap or only need read access.
This means that IsDeadCeck and EnsureInitialized could sometimes be
called without having already entered the VM. To simplify things,
this is made always the case. A couple of error callbacks do not need
to leave V8 because they haven't entered.
Consistently enter V8 after LOG_API (since LOG_API is sometimes before
EnsureInitialized or IsDeadCheck).
This all should have no effect unless V8 is built with
ENABLE_HEAP_PROTECTION and run with --protect-heap.
Review URL: http://codereview.chromium.org/56211
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1672
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 2 Apr 2009 13:00:28 +0000 (13:00 +0000)]
Apply Lei Zhang's patch to add easy import of additional environment
variables in our scons setup.
Here is an example of importing an additional environment variable:
export MYVAR='value'
scons importenv="MYVAR"
Review URL: http://codereview.chromium.org/60046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1671
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 2 Apr 2009 12:23:49 +0000 (12:23 +0000)]
When computing pairwise merges of frame elements, we should allow
constants and copies below the watermark on backward jump targets
(that's the whole point!).
Review URL: http://codereview.chromium.org/60044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1670
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 2 Apr 2009 08:58:18 +0000 (08:58 +0000)]
Clean up return statements in the code generator by explicitly
counting the reference to the return value and passing it to the
return label. This requires threading it through try/catch and
try/finally. The return value is loaded into eax more lazily than
before.
Also, perform some related refactoring of jump targets.
Review URL: http://codereview.chromium.org/56172
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1669
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 1 Apr 2009 10:41:37 +0000 (10:41 +0000)]
Prepare another push to trunk (version 1.1.6). We pushed an unsafe
compiler optimization which has now been reverted.
Review URL: http://codereview.chromium.org/60011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1667
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 1 Apr 2009 10:35:20 +0000 (10:35 +0000)]
Revert change 1656 which was unsafe until it can be properly fixed.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/60010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1666
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 1 Apr 2009 09:09:05 +0000 (09:09 +0000)]
String.match tests that wasn't included in the implementation change list.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 1 Apr 2009 07:17:29 +0000 (07:17 +0000)]
Merge r1636 from trunk to bleeding edge.
Changelist http://codereview.chromium.org/56056 was committed directly to trunk by addident.
Review URL: http://codereview.chromium.org/60005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1662
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 1 Apr 2009 06:39:18 +0000 (06:39 +0000)]
Prepare to push version 1.1.5 to trunk. This version contains a
number of bug fixes.
Review URL: http://codereview.chromium.org/60004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1661
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 31 Mar 2009 16:48:14 +0000 (16:48 +0000)]
The tests pass on the arm hardware of course.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1660
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 31 Mar 2009 16:43:51 +0000 (16:43 +0000)]
Apparently, the --simulator=arm option is not always used when using
test.py for running the simulator tests. Mark the exception
propagation tests as failing on ARM in general for now. I'll dig into
it again tomorrow morning.
TRB=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/56112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1659
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 31 Mar 2009 15:23:58 +0000 (15:23 +0000)]
Reland exception propagation fix.
Fix exception propagation problem where undefined was returned instead
of an empty handle in case of an exception. This problem can break
C++ programs that are not interested in catching exceptions and just
want to propagate them out by testing for empty handles.
The issue is that exceptions are not rescheduled if they are
externally caught. Externally caught exceptions have to be
rescheduled if there is a JavaScript frame on the way to the C++ frame
that holds the external handler.
A couple of tests will fail on the ARM simulator because the simulator
has separate stacks for C++ and JavaScript. I have marked the tests
as failing only on the simulator.
Review URL: http://codereview.chromium.org/56105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1657
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 31 Mar 2009 15:03:02 +0000 (15:03 +0000)]
Keep the result of postfix increment and decrement in a register.
Review URL: http://codereview.chromium.org/56106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1656
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 31 Mar 2009 14:01:25 +0000 (14:01 +0000)]
Fix issue 294 by ensuring that we don't lose the copy flag on memory
frame elements when allocating them to a register as a result of
popping one of their copies.
Review URL: http://codereview.chromium.org/57053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1655
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 31 Mar 2009 13:55:33 +0000 (13:55 +0000)]
Use -mthumb on debug build too.
Review URL: http://codereview.chromium.org/57056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1654
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 31 Mar 2009 13:24:59 +0000 (13:24 +0000)]
Both thumb and optimized for size.
Review URL: http://codereview.chromium.org/57055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1653
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 31 Mar 2009 13:19:59 +0000 (13:19 +0000)]
Switch to thumb mode for runtime system on Android.
Review URL: http://codereview.chromium.org/57054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1652
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 31 Mar 2009 13:18:43 +0000 (13:18 +0000)]
Optimize for size on Android.
Review URL: http://codereview.chromium.org/56110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1651
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 31 Mar 2009 12:45:33 +0000 (12:45 +0000)]
* Add rmdir, mkdir -p and umask to d8 on Unix.
* Remove the non-working methods from the os object on d8 on Windows
so you can test for their presence with if (os.system).
* Add a test (not run by default since it only works on d8).
* Fix incorrect use of wait that left defunct processes (zombies).
Review URL: http://codereview.chromium.org/56107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1650
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 31 Mar 2009 11:45:20 +0000 (11:45 +0000)]
Fix developer shell build on Windows.
Fixed the OS check in the SCons build. Moved SetEnvironment to platform file as Windows does not have setenv. Added the d8-windows.cc to the Visual Studio project.
Review URL: http://codereview.chromium.org/57050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1649
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 31 Mar 2009 11:24:59 +0000 (11:24 +0000)]
Change handling of debugger unloading.
Add a semaphore for accessing debugger varaibles which can be changed from a different thread. This is mainly the debug message handler which can be set to NULL to disconnect the debugger.
Control the unloading of the debugger from the V8 thread. Before the debugger unload was called from the thread setting the debug message handler to NULL. This was not safe as this involves calling into V8. This change handles the unloading of the debugger either when entering a debugger event and the debugger was disconnected while the debugger was not active or when leaving the debugger and the debugger was disconnected while the debugger was active.
Add a flag to avoid unloading the debugger if debugger code is used by the application for other purposes than debugging.
Added tests for clearing the debug message handler.
Review URL: http://codereview.chromium.org/56102
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1648
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 31 Mar 2009 09:07:57 +0000 (09:07 +0000)]
Mark a bunch of places where we enter or leave V8 through the API.
Indiscriminately mark every place with EnsureInitialized, ON_BAILOUT,
or IsDeadCheck (even if they cannot write to V8's heap). Also mark
callbacks, and one other place (Function::SetName) hit in Chromium.
Review URL: http://codereview.chromium.org/57049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1647
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 31 Mar 2009 09:06:37 +0000 (09:06 +0000)]
Fixed numerous issues that were causing errors in profiler log processing
on a real web application loaded in the test shell.
Also implemented output of JSON-encoded call stacks for profiler
prototype.
Review URL: http://codereview.chromium.org/56064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1646
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 31 Mar 2009 09:02:40 +0000 (09:02 +0000)]
Use the AST optimizer on the bodies of function literals. Notify the
oprofile agent when we compile the body of a function literal.
Review URL: http://codereview.chromium.org/57048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1645
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 31 Mar 2009 06:51:25 +0000 (06:51 +0000)]
Add os.chdir and os.setenv to d8. Move system() to os.system().
Protect os.chdir, os.setenv, os.system against string conversion
failures. Add comment about the issue to include/v8.h.
Review URL: http://codereview.chromium.org/57005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1644
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 30 Mar 2009 13:32:28 +0000 (13:32 +0000)]
Add just enough state changes from EXTERNAL (outside V8) to OTHER
(generic state inside V8) in the API to allow the V8 shell to run all
the mjsunit tests with heap protection on.
These state changes are only taken when built with
ENABLE_HEAP_PROTECTION. The two states OTHER and EXTERNAL are treated
the same because we will not properly reenter OTHER through the API.
Review URL: http://codereview.chromium.org/56060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1643
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 30 Mar 2009 13:03:32 +0000 (13:03 +0000)]
Initialize list of frame elements to proper size.
Review URL: http://codereview.chromium.org/57006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1641
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 30 Mar 2009 12:58:45 +0000 (12:58 +0000)]
Prepare to push version 1.1.4 to trunk.
Review URL: http://codereview.chromium.org/56059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1640
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 30 Mar 2009 12:13:08 +0000 (12:13 +0000)]
Reenable interactive use of the shell sample.
Review URL: http://codereview.chromium.org/57008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1639
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 30 Mar 2009 11:50:17 +0000 (11:50 +0000)]
When devtools window is opening it requests all scripts parsed by the moment. Currently 'scripts' response contains only first 80 chars of the scripts sources. I added an argument to the protocol that allows to include full source text into the response.
Review URL: http://codereview.chromium.org/55011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1638
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 30 Mar 2009 08:16:14 +0000 (08:16 +0000)]
Correct debugger active check.
With r1627 (http://code.google.com/p/v8/source/detail?r=1627) the use of the debugger message thread was made optional. However the check for active debugger still included a check for the message thread. This is fixed by this change.
Review URL: http://codereview.chromium.org/58001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1637
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 27 Mar 2009 14:35:24 +0000 (14:35 +0000)]
Formatting changes and some slight improvements to revision 1621, issue 42006.
Review URL: http://codereview.chromium.org/51007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1634
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 27 Mar 2009 13:50:26 +0000 (13:50 +0000)]
Add a system() call to the d8 shell (Unix only).
Review URL: http://codereview.chromium.org/42641
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1633
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 27 Mar 2009 12:32:28 +0000 (12:32 +0000)]
Mark some of the places we leave V8 via callbacks as transitions to
state EXTERNAL rather than OTHER.
Review URL: http://codereview.chromium.org/55007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1632
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 27 Mar 2009 11:56:30 +0000 (11:56 +0000)]
Fixed lint errors in test-debug. Sorry for that.
Review URL: http://codereview.chromium.org/56004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1631
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 27 Mar 2009 11:22:52 +0000 (11:22 +0000)]
Fix issue 289: check external source strings validity in Runtime_DebugGetLoadedScripts
Review URL: http://codereview.chromium.org/56002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1630
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 27 Mar 2009 10:29:37 +0000 (10:29 +0000)]
Make VirtualFrame::CallStub on IA32 responsible for moving arguments
into the appropriate registers for the stub call. Since stubs that
take arguments in registers do not (currently) take any arguments on
the stack, the unused generality has been removed (it's easy to put
back in later).
Review URL: http://codereview.chromium.org/55003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1629
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 27 Mar 2009 10:17:50 +0000 (10:17 +0000)]
Fixed lint.
Removed one space added by Visual Studio.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/55006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1628
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 27 Mar 2009 09:56:53 +0000 (09:56 +0000)]
Debugger message handler can be called from V8 thread.
The message handler function set through the debugger API is normally called in a different thread than the V8 thread where execution is stopped due to debugger event. This change adds an option to the API for specifying that the message handler should be called directly from the V8 thread. For an application like Chrome where thread dispatching is already in place this makes more sense.
Add an option to the message handler debugger API to process messages in the thread where V8 is running instead of posting it to a queue for processing on a additional thread.
Review URL: http://codereview.chromium.org/42643
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1627
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 27 Mar 2009 08:38:02 +0000 (08:38 +0000)]
Moved stdio and string functions to POSIX platform file.
Review URL: http://codereview.chromium.org/45063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1626
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Fri, 27 Mar 2009 03:27:04 +0000 (03:27 +0000)]
Fixed second problem with special commands.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1625
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Fri, 27 Mar 2009 03:22:06 +0000 (03:22 +0000)]
Fixed special command problem I just introduced. Guess I should have
waited for review eh.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1624
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Fri, 27 Mar 2009 03:13:46 +0000 (03:13 +0000)]
Added url decoding of special commands.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1623
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Fri, 27 Mar 2009 00:24:49 +0000 (00:24 +0000)]
Fixed a bunch of memory leaks in tests, including:
- String traversal test data (now in a zone)
- Debug message thread (now joined on exit)
- Threading test threads (now joined on exit)
- Changed message tests framework to cope with valgrind
Also, fixed a bug where we'd try to delete stack-allocated objects
when tearing down v8. Good times.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1622
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 26 Mar 2009 13:14:10 +0000 (13:14 +0000)]
Optimize binary operations in which one or both operands is a constant smi.
Review URL: http://codereview.chromium.org/42006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1621
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 26 Mar 2009 13:02:00 +0000 (13:02 +0000)]
Change the arguments access stub to take both arguments in registers
rathern than one in a register and one on the stack.
Fix a stack height bug in the case that the arguments access stub hit
its slow case.
Review URL: http://codereview.chromium.org/49037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1620
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 26 Mar 2009 13:00:03 +0000 (13:00 +0000)]
In the IA32 code genrator, handle call ICs and constructor calls the
same as load and store ICs. Eliminate the general function used to
call any IC.
Review URL: http://codereview.chromium.org/42638
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1619
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 26 Mar 2009 10:25:49 +0000 (10:25 +0000)]
Inline part of RawSyncElementAt, split the rest into two
functions. Improve PrepareForCall, SyncRange, and SyncElementAt.
Review URL: http://codereview.chromium.org/49029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1618
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 26 Mar 2009 09:43:14 +0000 (09:43 +0000)]
Set svn:eol-style for platform-posix.cc to native.
The svn:eol-style property for platform-posix.cc is now set to native. This should get rid of the CR characters in the file added by comitting from Windows and make file lint again.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/42639
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1617
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 26 Mar 2009 09:28:27 +0000 (09:28 +0000)]
Move time related functions to POSIX platform file.
The functions getrusage, gettimeofday and localtime are in POSIX.1-2001.
Review URL: http://codereview.chromium.org/53045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1616
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Thu, 26 Mar 2009 05:43:54 +0000 (05:43 +0000)]
- Add missing files to the Xcode project.
TBR=mark@chromium.org
Review URL: http://codereview.chromium.org/53087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1615
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
feng@chromium.org [Wed, 25 Mar 2009 18:23:04 +0000 (18:23 +0000)]
Fix and cleanup ARM port:
1) removed unused function, PcStoreOffset;
2) use macro instruction, Jump, when branching from JS code to C code.
This CL replaces http://codereview.chromium.org/53039/show, per our discussion.
Review URL: http://codereview.chromium.org/42610
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1614
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 25 Mar 2009 14:08:41 +0000 (14:08 +0000)]
Simplify the way the code generator handles calls to IC stubs. Before
we dispatched on the IC stub kind in a generic CallCodeObject
function. Now, we have special functions for the load and store IC
stubs.
We also (for the load and store ICs) handle moving register arguments
into place only after the stack is prepared for the call. This
replaces some memory-to-memory moves (for copies whose backing store
is occupied by a register needed for the arguments) with
memory-to-register moves.
Review URL: http://codereview.chromium.org/42602
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1613
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 25 Mar 2009 14:07:52 +0000 (14:07 +0000)]
Add another check in profiler's stack iterator to ensure stability.
I made a test run of benchmarks and found another weak point. After
fixing it, benchmarks are able to run for a 100 times in a row
successfully in both builds.
Review URL: http://codereview.chromium.org/53050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1612
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 25 Mar 2009 12:59:25 +0000 (12:59 +0000)]
Added more checks to SafeStackFrameIterator to prevent crashes when profiling.
Tested by profiling 3d-morph.js a 100 times both in debug and release builds.
Review URL: http://codereview.chromium.org/42600
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1611
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 25 Mar 2009 12:37:49 +0000 (12:37 +0000)]
Move reference to variable that isn't used on ARM.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1610
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 25 Mar 2009 12:14:13 +0000 (12:14 +0000)]
Introduce splaytree.KeyNotFoundError and use it for reporting
issues when removing non-existing nodes from a SplayTree.
Review URL: http://codereview.chromium.org/42599
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1609
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 25 Mar 2009 12:14:10 +0000 (12:14 +0000)]
Moved String.prototype.match implementation to C++.
Some extra runtime assertions added.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1608
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 25 Mar 2009 11:05:36 +0000 (11:05 +0000)]
The code generator doesn't need to put the argument count in eax for
call ICs. Refactor CallRuntime on ARM to match the structure of IA32.
Update some comments.
Review URL: http://codereview.chromium.org/42598
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1607
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 25 Mar 2009 10:29:22 +0000 (10:29 +0000)]
Make sure to generate a CodeCreateEvent for the CPU features
probe code object, and really raise an exception if SplayTree.Remove
is called with a key that cannot be found.
Review URL: http://codereview.chromium.org/42597
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1606
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 25 Mar 2009 10:00:52 +0000 (10:00 +0000)]
Remove register counts from VirtualFrame, use register indices instead.
Review URL: http://codereview.chromium.org/42565
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1605
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 25 Mar 2009 09:35:11 +0000 (09:35 +0000)]
Use OpenThread instead of DuplicateHandle in Win32 profiler implementation.
OpenThread doesn't fail in Chrome sandbox, while DuplicateHandle does.
Review URL: http://codereview.chromium.org/49028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1604
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 24 Mar 2009 14:42:35 +0000 (14:42 +0000)]
Preparing push of version 1.1.3 to trunk.
Review URL: http://codereview.chromium.org/53012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1602
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 24 Mar 2009 14:29:49 +0000 (14:29 +0000)]
Strcmp thinko and SConstruct improvement for d8 on Android.
Review URL: http://codereview.chromium.org/42560
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1601
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 24 Mar 2009 14:25:22 +0000 (14:25 +0000)]
Make the "has function literal" default value for loops conservative.
It defaults to true so that if the analysis is not run we get a safe
analysis result.
Review URL: http://codereview.chromium.org/42562
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1600
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 24 Mar 2009 13:33:54 +0000 (13:33 +0000)]
Remove stl dependencies from d8.
Review URL: http://codereview.chromium.org/42559
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1599
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 24 Mar 2009 13:21:34 +0000 (13:21 +0000)]
Fix ARM simulator. Unless building for the actual ARM hardware,
inline assembler in C++ code should be IA32 assembly, not ARM.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/53011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1597
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 24 Mar 2009 13:11:34 +0000 (13:11 +0000)]
Fix ARM build for changes to VirtualFrame
Review URL: http://codereview.chromium.org/53009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1596
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 24 Mar 2009 12:47:53 +0000 (12:47 +0000)]
Add basic infrastructure for protecting V8's heap when leaving the VM
and unprotecting it when (re)entering. The functionality is enabled
by the flag --protect-heap and requires V8 to be built with
ENABLE_HEAP_PROTECTION and ENABLE_LOGGING_AND_PROFILING defined.
Implemented on Linux and Windows but not yet for other platforms.
Review URL: http://codereview.chromium.org/53004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1595
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 24 Mar 2009 12:42:28 +0000 (12:42 +0000)]
Fix issue 286. Ensure frame elements are invalidated by
InvalidateFrameSlotAt.
Review URL: http://codereview.chromium.org/53008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1594
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 24 Mar 2009 11:52:33 +0000 (11:52 +0000)]
Add pointers to a VirtualFrame that keep track of the indexes of register
frame elements.
Review URL: http://codereview.chromium.org/53005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1593
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 24 Mar 2009 11:07:09 +0000 (11:07 +0000)]
Preparing push of version 1.1.2 to trunk.
Review URL: http://codereview.chromium.org/42556
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1592
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 24 Mar 2009 10:49:25 +0000 (10:49 +0000)]
Add newline at end of test-debug.cc file. TBR=sgjesse@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1591
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 Mar 2009 10:42:00 +0000 (10:42 +0000)]
Added a test for debugger agent protocol message.
Review URL: http://codereview.chromium.org/42555
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1590
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 24 Mar 2009 10:16:30 +0000 (10:16 +0000)]
Test a few assertions that should hold.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1589
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 Mar 2009 10:15:02 +0000 (10:15 +0000)]
Change the debugger agent protocol to be RFC-822 compilant.
All headers are now terminated with CRLF and not jusr LF. The beginning of the body is indicated by an empty header (just CRLF).
Review URL: http://codereview.chromium.org/42553
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1588
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 24 Mar 2009 08:55:11 +0000 (08:55 +0000)]
Fix ARM performance regression on constructing array
and object literals by using the same logic as we use
on IA-32.
Review URL: http://codereview.chromium.org/53001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1587
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 24 Mar 2009 08:53:43 +0000 (08:53 +0000)]
Update test expectation.
TBR=plesner
Review URL: http://codereview.chromium.org/42554
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1586
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 24 Mar 2009 08:29:24 +0000 (08:29 +0000)]
Fix issue 284.
The problem was continuing out of the body of a for/in (where we do
register allocation) to the loop update (where we do not). Variables
allocated to registers where not preserved.
Review URL: http://codereview.chromium.org/53002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1585
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 24 Mar 2009 08:27:43 +0000 (08:27 +0000)]
Fix bug in context stores, where the store was ignored if there was a
read-only property in the prototype chain. Stores should only be
ignored if there is a read-only property on the object itself.
Review URL: http://codereview.chromium.org/42508
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1584
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00