Commit Graph

1052 Commits

Author SHA1 Message Date
olehougaard
427ba8ec40 Introducing a new StrNDup function that uses new[] for when we dispose the result using delete[].
Review URL: http://codereview.chromium.org/48127

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-18 12:27:37 +00:00
olehougaard
c2e2d59ed9 Fixing potentially problematic usage of OS::StrDup that caused some strings to be allocated with malloc() but freed with delete[].
Review URL: http://codereview.chromium.org/48126

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-18 11:55:40 +00:00
sgjesse@chromium.org
75bfe56832 Circumvent a bug in older glibc.
In glibc prior to 2.3.4 the return value from sem_timedwait is not -1
when it fails, but the actual error code.

Turned out that our ARM setup uses glibc 2.3.2.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-18 10:48:06 +00:00
kmillikin@chromium.org
a0a3388363 Add a bit to a virtual frame element telling if it's been copied. Set
it when a copy is made, clear it when the element is next written.
Review URL: http://codereview.chromium.org/42324

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-18 10:37:37 +00:00
whesse@chromium.org
10be4f7ffd Speed up the inner loop of free register allocation.
Review URL: http://codereview.chromium.org/42296

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-18 10:31:31 +00:00
kmillikin@chromium.org
22f9dbf651 Fix static overrun.
Review URL: http://codereview.chromium.org/48124

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-18 09:49:11 +00:00
sgjesse@chromium.org
d7f9992442 Added a wait with timeout to the platform semaphore class.
The code has been compiled and tested on Windows, Linux and Mac OS.

The FreeBSD version is a copy of the Linux version which should work on FreeBSD as well. According to the FreeBSD documentation clock_gettime is part of the standard C library so the assumption is that no additional link libraries is required for FreeBSD.
Review URL: http://codereview.chromium.org/48123

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-18 09:04:24 +00:00
lrn@chromium.org
89f466659c Flatten strings before parsing them as Date strings, and work on Vector of chars instead.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-17 13:27:21 +00:00
lrn@chromium.org
eb656c723b Moved subject and index before matches in RegExp lastMatchInfo.
Some minor changes, and removed the new handlescope in the inner loop of replace. Only really affects replaces on extremely long strings.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-17 12:44:20 +00:00
sgjesse@chromium.org
37d7dcd20c Add thread information to the debugger.
Each thread running V8 code is assigned an id in thread local storage the first time V8 code is run in it. The thread information returned to the debugger contains the number of threads, the id of each of these threads and which one is the current thread.

Added a threads command to the developer shell debugger for showing information on threads.
Review URL: http://codereview.chromium.org/48009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-17 11:40:47 +00:00
erik.corry@gmail.com
223ea84e56 Lint...
Review URL: http://codereview.chromium.org/42276

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-17 10:46:53 +00:00
erik.corry@gmail.com
608a99a90c Remove all uses of StringShape variables, since that has proven
to be error-prone and of little benefit in terms of performance.
Review URL: http://codereview.chromium.org/45010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-17 09:33:06 +00:00
sgjesse@chromium.org
f060eb3293 Changed preemption related stuff in debugger entry.
Fixed an assertion which did not hold when the debugger was recursively entered.

