kasperl@chromium.org [Tue, 3 Mar 2009 13:35:05 +0000 (13:35 +0000)]
Disable the compilation caching for scripts to make it
possible to start generating code specific to a global
object. We should start caching scripts but make the
mechanism local to a specific global context inspired
by the way we handle eval-caching.
Review URL: http://codereview.chromium.org/40007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1406
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 3 Mar 2009 12:23:45 +0000 (12:23 +0000)]
Add V8 debugger agent.
The debugger agent listens on a TCP/IP port for a remote debugger connection. When such a connection is established the debuger JSON protocol is communicated between the agent the the remote debugger. The messages containing the JSON protocol has a RFC-822 like header with a Content-Length field and with the body containing the JSON in UTF-8 encoding.
The D8 shell has option --debugger-agent to start the debugger agent.
Review URL: http://codereview.chromium.org/27355
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1405
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 3 Mar 2009 11:56:44 +0000 (11:56 +0000)]
Dump more stack frames to perf log when executing a C++ function.
JavaScriptFrameIterator is templatized on the iterator type and renamed to JavaScriptFrameIteratorTemp.
The original JSFI is now a typedef for JavaScriptFrameIteratorTemp<StackFrameIterator>. Because of templatizing, JSFI code is moved to frames-inl.h
StackTraceFrameIterator moved to frames.*
Implemented SafeStackFrameIterator which wraps StackFrameIterator and have the same interface. It performs additional checks of stack addresses prior to delegating to StackFrameIterator. SafeSFI is used in an another specialization of JavaScriptFrameIteratorTemp template to perform safe JS frames iteration on sampler ticks.
I haven't took an advantage of having multiple stack frames in tickprocessor yet.
Review URL: http://codereview.chromium.org/39009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1404
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 3 Mar 2009 11:51:59 +0000 (11:51 +0000)]
Before emitting code to merge frames, forget the sync flag (telling
that an element is mirrored in memory) for elements whose target is a
register. This avoids generating some duplicate merge blocks.
Review URL: http://codereview.chromium.org/40005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1403
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 3 Mar 2009 10:54:12 +0000 (10:54 +0000)]
Optimized regexp.test. No longer creates an intermediate string array.
Removed some handler code.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1402
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 3 Mar 2009 09:11:09 +0000 (09:11 +0000)]
Validation of flattened regexps on ARM now doesn't expect a native code.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1401
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 2 Mar 2009 21:09:25 +0000 (21:09 +0000)]
Change svn:eol-style to native.
TBR=mikhail.naganov@gmail.com
Review URL: http://codereview.chromium.org/27349
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1400
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 2 Mar 2009 19:02:27 +0000 (19:02 +0000)]
Unify the handling of the event and response JSON in developer shell debugger.
Formatting of both debugger events and debugger responses are now unified into one function. This is mainly in preparation for the upcomming remote debugging support where having it a one function simplify things.
Review URL: http://codereview.chromium.org/27330
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1399
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 2 Mar 2009 13:58:37 +0000 (13:58 +0000)]
All RegExp data are set on a single FixedArray instead of nesting them three deep.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1398
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 2 Mar 2009 11:30:17 +0000 (11:30 +0000)]
Simplify the way that we compile slow-case switch statements. Compile
all the reachable tests first, and then all the reachable bodies.
Review URL: http://codereview.chromium.org/28296
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1397
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Mon, 2 Mar 2009 09:09:07 +0000 (09:09 +0000)]
all-in-one
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1393
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Sat, 28 Feb 2009 13:59:55 +0000 (13:59 +0000)]
Check the return value of fwrite.
Newer versions of glib stdio mark fwrite() with war_unused_result.
Commiting for estade@chromium.org.
See http://codereview.chromium.org/27305
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1392
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 27 Feb 2009 14:02:00 +0000 (14:02 +0000)]
Fix regression in regexp-caching.html
Review URL: http://codereview.chromium.org/27273
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1391
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 27 Feb 2009 13:49:47 +0000 (13:49 +0000)]
Mark a flaky ARM test as flaky.
Review URL: http://codereview.chromium.org/28257
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1390
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 27 Feb 2009 13:00:32 +0000 (13:00 +0000)]
Merge from experimental code generator branch to bleeding edge.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1389
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 27 Feb 2009 11:55:57 +0000 (11:55 +0000)]
Prepare push to trunk. Now working on version 1.0.4.
Review URL: http://codereview.chromium.org/31015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1387
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Fri, 27 Feb 2009 11:19:31 +0000 (11:19 +0000)]
Align code entry points to 32 bytes.
Review URL: http://codereview.chromium.org/27269
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1386
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 27 Feb 2009 10:16:31 +0000 (10:16 +0000)]
Add missing copyright boilerplate.
Review URL: http://codereview.chromium.org/27268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1384
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 27 Feb 2009 10:04:34 +0000 (10:04 +0000)]
Avoids allocating a JSArray of capture information on each non-global
regular expression match.
Also moves all last-match information into one place where it can be
updated from C++ code (this will be used in another afsnit).
Review URL: http://codereview.chromium.org/28184
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1383
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 26 Feb 2009 15:48:32 +0000 (15:48 +0000)]
Two small changes regarding GC ticks.
1) Don't try to sample the stack if VM is in 'GC' state
2) Show GC ticks in profiler statistics
Review URL: http://codereview.chromium.org/27213
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1380
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 26 Feb 2009 14:30:30 +0000 (14:30 +0000)]
Fix lint errors.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/27208
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1378
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 26 Feb 2009 13:45:11 +0000 (13:45 +0000)]
Make test-log-ia32.cc compile even if ENABLE_LOGGING_AND_PROFILING is not defined.
Review URL: http://codereview.chromium.org/28182
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1377
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 26 Feb 2009 13:32:44 +0000 (13:32 +0000)]
Skip flaky (occasionally crashes) test on ARM until issue has been resolved.
BUG=240
Review URL: http://codereview.chromium.org/28183
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1376
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Thu, 26 Feb 2009 12:40:50 +0000 (12:40 +0000)]
Experimental (somewhat): Force GCs when disposing contexts, but
make sure not to do it repeatedly for bursts of context
disposals.
Review URL: http://codereview.chromium.org/27201
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1375
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 26 Feb 2009 11:55:35 +0000 (11:55 +0000)]
Change the D8 JavaScript debugger to fully use the JSON protocol.
The D8 debugger frontend now only processes JSON messages. Before the debugger events was passed as objects.
Changed the debugger events JSON generation to use the same serailizer as the responses to requests. This provides correct serialization of mirror objects in debugger events. Renamed ResponsePacket to ProtocolMessage as it is not only used for responses.
Review URL: http://codereview.chromium.org/27202
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1374
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Thu, 26 Feb 2009 08:05:03 +0000 (08:05 +0000)]
Follow on to r1368: Remove unnecessary HandleScope in the StubCompilers.
Review URL: http://codereview.chromium.org/27156
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1373
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Thu, 26 Feb 2009 07:54:22 +0000 (07:54 +0000)]
Go into slow case when encountering object initialization on the top level to optimize performance of code like
C.prototype.x = ...;
C.prototype.y = ...;
...
C.prototype.z = ...;
Review URL: http://codereview.chromium.org/27128
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1372
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 26 Feb 2009 07:05:53 +0000 (07:05 +0000)]
Fix lint issues found by tools/presubmit.py.
TBR=mikhail.naganov
Review URL: http://codereview.chromium.org/28178
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1371
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Wed, 25 Feb 2009 16:52:15 +0000 (16:52 +0000)]
- Pass the knowledge whether the old GC is compacting to the GC prologue and epilogue. This allows us to skip frame cooking and uncooking when doing a mark-sweep GC.
- Add the ability for the code to refer to its code object by adding a handle to the code object in the MacroAssembler.
Review URL: http://codereview.chromium.org/27133
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1368
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Wed, 25 Feb 2009 16:23:49 +0000 (16:23 +0000)]
Remove PCRE files from Xcode project.
Review URL: http://codereview.chromium.org/27134
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1367
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 25 Feb 2009 16:13:57 +0000 (16:13 +0000)]
Fix ARM build.
TBR=olehougaard@chromium.org
Review URL: http://codereview.chromium.org/28115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1366
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 25 Feb 2009 16:00:21 +0000 (16:00 +0000)]
Adding unit tests for profiler's stack tracer.
The testing is a bit tricky because we need to obtain a frame
pointer (EBP on IA-32) from inside of a function. This is especially
interesting in case of a compiled JavaScript function.
Review URL: http://codereview.chromium.org/28112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1365
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 25 Feb 2009 14:57:46 +0000 (14:57 +0000)]
Use SSE3 instructions - if available - for faster To(U)Int32
conversion in bit operation stubs. Disable serialization
support by default to allow us to use SSE3 instructions and
faster write barrier code when running without snapshot.
Review URL: http://codereview.chromium.org/27046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1364
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 25 Feb 2009 12:46:23 +0000 (12:46 +0000)]
Prepare push to trunk. Now working on version 1.0.3.
Review URL: http://codereview.chromium.org/27129
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1359
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 25 Feb 2009 10:09:42 +0000 (10:09 +0000)]
Issue 63: Running tests fails of there is a dot in the checkout path
Patch by Matt Hanselman (http://codereview.chromium.org/27086). Pass in the module's filename while loading rather than the full path (so call to load_module now matches find_module). Otherwise dots in path name get mistaken for file suffixes.
Added Matt Hanselman to AUTHORS file.
BUG=63
Review URL: http://codereview.chromium.org/28109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1356
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 25 Feb 2009 08:08:01 +0000 (08:08 +0000)]
Remove JSCRE
Review URL: http://codereview.chromium.org/21504
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1355
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 Feb 2009 20:55:11 +0000 (20:55 +0000)]
Remove obsolete function NewArrayLiteral.
This function (which creates a tenured JS array) was not use by any code.
Review URL: http://codereview.chromium.org/28070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1354
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 24 Feb 2009 14:58:48 +0000 (14:58 +0000)]
A refinement of cl 28068.
Review URL: http://codereview.chromium.org/28069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1352
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 Feb 2009 14:22:42 +0000 (14:22 +0000)]
Fixed lint errors.
The previous commit (r1349) resulted in a number of lint errors - extra whitespace and a missing explicit on a constructor in the test. These has been fixed.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/27089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1351
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 24 Feb 2009 13:33:49 +0000 (13:33 +0000)]
Fixed regression code.google.com/p/v8/issues/detail?id=236.
The problem was that the case of 'undefined' script source wasn't
handled in Script::InitLineEnds.
Review URL: http://codereview.chromium.org/28068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1350
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 Feb 2009 13:32:01 +0000 (13:32 +0000)]
Add socket support to platform code.
The new Socket class is an encapsulation of the standard BSD socket API. As it depends on platform specific include files and have some slight platform variations it is part of the platform code.
On Mac OS only the option SO_REUSEADDR is set to true for server sockets. Running the test required it as the bound listener socket would sometimes end up in TIME_WAIT. On Windows and Linux this has never been observed (given the client end of the socket is closed before the server end).
The code has been tested on Windows, Linux and Mac OS. The FreeBSD version is a copy of the Linux version but has not been compiled nor tested.
Missing Xcode project updates.
Review URL: http://codereview.chromium.org/27085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1349
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 24 Feb 2009 13:11:53 +0000 (13:11 +0000)]
Speed up access to global variables from eval scopes. Traverse the
surrounding context to figure out if the variable could be global. If
the variable could be global we check context extension objects at
runtime and use a global LoadIC if no variables have been introduced
by eval.
Fix crash bug when loading function arguments from inside eval. The
shadowed variable in the DYNAMIC_LOCAL case does not rewrite to a slot in
that case.
Review URL: http://codereview.chromium.org/28027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1348
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 Feb 2009 07:36:58 +0000 (07:36 +0000)]
Added ticks to the display of unknown time in the profile.
Review URL: http://codereview.chromium.org/27050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1343
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 23 Feb 2009 12:18:46 +0000 (12:18 +0000)]
Only account for actual time spend in call path calculation.
The call path section of the profile now starts with information on the percentage of the ticks which does not contain call path information.
Added tick count to the call path part as well.
Review URL: http://codereview.chromium.org/28022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1338
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 23 Feb 2009 12:05:40 +0000 (12:05 +0000)]
Cleanup the ARM code generator for try...catch and try...finally by
clarifying the comments and simplifying code.
Review URL: http://codereview.chromium.org/27047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1337
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 23 Feb 2009 09:52:59 +0000 (09:52 +0000)]
Even more tests of ToInt32 conversion (from Lasse).
Review URL: http://codereview.chromium.org/28020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1335
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 23 Feb 2009 08:41:33 +0000 (08:41 +0000)]
Extend test case to check truncation and 64-bit ints.
Review URL: http://codereview.chromium.org/27045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1333
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 20 Feb 2009 17:42:04 +0000 (17:42 +0000)]
Revert 1330:1331.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/24026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1332
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 20 Feb 2009 14:23:54 +0000 (14:23 +0000)]
Simplify non-smi bit operation optimization. The explicit range
checks are not needed. If we fail to store the float as a 64-bit
integer, we just go to the runtime system. The only extra case in
which we enter the runtime system is for NaN which should not matter.
Review URL: http://codereview.chromium.org/21539
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1331
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 20 Feb 2009 13:30:32 +0000 (13:30 +0000)]
Improve generated code for non-smi bit operations by
converting the operands to 32-bit ints directly in the
machine code stub instead of just checking if the heap
numbers really just represent 32-bit ints and going
through the runtime system in that case.
Review URL: http://codereview.chromium.org/21536
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1330
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 20 Feb 2009 13:21:41 +0000 (13:21 +0000)]
Minor fix to fix building without ENABLE_LOGGING_AND_PROFILING defined.
Review URL: http://codereview.chromium.org/21534
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1329
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 20 Feb 2009 13:03:54 +0000 (13:03 +0000)]
Add test for GC during RegExp.
Fix bug found by test.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1327
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 20 Feb 2009 11:31:44 +0000 (11:31 +0000)]
Introduced a platform independent version of strchr, as the return value is const on Windows.
This fixes building of D8 on Windows.
Mac OS and FreeBSD changes have not been tested.
Review URL: http://codereview.chromium.org/20534
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1326
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mike@belshe.com [Fri, 20 Feb 2009 01:56:08 +0000 (01:56 +0000)]
add ticks to tickprocessor
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1323
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 19 Feb 2009 15:27:44 +0000 (15:27 +0000)]
Rearrange the code in Scope::ResolveVariable.
I find this clearer and it also enables the DYNAMIC_LOCAL optimization
for code executed by eval that itself uses eval:
eval("(function() { var x = 2; eval('1'); do stuff with x...; })()")
Review URL: http://codereview.chromium.org/24023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1322
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 19 Feb 2009 14:29:48 +0000 (14:29 +0000)]
Fixed Linux build.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/20493
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1319
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 19 Feb 2009 14:02:42 +0000 (14:02 +0000)]
Add host callback for debug break.
Add the ability to have the host embedding V8 receive a callback in the V8 thread while V8 is processing a debug callback. When V8 is processing a debug callback the thread where V8 is executing is sitting in a tight loop processing debug commands until the continue command has been executed. In some embedding situations it is beneficial to be able to call back into the embedding host from the thread where V8 is sitting. The might have functions which needs to be called to complement the JavaScript debugging.
Using the uint16_t array to pass a void* is a temporary hack.
Review URL: http://codereview.chromium.org/20491
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1318
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 19 Feb 2009 10:03:27 +0000 (10:03 +0000)]
A little peephole optimization for the Irregexp bytecode interpreter.
Review URL: http://codereview.chromium.org/21481
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1311
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 19 Feb 2009 08:24:28 +0000 (08:24 +0000)]
Limit how many places we generate code to flush the same actions. This gives a
13% code size reduction in the php regexp with no discernable performance loss.
Review URL: http://codereview.chromium.org/20457
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1309
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 19 Feb 2009 07:22:53 +0000 (07:22 +0000)]
Commit of eval changes left out because they were stuck in another changelist.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1307
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
patrick@chromium.org [Thu, 19 Feb 2009 04:26:04 +0000 (04:26 +0000)]
Update d8 preemption mode to support multiple files per line. Each line is run
in its own context. Files are separated by spaces, and will be run in order,
left to right.
Also add support for comment lines, which start with '#'.
Review URL: http://codereview.chromium.org/20319
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1306
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 18 Feb 2009 16:12:40 +0000 (16:12 +0000)]
Profiler tick processor now counts IC ticks on behalf of a caller.
This is enabled by default. To get back to old behavior, use '--separate-ic' switch.
Review URL: http://codereview.chromium.org/21452
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1305
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 18 Feb 2009 16:07:03 +0000 (16:07 +0000)]
Irregexp:
* Fix UC16 character classes on ASCII subjects.
* Fix sign problem in Irregexp interpreter.
* Make passes over text nodes more readable.
Review URL: http://codereview.chromium.org/21450
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1304
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 18 Feb 2009 15:55:24 +0000 (15:55 +0000)]
Not sure what happened, but my revert did not get everything out. Fixing the problem instead. The issue was using tmp instead of context in two places.
TBR=kasperl
Review URL: http://codereview.chromium.org/20459
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1303
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 18 Feb 2009 15:34:37 +0000 (15:34 +0000)]
Revert eval changes since there is a crash that I don't have the time
to fix now.
TBR=kasperl
Review URL: http://codereview.chromium.org/20458
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1302
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 18 Feb 2009 13:54:13 +0000 (13:54 +0000)]
ARM side of load optimization in the presence of eval.
Review URL: http://codereview.chromium.org/20453
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1301
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 18 Feb 2009 13:45:54 +0000 (13:45 +0000)]
Refactored command-line options handling in tick processor scripts
to remove code duplications. This makes easier adding new options.
Review URL: http://codereview.chromium.org/20452
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1300
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 18 Feb 2009 13:17:40 +0000 (13:17 +0000)]
Fix lint errors because of long line.
Review URL: http://codereview.chromium.org/21449
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1299
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 18 Feb 2009 13:04:28 +0000 (13:04 +0000)]
Optimize loads from variables that might be shadowed by variables
introduced by eval.
In the cases where calls to eval have not introduced any variables, we
do not need to perform a runtime call. Instead, we verify that the
context extension objects have not been created and perform a direct
load.
Not implemented for ARM yet and the scope resolution code could use
some better abstractions. I'd like to do that in a separate
changelist.
Review URL: http://codereview.chromium.org/20419
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1298
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 18 Feb 2009 10:29:56 +0000 (10:29 +0000)]
Include all the code in code creation log events. The code object header size is now added to the size Before ticks the last instructions of a JavaScript functions ended up as unaccounted in the profile.Include ticks in the the last created code object in the profile.Show the unaccounted ticks in the profile as a percentage together with the rest. Added an option to ignore unaccounted ticks in the percentage calculation.
Review URL: http://codereview.chromium.org/21410
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1295
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 17 Feb 2009 14:45:45 +0000 (14:45 +0000)]
Added the simplest call stack sampling and call profile in tick processor output.
Currently only two stack frames are sampled (current function and its caller).
Output of tick processor looks like this:
[Call profile]:
total call path
15.2% LazyCompile: am3 crypto.js:108 <- LazyCompile: montReduce crypto.js:583
6.5% LazyCompile: am3 crypto.js:108 <- LazyCompile: bnpSquareTo crypto.js:431
2.9% Builtin: KeyedStoreIC_Generic <- LazyCompile: montReduce crypto.js:583
2.3% LazyCompile: am3 crypto.js:108 <- LazyCompile: bnpMultiplyTo crypto.js:415
Tested under Windows, Linux and OS X.
Review URL: http://codereview.chromium.org/21403
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1292
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 Feb 2009 12:49:35 +0000 (12:49 +0000)]
Changed all log messages to be handled through the LogMessageBuilder instead of through fprintf directly to the log file.
Added a flag for the runtime %Log call and fixed its arguments checking. Use of %Log is only for debugging.
Review URL: http://codereview.chromium.org/21406
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1290
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 17 Feb 2009 08:56:36 +0000 (08:56 +0000)]
Array sort was changed in a way that completely undid another optimization.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1288
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 Feb 2009 08:31:53 +0000 (08:31 +0000)]
Fixed Linux build.
TBR=ager
Review URL: http://codereview.chromium.org/21402
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1286
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 Feb 2009 08:21:24 +0000 (08:21 +0000)]
First step in refactoring the logging system to allow the logging messages to have other destinations than an open file.
This change introduces a log message builder which builds the log message in a static string buffer instead of formatting the log message through fprintf. Currently this message can only be written to a file afterwards.
Changed the code related events to use the log message builder.
Review URL: http://codereview.chromium.org/20406
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1284
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 16 Feb 2009 13:31:13 +0000 (13:31 +0000)]
Fix debugger function that treated retry-after-gc failure as an
exception.
Minor indentation cleanup.
Review URL: http://codereview.chromium.org/20404
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1279
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 16 Feb 2009 10:18:34 +0000 (10:18 +0000)]
Lots of small optimizations, and one that is measurable (speeds up celtickane-array signficantly).
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1276
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 13 Feb 2009 14:20:03 +0000 (14:20 +0000)]
Added check for existing frames to the evaluate debugger request.
Fixed output of evaluated expressions from the debugger in the developer shell.
Use global evaluate request from developer shell if there is no JavaScript stack.
Remove use of JS2C macros in developer shell JavaScript code.
Review URL: http://codereview.chromium.org/21350
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1273
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 13 Feb 2009 12:56:44 +0000 (12:56 +0000)]
Modified printing of some types of heap objects to make the printing more uniform.
Review URL: http://codereview.chromium.org/21348
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1271
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 13 Feb 2009 12:50:47 +0000 (12:50 +0000)]
Fix lint errors and compile erors on Linux.
TBR=ager
Review URL: http://codereview.chromium.org/21349
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1270
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 13 Feb 2009 12:36:58 +0000 (12:36 +0000)]
Make the debugger completely unload when the debug event listener is unregistered.
Added a number of handle scopes to the debugger code to keep handles local to the function using them.
Fixed SetDebugEventListener to actually unregister when passed a NULL pointer. Previously this NULL pointer was wrapped in a Proxy.
BUG=
1242702
Review URL: http://codereview.chromium.org/21347
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1269
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 13 Feb 2009 10:03:06 +0000 (10:03 +0000)]
Prepare push to trunk containing two irregexp crash fixes and support
for morphing strings to external strings. Now working on version
1.0.2.
Review URL: http://codereview.chromium.org/20351
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1265
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 13 Feb 2009 09:40:15 +0000 (09:40 +0000)]
Missing handle check. Triggers bug if the runtime stack overflows and it is detected by a global regexp.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1263
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Thu, 12 Feb 2009 16:58:55 +0000 (16:58 +0000)]
Remove experimental ExternalSymbolCallback feature. This is not needed
since we can now transform String objects to be external when needed.
Review URL: http://codereview.chromium.org/21285
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1260
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 12 Feb 2009 13:07:58 +0000 (13:07 +0000)]
Issue 231 - Irregexp backtracking stack pointer could become corrupted.
http://code.google.com/p/v8/issues/detail?id=231
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1257
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 12 Feb 2009 09:29:02 +0000 (09:29 +0000)]
Fix a couple of typos reported as V8 issue 226.
Review URL: http://codereview.chromium.org/20298
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1255
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 12 Feb 2009 09:24:53 +0000 (09:24 +0000)]
Test for issue 87 was upgraded, but the old bug file wasn't deleted.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1254
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 12 Feb 2009 09:09:28 +0000 (09:09 +0000)]
Regular Expression literal flags may contain unicode escapes. If these escape any of the
valid flags, "gim", they should work.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1253
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Wed, 11 Feb 2009 23:52:52 +0000 (23:52 +0000)]
Allow the morphing of strings to external strings to avoid having to
create copies in the embedding code (aka WebKit V8 bindings) on every
external use.
Review URL: http://codereview.chromium.org/21117
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1252
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 11 Feb 2009 11:54:30 +0000 (11:54 +0000)]
Issue 227 Fixed. Properly handles non-ASCII characters in quick-check on ASCII strings.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1248
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Wed, 11 Feb 2009 07:38:31 +0000 (07:38 +0000)]
Fixing a few bugs to make the --log-state-change option work.
Review URL: http://codereview.chromium.org/20220
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1247
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 10 Feb 2009 08:25:25 +0000 (08:25 +0000)]
Fix for issue 228.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1244
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 10 Feb 2009 00:31:58 +0000 (00:31 +0000)]
Prepare push to trunk. Now working on version 1.0.1.
Review URL: http://codereview.chromium.org/21194
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1242
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 9 Feb 2009 16:00:55 +0000 (16:00 +0000)]
Fix linking of mksnapshot
Changelist http://codereview.chromium.org/20177 caused linking of mksnapshot to fail as link libraries where not specified. Updated build to link mksnapshot with pthread on Linux and Mac OS and with winmm on Windows.
Review URL: http://codereview.chromium.org/21171
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1241
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 9 Feb 2009 15:06:07 +0000 (15:06 +0000)]
Support for building V8 with MinGW
V8 can now be build with MinGW. It still fails the following four tests in debug mode:
mjsunit/parse-int-float
mjsunit/mirror-array.js
mjsunit/integer-to-string.js
mjsunit/regress/regress-114.js
Building with MinGW has been tested with version 5.1.4 using GCC 3.4.5.
In addition to supporting MinGW this change also makes it more explicit which targets needs to link with which libraries.
BUG=64
Review URL: http://codereview.chromium.org/20177
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1240
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 9 Feb 2009 12:17:39 +0000 (12:17 +0000)]
Moved some IA32 specific code from to the architecture dependent part of the debugger code.
Renamed functions related to patching of code with call instructions to match the naming conversion.
BUG=
1240753
Review URL: http://codereview.chromium.org/20176
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1239
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Mon, 9 Feb 2009 08:46:26 +0000 (08:46 +0000)]
Added one test case and moved another.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1238
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 5 Feb 2009 14:19:36 +0000 (14:19 +0000)]
Added the 'references' command to the debugger protocol to provide access to the mirror features of retreiving all the objects referencing a given object and all objects instantiated by a given function.
Added commands 'references' and 'instances' to the developer shell for using this new debugger protocol command.
Review URL: http://codereview.chromium.org/21080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1234
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 5 Feb 2009 13:53:41 +0000 (13:53 +0000)]
Add explicit null checks after string conversions in the shells.
This fixes issue 224.
Review URL: http://codereview.chromium.org/20081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1233
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 5 Feb 2009 13:24:13 +0000 (13:24 +0000)]
Fix bug 225 in regexp replace with function.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1232
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00