olehougaard
e3c0ae62af
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
2009-02-26 07:54:22 +00:00
ager@chromium.org
411b7d18f6
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
2009-02-26 07:05:53 +00:00
iposva@chromium.org
c093e94546
- 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
2009-02-25 16:52:15 +00:00
iposva@chromium.org
548a8bc2cf
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
2009-02-25 16:23:49 +00:00
kasperl@chromium.org
d8c56a7fc4
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
2009-02-25 16:13:57 +00:00
mikhail.naganov@gmail.com
632d4e4f3d
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
2009-02-25 16:00:21 +00:00
kasperl@chromium.org
1e42e70021
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
2009-02-25 14:57:46 +00:00
ager@chromium.org
539a29cbd3
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
2009-02-25 12:46:23 +00:00
sgjesse@chromium.org
6ace05ed2a
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
2009-02-25 10:09:42 +00:00
erik.corry@gmail.com
bbc2a73f31
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
2009-02-25 08:08:01 +00:00
sgjesse@chromium.org
57dfd336db
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
2009-02-24 20:55:11 +00:00
mikhail.naganov@gmail.com
1338c33eed
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
2009-02-24 14:58:48 +00:00
sgjesse@chromium.org
ad7ad5cfe0
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
2009-02-24 14:22:42 +00:00
mikhail.naganov@gmail.com
1d843bfa3d
Fixed regression http://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
2009-02-24 13:33:49 +00:00
sgjesse@chromium.org
be059966c1
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
2009-02-24 13:32:01 +00:00
ager@chromium.org
0c7af39737
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
2009-02-24 13:11:53 +00:00
sgjesse@chromium.org
6ea0862592
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
2009-02-24 07:36:58 +00:00
sgjesse@chromium.org
f85b52615b
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
2009-02-23 12:18:46 +00:00
kmillikin@chromium.org
0c1c8d1876
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
2009-02-23 12:05:40 +00:00
kasperl@chromium.org
adc9362b8b
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
2009-02-23 09:52:59 +00:00
kasperl@chromium.org
f6d9b194ba
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
2009-02-23 08:41:33 +00:00
kasperl@chromium.org
0e1819d0b8
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
2009-02-20 17:42:04 +00:00
ager@chromium.org
b6a1cd6787
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
2009-02-20 14:23:54 +00:00
kasperl@chromium.org
3afe470026
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
2009-02-20 13:30:32 +00:00
sgjesse@chromium.org
aeafc3bba4
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
2009-02-20 13:21:41 +00:00
lrn@chromium.org
f8051275e0
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
2009-02-20 13:03:54 +00:00
sgjesse@chromium.org
563287b02f
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
2009-02-20 11:31:44 +00:00
mike@belshe.com
0b4b32d9f7
add ticks to tickprocessor
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-20 01:56:08 +00:00
ager@chromium.org
c86b47f414
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
2009-02-19 15:27:44 +00:00
sgjesse@chromium.org
bdaf8320e4
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
2009-02-19 14:29:48 +00:00
sgjesse@chromium.org
44b83d3e77
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
2009-02-19 14:02:42 +00:00
erik.corry@gmail.com
b1fbed8cca
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
2009-02-19 10:03:27 +00:00
erik.corry@gmail.com
9c608b2c5a
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
2009-02-19 08:24:28 +00:00
ager@chromium.org
195753ff7b
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
2009-02-19 07:22:53 +00:00
patrick@chromium.org
1c0ebb7e1c
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
2009-02-19 04:26:04 +00:00
mikhail.naganov@gmail.com
4cc5c314d1
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
2009-02-18 16:12:40 +00:00
erik.corry@gmail.com
3f962f0f9c
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
2009-02-18 16:07:03 +00:00
ager@chromium.org
b4b5e3ca95
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
2009-02-18 15:55:24 +00:00
ager@chromium.org
19f04d16c7
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
2009-02-18 15:34:37 +00:00
ager@chromium.org
cafe25f258
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
2009-02-18 13:54:13 +00:00
mikhail.naganov@gmail.com
ddd2ac4015
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
2009-02-18 13:45:54 +00:00
ager@chromium.org
74ac71d846
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
2009-02-18 13:17:40 +00:00
ager@chromium.org
a09832ab76
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
2009-02-18 13:04:28 +00:00
sgjesse@chromium.org
98208125cb
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
2009-02-18 10:29:56 +00:00
mikhail.naganov@gmail.com
a23fd3284a
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
2009-02-17 14:45:45 +00:00
sgjesse@chromium.org
969d43e785
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
2009-02-17 12:49:35 +00:00
lrn@chromium.org
8cd31d295b
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
2009-02-17 08:56:36 +00:00
sgjesse@chromium.org
2ffc8d981e
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
2009-02-17 08:31:53 +00:00
sgjesse@chromium.org
577741308b
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
2009-02-17 08:21:24 +00:00
ager@chromium.org
d81fad1766
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
2009-02-16 13:31:13 +00:00