Removed the clearing of the preemption flag in debugger entry as there was no need for it. The handling of preemption by the stack guard takes care of the in debugger situation anyway.
Review URL: http://codereview.chromium.org/48004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-17 09:28:01 +00:00
kmillikin@chromium.org
21d97bca55 Simplify the construction of virtual frame elements in preparation for
switching to a linked representation of copied elements.  This change
avoids initializing frame elements to invalid unless they need to be.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-16 14:49:55 +00:00
sgjesse@chromium.org
2ca478f9fa The method yield is now available in the context created for threads in the developer shell.
Added options --preemption/--no-preemption and --preemption-interval to control preemption in the developer shell when running several threads. Default is still to enable preemption with interval 1ms if threads are created.
Review URL: http://codereview.chromium.org/48001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-16 10:08:59 +00:00
lrn@chromium.org
014f0fd841 ReplaceRegExpWithString: Avoid extending handle scope by adding scope inside loop.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-16 09:49:14 +00:00
olehougaard
9149e4c8db Fixed some memory leaks in unit tests.
Review URL: http://codereview.chromium.org/46103

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-16 07:53:20 +00:00
sgjesse@chromium.org
6a9d16f40f Missed a few comment changes in r1508.
Review URL: http://codereview.chromium.org/42175

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-16 07:36:52 +00:00
kasperl@chromium.org
0a09a08ec8 Add copyright notice to new test case.
Review URL: http://codereview.chromium.org/42216

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1514 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-15 22:44:23 +00:00
erik.corry@gmail.com
99063fe0f8 Fix GC related crash bug in search-replace.
Review URL: http://codereview.chromium.org/42214

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-15 22:28:26 +00:00
erik.corry@gmail.com
3aa57f7f65 Revert 1432, 1433, 1469 and 1472 due to a bug with literal objects.
Review URL: http://codereview.chromium.org/46088

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-15 16:18:20 +00:00
davemoore@chromium.org
46f753a184 - Added ability to call histograms from within v8
- Changed the StatsRates to use the new HistogramTimers

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-13 16:06:31 +00:00
christian.plesner.hansen@gmail.com
8dffcb9efa Flush ICs when adding setters to an object or setting a __proto__ to
an object that holds a setter.  If there are no store ics then no
flushing is done.  The implementation has been tweaked so that no ICs
are cleared during normal context creation.
This may cost us some performance but I'm submitting it as it is and
if there are problems we can either decide to be smarter about when,
what and/or how we clear, or back this change out altogether.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-13 13:43:07 +00:00
sgjesse@chromium.org
17b498c957 A new stack guard break flag DEBUGCOMMAND has been introduced. This is used to signal debug break due to debugger commands available in the queue for processing. If a stack guard break happens with this flag and not the DEBUGBREAK flag the no debug break event is generated and execution is resumed automatically when all debugger commands in the queue has been processed.
This makes it possible to remote debuggers to just add commands to the queue without having to request a break as well. As soon as any JavaScript executes the debugger commands will be processed and the response send to the remote debugger.

Currently hide this behind a flag (--debugger-auto-break) as the current command line debugger in Chrome is not designed for this new behaviour, whereas the new Chrome developer tools will use it.
Review URL: http://codereview.chromium.org/42173

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-13 13:26:21 +00:00
olehougaard
74722e199f Implementing __defineSetter__ and __defineGetter__ with an array index as argument as described in issue 242. For performance reasons, the change is not applied to arrays. This conforms to the behavior of Safari.
Review URL: http://codereview.chromium.org/46030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-13 11:40:09 +00:00
lrn@chromium.org
e2af4529c3 String.replace implemented in C++.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-13 10:22:38 +00:00
kmillikin@chromium.org
30af089bc5 Fix a test in the IA32 code generator for whether loop conditions
contain function literals.  The test was not conservative enough.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 19:49:19 +00:00
kmillikin@chromium.org
03d7c6bd1d Reenable the duplicated test at the bottom of for and while loops. It
is enabled for a loop by the absence of function literal
subexpressions in the condition expression.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 15:44:05 +00:00
kmillikin@chromium.org
d0e76971a6 Change the way we handle backward jumps in the code generator. Keep
the frame states of all the forward-entering frames that had merge
code generated.  At a backward branch, check if there is no merge code
or if we can reuse an existing merge block.
Review URL: http://codereview.chromium.org/40169

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 14:55:17 +00:00
ager@chromium.org
a4d60dd463 Prepare to push V8 version 1.1.1 to trunk.
Review URL: http://codereview.chromium.org/42122

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 14:10:44 +00:00
sgjesse@chromium.org
79aae815dd During the refactoring in r1461 and adding of script ids in r1468 the propagation of a boolean flag was missing. This caused the line numbers retreived through ScriptMirror objects to ignore the resource line offset information in the script.
Added an explicit false parameter where the parameter was previously left out.

Added a test case for this.


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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 14:03:05 +00:00
kmillikin@chromium.org
c7f2458912 Tweak an assertion in the jump target destructor so that it only
applies to initialized jump targets, and not in the case of a stack
overflow.
Review URL: http://codereview.chromium.org/42118

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 12:30:45 +00:00
ager@chromium.org
04cc9cfffd Revert the exception propagation fix. It leads to crashes because
Top::external_caught_exception_ and Top::try_catch_handler_ are no
longer in sync.  Pulling it out until I have the time to fix it.
Review URL: http://codereview.chromium.org/42117

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 12:29:17 +00:00
erik.corry@gmail.com
60d83a789b 8-byte align C stack on Linux and Windows.
Review URL: http://codereview.chromium.org/42116

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 10:20:32 +00:00
kasperl@chromium.org
765a3804a9 Prepare push to trunk. Now working on version 1.1.1.
Review URL: http://codereview.chromium.org/43123

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 07:11:15 +00:00
kasperl@chromium.org
039d25b27e Add support for running the tests through valgrind.
Review URL: http://codereview.chromium.org/43073

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-12 06:52:24 +00:00
ager@chromium.org
6eb3030479 Temporarily disable tests that no longer work on the ARM simulator.
Exclude the tests from the threaded tests because I don't want to
disable those on ARM.

The issue is that the simulator keeps the C++ and the JavaScript stack
separated.  This is not a problem on the real hardware and the tests
pass on our ARM box.
Review URL: http://codereview.chromium.org/42069

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 14:29:21 +00:00
erik.corry@gmail.com
912c8eb03a * Reapply revisions 1383, 1384, 1391, 1398, 1401, 1402,
1418, and 1419 from bleeding_edge, reverted in 1429.
* Fix of $1 accessor on sliced strings.
* Fix of lastParen method when last parenthesis did not match.
Review URL: http://codereview.chromium.org/43075

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 14:00:55 +00:00
kmillikin@chromium.org
3c41aab15d Ensure deallocation of the dynamically allocated shadow targets used
for compilation of try/finally, even in the case where control cannot
reach the end of the finally block.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 13:14:27 +00:00
kmillikin@chromium.org
1a7359fb9d Deallocate the dynamically-allocated shadow targets that we use for
compilation of try/catch and try/finally.
Review URL: http://codereview.chromium.org/42068

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 12:08:28 +00:00
ager@chromium.org
90093ea868 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.
Review URL: http://codereview.chromium.org/43070

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 11:13:15 +00:00
kmillikin@chromium.org
82df32b78c Fix issue 268 by explicitly calling Unuse (to deallocate all contained
virtual frames) on zone-allocated jump targets.  These include jump
targets in AST nodes and the entry and exit targets of deferred code.

See http://code.google.com/p/v8/issues/detail?id=268

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 10:25:48 +00:00
erik.corry@gmail.com
1094cfe1b6 Add a test that r1383 failed (harmlessly).
Review URL: http://codereview.chromium.org/44002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 09:29:29 +00:00
sgjesse@chromium.org
c8f01466ff See http://code.google.com/p/v8/issues/detail?id=269.
BUG=269
Review URL: http://codereview.chromium.org/43023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 07:34:48 +00:00
kmillikin@chromium.org
8d622ac4ac Fix formatting problem.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 06:31:21 +00:00
kmillikin@chromium.org
0e60cf38dc Fix issue 265 by handling extra statement state on the frame based on
the expectation at the break, continue, and return labels (including
shadowed ones) instead of based on the AST nodes.

See http://code.google.com/p/v8/issues/detail?id=265

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-11 06:17:19 +00:00
kasperl@chromium.org
1a9dc2d002 Move InitLineEnds and GetLineNumber to handles.cc to avoid
issues with a raw this pointer and GC.

Fix issue with FlattenString where we may keep a StringShape
alive across a GC.
Review URL: http://codereview.chromium.org/43020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-10 15:08:45 +00:00
kasperl@chromium.org
3f3ed140ba Fix typo.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-10 13:35:28 +00:00
kmillikin@chromium.org
e2254a30af Change expectation for the bug-265 test to allow crashing in release
builds.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-10 13:23:43 +00:00
christian.plesner.hansen@gmail.com
feb2594f8a Tweaked semantics of error prototype.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-10 13:15:24 +00:00