sgjesse@chromium.org
9487ef7b9b
Fix adding short external ascii strings
...
BUG=http://code.google.com/p/v8/issues/detail?id=536
TEST=cctest/test-strings/ExternalShortStringAdd
Review URL: http://codereview.chromium.org/466001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-02 12:58:10 +00:00
sgjesse@chromium.org
508e54d465
Fix debug build
...
Missed out on reflecting changes to Script object layout in objects-debug.cc.
Also fixed http://codereview.chromium.org/450034/diff/2006/2010 .
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/456021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 15:52:02 +00:00
sgjesse@chromium.org
fc713930ed
Remove the last context dependent reference from the Script object
...
For scripts originating from a call to eval the Script object used to hold a reference to the function from where the eval was called together with the code offset within that function of the eval call. This is used by the stack trace and is part of the debugger protocol. In order to avoid storing the function the script, the position within the script and the name of the function calling eval is stored instead. This avoids holding context dependent objects in the script object.
The calculation of the position of the eval in the script holding the eval is now done when the eval script is compiled as it is not possible to postpone this unless a reference is kept to the generated code for the function calling eval.
BUG=http://code.google.com/p/v8/issues/detail?id=528
TEST=cctest/test-api/Regress528
Review URL: http://codereview.chromium.org/450034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 14:36:45 +00:00
erik.corry@gmail.com
a0e12a3124
Fix toLocaleString-related breakage on buildbot.
...
TBR=ager
Review URL: http://codereview.chromium.org/449055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 14:19:23 +00:00
erik.corry@gmail.com
f9e150b78b
Speed up join on arrays.
...
Review URL: http://codereview.chromium.org/457021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 12:54:36 +00:00
ager@chromium.org
a8db297d14
Remove some of the cache validity checks for for-in enumeration. We
...
can check for these cases before caching the property names instead.
Review URL: http://codereview.chromium.org/455020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 10:25:29 +00:00
ager@chromium.org
0ee41eec90
Fix megamorphic load regression on ARM caused by the string
...
length/hash change.
Review URL: http://codereview.chromium.org/454018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 09:54:47 +00:00
fschneider@chromium.org
5debbc3693
Move CPU-specific constants from debug.h into the platform-specific directories.
...
The constant for the return sequence length (JSReturnSequenceLength) was
defined in debug.h. Since this constant are also needed outside the debugger code
I moved them into assembler-xxx.h. Otherwise compiling with debuggersupport=off
would fail on ARM.
BUG=http://code.google.com/p/v8/issues/detail?id=533
Review URL: http://codereview.chromium.org/456001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-30 15:09:49 +00:00
mikhail.naganov@gmail.com
dd38c22699
Add pause / resume profiling commands to debugger protocol.
...
This allows to profile "unresponsive" web pages in the same way
as it is possible to break into them with the debugger.
BUG=http://code.google.com/p/chromium/issues/detail?id=28689
Review URL: http://codereview.chromium.org/450011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-30 14:56:20 +00:00
fschneider@chromium.org
c76856c292
Introduce flag for using the fast compiler where possible.
...
We use the fast compiler only for top-level code right now.
When always_fast_compiler is set to true, we compile with
the fast compiler whereever possible.
By default this flag is set to false.
Review URL: http://codereview.chromium.org/449012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-30 13:35:59 +00:00
kasperl@chromium.org
402e356e82
Clear the compilation cache just before starting to do mark-sweep
...
garbage collections when receiving idle notifications. This allows
us to get rid of source code strings and generated code in the
heap that would otherwise be kept around in idle V8 instances.
Review URL: http://codereview.chromium.org/450007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-30 07:57:32 +00:00
sgjesse@chromium.org
6d163d9fd0
Remove usage of JSArray in Script object
...
Storing a JSArray in the Script object could cause an indirect reference from the compilation cache to a global object to be created. Now the line ends are only stored as a FixedArrya and when that is needed in JavaScript a JSArray copy is created. Changed some of the JavaScript code to cache the line ends in a local variable for better performance.
BUG=http://code.google.com/p/v8/issues/detail?id=528
TEST=test/test-api/Bug528
Review URL: http://codereview.chromium.org/434117
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-27 14:10:48 +00:00
sgjesse@chromium.org
5764362d6f
Add test to expose bug 528
...
BUG=http://code.google.com/p/v8/issues/detail?id=528
TEST=cctest/test-api/Bug528
Review URL: http://codereview.chromium.org/443021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-27 07:57:45 +00:00
fschneider@chromium.org
3a21aafa7c
Added fast compiler support for calling JS runtime functions.
...
Also added a simple test that invokes a JS runtime function
in top-level code.
Review URL: http://codereview.chromium.org/437081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-27 00:28:06 +00:00
fschneider@chromium.org
1c90793581
Fix bug in the fast compiler's object literal code
...
Fixes issue 526:
BUG=http://code.google.com/p/v8/issues/detail?id=526
The object literals code in the fast compiler returned an incorrect result
when getter or setters are defined together with computed properties.
Added a regression test that captures the most reduced version of this
problem.
Also added a test for object literals with getters/setters and
prototype properties.
Review URL: http://codereview.chromium.org/444001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-26 21:13:20 +00:00
lrn@chromium.org
eded148caf
Fast-codegen: Arguments object working on all platforms.
...
This time it's true.
Review URL: http://codereview.chromium.org/405033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-26 10:28:32 +00:00
kbr@chromium.org
c135f2de07
Fixed incorrect instruction usage in KeyedLoadIC for byte and word
...
external array types. Added regression test based on real-world
failing code and verified that it would have caught this error.
Review URL: http://codereview.chromium.org/437052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 20:29:11 +00:00
ager@chromium.org
7a6ebbdd6d
Do not crash if a V8 extension fails to compile or throws an exception
...
when the code is run.
Instead, return an empty context handle so the failure to create a
context can be handled.
BUG=http://crbug.com/28486
Review URL: http://codereview.chromium.org/442005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 16:46:56 +00:00
mikhail.naganov@gmail.com
2af151ee63
Include getters and setters callbacks invocations in CPU profiler log.
...
Logging getters and setters from DOM API is extremely useful for web
developers as setting (and getting!) several properties can cause
page relayouts which take significant time.
Review URL: http://codereview.chromium.org/434074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 16:39:18 +00:00
antonm@chromium.org
93d6199de0
When processing global vars initialization account for the case of splitted
...
global object (using hidden prototypes):
1) setters might be not on the global object itself, but on its prototypes;
2) if property on one of prototypes is readonly, we could shadow it.
Review URL: http://codereview.chromium.org/434035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 15:45:37 +00:00
erik.corry@gmail.com
c5052399e4
Fix 64 bit build. TBR=ager.
...
Review URL: http://codereview.chromium.org/442003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 13:27:15 +00:00
erik.corry@gmail.com
10e183d353
Make heap serialization nondestructive.
...
Review URL: http://codereview.chromium.org/441017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 12:55:33 +00:00
erik.corry@gmail.com
059b9bbc5e
Update with a hopefully complete list of macros
...
used by gcc to indicate ARM architectures.
Review URL: http://codereview.chromium.org/440017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 11:23:48 +00:00
mikhail.naganov@gmail.com
3267107040
Change 'debugger-auto-break' flag status.
...
I think we can promote this flag to stable status and enable it by default.
Review URL: http://codereview.chromium.org/441016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 10:11:34 +00:00
erik.corry@gmail.com
b0b5dbadbd
Fix bug 516 by recognizing yet another gcc macro that
...
indicates ARMv6.
Review URL: http://codereview.chromium.org/437056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 09:55:49 +00:00
lrn@chromium.org
d4d2277e2e
Fast-compiler: Add stack limit checks to back edges of while, do-while and for.
...
A few other tweaks.
Review URL: http://codereview.chromium.org/435020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 09:05:30 +00:00
sgjesse@chromium.org
8dbedbb30e
Added an ASSERT to code from r3350
...
Review URL: http://codereview.chromium.org/441014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 08:14:23 +00:00
sgjesse@chromium.org
4bc5aee624
Fix compilation error in r3350
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/435021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-24 14:45:27 +00:00
sgjesse@chromium.org
eb4d261e24
Remove the different length string types
...
The different length string types was used to encode the string length and the hash in one field. This is now split into two fields one for length and one for hash. The hash field still encodes the array index of the string if it has one. If an array index is encoded in the hash field the string length is added to the top bits of the hash field to avoid a hash value of zero.
On 32-bit this causes an additional 4 bytes to be used for all string objects. On 64-bit this will be half on average dur to pointer alignment.
Review URL: http://codereview.chromium.org/436001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-24 14:10:06 +00:00
ager@chromium.org
56074f783a
Prepare push to trunk. Now working on version 2.0.3.
...
Review URL: http://codereview.chromium.org/435018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-24 13:30:15 +00:00
ager@chromium.org
6ce4b10608
Re-enable all declarations in fast top-level compiler.
...
Disable fast top-level compiler for now because of issues 525 and 526.
Add regression test for issue 525.
Review URL: http://codereview.chromium.org/438017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-24 12:23:29 +00:00
mikhail.naganov@gmail.com
9d440fdd36
Store API callback entry address prior to entering a callback.
...
Callback entry address is stored in VMState and is later retrieved by
profiler stack sampler. This makes possible relating API entry to JS
stack, and this is simpler than trying to unwind native stack.
Review URL: http://codereview.chromium.org/437004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-23 14:43:00 +00:00
mikhail.naganov@gmail.com
c2f12a7293
Reimplement logging of API callbacks entry points in an easier way.
...
Now they are logging during "LogCompiledFunctions" cycle. API functions
are detected by examining SFI's "function_data" field.
Review URL: http://codereview.chromium.org/414036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-23 09:19:24 +00:00
ager@chromium.org
1fe8655fbc
Change the signature for StrNDup to match the implementation. This
...
mismatch causes problems if attempting to build d8 with readline
support.
Review URL: http://codereview.chromium.org/414033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 13:08:44 +00:00
mikhail.naganov@gmail.com
72d7453dc2
Fix issue 520: wrap Logger calls into LOG macro
...
BUG=520
Review URL: http://codereview.chromium.org/422001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 12:38:59 +00:00
mikhail.naganov@gmail.com
a9d7c378d8
Add logging of callbacks in prof-lazy mode.
...
This is needed to show calls to DOM in CPU profiles. I can think
of a better approach like adding specific functions into V8 API
for explicitly providing callback names and modifying bindings codegen
appropriately. My plan is as follows:
- submit this CL;
- implement anything I need to process log data and display DOM
calls in profiles;
- think again about adding specific functions and modifying bindings
codegen.
BUG=http://code.google.com/p/chromium/issues/detail?id=27613
Review URL: http://codereview.chromium.org/402100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 12:15:46 +00:00
ager@chromium.org
11ba1bd163
Prepare push to trunk. Now working on version 2.0.2.
...
Review URL: http://codereview.chromium.org/421003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 12:03:44 +00:00
ager@chromium.org
157e4f993b
Disable the fast top-level compiler for non-global declarations.
...
Reintroduce the bailout that was put in in revision 3224.
It causes interactive ui test failures in Chromium.
TBR=fschneider@chromium.org
Review URL: http://codereview.chromium.org/421002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 11:45:18 +00:00
erik.corry@gmail.com
43e8d5fa7f
Some optimizations for packer.js.
...
Review URL: http://codereview.chromium.org/409007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 10:11:45 +00:00
fschneider@chromium.org
d9d18b30f5
Implement IS_OBJECT and IS_FUNCTION as inlined runtime functions.
...
Summary:
This change fixes a performance regression introduced by the special
handling of regular expressions in typeof expressions.
As a result we regain ~8% speedup on 3d-raytrace and ~13% on boyer
(vs bleeding edge)
Description:
The macros IS_OBJECT and IS_FUNCTION are frequently used in the
JS runtime functions.
By introducing new inlined runtime functions %_IsFunction and %_IsObject
we avoid invoking the more expensive %_ClassOf function plus comparing
its result to a string.
Review URL: http://codereview.chromium.org/399111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-19 07:41:32 +00:00
ager@chromium.org
3cf9ce4736
Fix crash in string replace with regexp. If the suffix of the subject
...
string is larger than 2047 chars we will encode the slice as two Smis
instead of one. The calculation of the max size of the string builder
did not take this into account.
BUG=http://code.google.com/p/v8/issues/detail?id=515
Review URL: http://codereview.chromium.org/402056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 18:48:04 +00:00
ager@chromium.org
981480c3bd
Prepare push of version 2.0.0 to trunk. Now working on version 2.0.1.
...
Review URL: http://codereview.chromium.org/405018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 12:24:46 +00:00
erik.corry@gmail.com
446b1f4443
Correct dumb assert.
...
Review URL: http://codereview.chromium.org/402048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 12:14:21 +00:00
ager@chromium.org
ce20b5b461
Fixed bug in pixel array inline cache on x64. The value was not
...
zero-extended as it should be. Therefore, the index into the pixel
array could influence the value on reads.
BUG=http://code.google.com/p/chromium/issues/detail?id=26337
Review URL: http://codereview.chromium.org/399067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 11:36:29 +00:00
erik.corry@gmail.com
701c00f8b4
Accelerate charCodeAt on ARM.
...
Review URL: http://codereview.chromium.org/402012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 10:20:24 +00:00
sgjesse@chromium.org
d55d3ce89a
Add DebugMessageDispatchHandler
...
A callback on the debugger thread when a message is received. Allows the
embedding application to wake up the main thread in order to handle the
message. Useful when the embedding application is idle and sitting in a
select() call.
Patch by Ryan Dahl <coldredlemur@gmail.com>
Review URL: http://codereview.chromium.org/395013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 08:59:28 +00:00
kasperl@chromium.org
d5c355e367
Make sure to retry SetHiddenPropertiesObject if it
...
returns a failure.
Review URL: http://codereview.chromium.org/402034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 00:09:28 +00:00
lrn@chromium.org
1bc9a21e9a
Sorry, this should have gone to http://codereview.chromium.org/391014
...
I added some tests and swapped the lhs and rhs of the && operator in v8natives.js as requested.
Review URL: http://codereview.chromium.org/384132
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 13:54:05 +00:00
antonm@chromium.org
9a545949a4
Restore invariant (next of first deallocated must point to the head) before calling into weak
...
callbacks.
Otherwise if callback allocates a new handle, it could orphan some global handles (with disastorous
consequences if those global handles are cached).
Review URL: http://codereview.chromium.org/395024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 13:50:07 +00:00
erik.corry@gmail.com
41749529dd
Speed up charCodeAt on very large cons strings, by insisting on
...
flattening the strings and not trying too hard to traverse a big
cons tree from generated code.
Review URL: http://codereview.chromium.org/402008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 10:28:04 +00:00
sgjesse@chromium.org
63925e5013
Add missing case for shr in IA-32 disassembler
...
Review URL: http://codereview.chromium.org/397024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 10:24:27 +00:00
sgjesse@chromium.org
459e4c6b0c
Changes to Intel shift functions
...
Change name of shifts picking the shift count from cl to sal_cl, shl_cl and shr_cl.
Add special encoding of shift by one for shr which was missing it.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 08:35:43 +00:00
fschneider@chromium.org
53bee811ad
Re-enable using push instructions for syncing the virtual frame.
...
This change fixes the problem with the original version of this approach
(r3032) that may lead to a corrupted stack if we would invoke spilling during
syncing a large SMI constant (unsafe SMIs) in the virtual frame.
The new code for storing unsafe SMI constants does not use an extra temporary
register. This prevents the compiler from ever having to spill during a
virutal frame sync operation.
For storing a large SMI constant we previously generated:
mov ecx, (large_smi & 0x0000ffff)
xor ecx, (large_smi & 0xffff0000)
push ecx
we now generate:
push (large_smi & 0x0000ffff)
or [esp], (large_smi & 0xffff0000)
Not using a temporary register avoids spilling within an nvocation
of VirtualFrame::SyncRange.
Review URL: http://codereview.chromium.org/391079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 23:11:19 +00:00
yurys@chromium.org
9bafc32932
Step next should respect do/while condition block.
...
Condition block of do/while statements is a valid break location so it should have its own position. The block is represented by a regular Expression node so we cannot store the position in it, instead the position is stored in a separate field in DoWhileStatement AST node.
BUG=514
Review URL: http://codereview.chromium.org/385136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 21:59:31 +00:00
yurys@chromium.org
b6ce7ce8a3
Fix some presubmit errors.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/400001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 16:58:09 +00:00
yurys@chromium.org
0a384a708d
Skip debugger frames when looking for calling context.
...
BUG=509
Review URL: http://codereview.chromium.org/398002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 14:41:55 +00:00
erik.corry@gmail.com
cc3896dfac
Fix bug 503: undefined <= undefined should return false on ARM.
...
Review URL: http://codereview.chromium.org/399001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 14:12:27 +00:00
erik.corry@gmail.com
64941f1cf9
* Remove old snapshot implementation
...
Review URL: http://codereview.chromium.org/394007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 12:08:40 +00:00
fschneider@chromium.org
5820f951c1
Improve the allocation and initialization of locals on IA32 in the top-level compiler.
...
This optimization is already done on x64 and ARM.
Until now we used a push immediate for each local variable on IA32:
push $undefined
push $undefined
...
to initialize each local variable. This change does:
mov eax, $undefined
push eax
push eax
...
Review URL: http://codereview.chromium.org/393009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 13:59:07 +00:00
lrn@chromium.org
4af20283a2
Disable "arguments" implementation. It was too optimistic in its assumptions.
...
Review URL: http://codereview.chromium.org/393010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 13:12:57 +00:00
erik.corry@gmail.com
df4f52347b
Allow a platform to indicate that some CPU features are always
...
available. We use this to ensure that snapshots on MacOSX can
use SSE2 instructions. Also clean up and assertify the
handling of things we can't do when we are generating a
snapshot. Fix a bug in the new serialization tests where
they activated Snapshot::enable() too late after code had been
generated that assumed no snapshots.
Review URL: http://codereview.chromium.org/391051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 12:32:57 +00:00
fschneider@chromium.org
1560b89888
Top-level compiler: Re-allow non-lazily compiled function literals.
...
This change re-allows non-lazy compiled function literals for top-level compilation.
There was a problem on ARM exposed through this change which was fixed as part of r3289
in fast-codegen-arm.cc (Threading and Threading2 tests failed)
It occurred before r3289 when we allocate a local context at the beginning of a function. The
code for the stack check was split up in an unintended way (load of stack check limit into r2,
and use of r2 in the actual stack check code).
Review URL: http://codereview.chromium.org/385070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 10:02:32 +00:00
fschneider@chromium.org
cfed6e1e8e
Fixes bug in the top-level compiler with the write barrier for assignments to context slots:
...
The test for a SMI before the write barrier tested the wrong register:
r0 = target context address
r1 = value to be written
This change fixes the SMI test and tests r1 instead of r0.
Review URL: http://codereview.chromium.org/384085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 09:51:49 +00:00
fschneider@chromium.org
b27f0c8d08
Cleanup and fix generated comments in the top-level compiler.
...
Review URL: http://codereview.chromium.org/384087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 09:42:18 +00:00
yurys@chromium.org
ff3e84539c
Remove trailing whitespace from objects.h
...
TBR=vitalyr
Review URL: http://codereview.chromium.org/387037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 16:52:48 +00:00
yurys@chromium.org
cc0ce24331
Make accessors for hidden properties object not touch interceptors.
...
Interceptors cannot provide a meaningful result for hidden_symbol anyway and some of them crash on empty property name.
Related Chromium issue: http://code.google.com/p/chromium/issues/detail?id=27385
Review URL: http://codereview.chromium.org/390020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 16:34:52 +00:00
erik.corry@gmail.com
407816af39
Fix some style issues in the ARM code.
...
Also move a function into the macro assembler.
Fix some *& placement errors that had accumulated.
Review URL: http://codereview.chromium.org/385069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 13:55:21 +00:00
erik.corry@gmail.com
0d94d7c785
Add vfp support on ARM. Patch from John Jozwiak.
...
Review URL: http://codereview.chromium.org/348019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 13:04:02 +00:00
lrn@chromium.org
1151b496bf
Fast-codegen: Added support for arguments in functions.
...
Functions using "arguments" have their arguments object created on entry.
Also added support for variables rewritten into argument object property access.
Review URL: http://codereview.chromium.org/384078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 11:38:01 +00:00
kbr@chromium.org
ffda5f5ff5
Fixed bug in x64 port of KeyedStoreIC::GenerateExternalArray where it
...
was always falling through to the runtime. Re-examined both load and
store ICs and verified they are now in sync with the 32-bit port.
Ran tests and benchmarks.
Review URL: http://codereview.chromium.org/385020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 23:06:11 +00:00
christian.plesner.hansen@gmail.com
d5ca1178cb
Fixed a few cases where allocators did not respect always_allocate,
...
potentially leading to bogus FatalProcessOutOfMemory situations. Also
fixed a few cases where callers relied on getting a NewSpace object
back (to avoid write barrier overhead) which they can't when
always_allocate is in effect.
Review URL: http://codereview.chromium.org/391018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 15:25:51 +00:00
erik.corry@gmail.com
6d91ffdafe
Fix thinko in fix for issue 484.
...
Review URL: http://codereview.chromium.org/391016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 14:32:14 +00:00
erik.corry@gmail.com
2d30963d1d
Log the stubs found in the snapshot so the profiler can give
...
a sensible output.
Review URL: http://codereview.chromium.org/385039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 12:35:50 +00:00
christian.plesner.hansen@gmail.com
5d4d5944dd
Remove special-case for arguments.toString to match ES5
...
Patch by Jan de Mooij <jandemooij@gmail.com>
Review: http://codereview.chromium.org/273073
Review URL: http://codereview.chromium.org/389008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 11:28:37 +00:00
lrn@chromium.org
d53f05e3e2
Fix warnings on Win64.
...
Set warning level to /W3 and change implicit conversions from size_t
to int. Most "fixes" are simply manifesting the implicit casts or using
a special strlen replacement that returns int.
Review URL: http://codereview.chromium.org/390004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 09:50:06 +00:00
erik.corry@gmail.com
78a8f5973d
Restore info needed to register profile ticks in functions from
...
the snapshot. Still needed: info to register profile ticks in
stubs.
Review URL: http://codereview.chromium.org/385035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 09:19:39 +00:00
ager@chromium.org
2252cc1bc9
Fix inline constructor code bailout.
...
Remove variable that is currently unused.
BUG=http://code.google.com/p/v8/issues/detail?id=502
Review URL: http://codereview.chromium.org/392001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 09:00:09 +00:00
yurys@chromium.org
cd9660f77c
All hidden properties of an object are stored in a value of a regular property with empty name. This property may confuse user if returned among regular properties. It should not be exposed directly by ObjectMirror. Should we want an access to these properties from debugger we need to implement an explicit method for that.
...
Current patch filters the hidden_symbol from property names returned to ObjectMirror.
See http://crbug.com/26491
Review URL: http://codereview.chromium.org/390001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 16:13:21 +00:00
ager@chromium.org
963d72ff57
Revert r3032 that uses push instead of 'sub esp, size'. This change
...
leads to stack corruption in 32-bit version of V8.
See http://code.google.com/p/chromium/issues/detail?id=27227 for a
reproducible case.
Since this is only an issue on 32-bit V8 I think this has got
something to do with the UnsafeSmi handling that we do on ia32. I'm
reverting for now so we can push a fix, but we should track down the
issue and create a regression test for this.
Review URL: http://codereview.chromium.org/383005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 14:58:16 +00:00
sgjesse@chromium.org
851b9b2f73
Remove sliced string string type
...
As a first step to reduce the complexity of the string hierachy the sliced string type is removed. Whenever a sub-string is created it is allocated as a fresh flat string.
Review URL: http://codereview.chromium.org/385004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 13:23:05 +00:00
lrn@chromium.org
c1efaa01fe
Reapply 3246 and 3247 after fixing valgrind warning.
...
Review URL: http://codereview.chromium.org/386001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 10:23:23 +00:00
fschneider@chromium.org
091c7a2306
Fixed bug in while-loops that caused an assertion to fail.
...
We forgot resetting true-/false-label to NULL after evaluating the
condition expression in dowhile- and while-loops.
This change fixes this.
This causes an assertion to fail in VisitIfStatement whenever there is an
if-statement after a while-loop before. e.g. like in:
var i=0, j=0;
while(j<5) { j++; }
if (i ==0 ) { j++; }
Review URL: http://codereview.chromium.org/371070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 09:57:13 +00:00
erik.corry@gmail.com
95d550578c
Revert 3245 and 3246 because they cause valgrind failures.
...
TBR=lrn
Review URL: http://codereview.chromium.org/372059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 17:05:51 +00:00
fschneider@chromium.org
5ba34775c7
Temporarily de-activate while-loops in the top-level compiler because
...
it makes some debug tests fail.
TBR=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/371069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 15:31:15 +00:00
erik.corry@gmail.com
526f83d6b9
Fix small memory leak in new serialization code.
...
Review URL: http://codereview.chromium.org/371068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:30:50 +00:00
fschneider@chromium.org
cff817d70b
Revert change r3240-3241 because it causes ARM tests to fail.
...
(non-lazily compiled function literals)
Review URL: http://codereview.chromium.org/376021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:30:35 +00:00
lrn@chromium.org
5b1faade55
Fast-compiler: Added trivial implementations of while and do/while.
...
Review URL: http://codereview.chromium.org/372055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:22:38 +00:00
erik.corry@gmail.com
9065114928
http://codereview.chromium.org/371067 thanks to Jan de Mooij
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:21:14 +00:00
ager@chromium.org
a29255e334
Inline common case of one capture when using replace with a regexp and
...
a function.
Review URL: http://codereview.chromium.org/371065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:17:50 +00:00
lrn@chromium.org
8ad022d544
Fix lint issue.
...
Review URL: http://codereview.chromium.org/379005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 12:18:25 +00:00
lrn@chromium.org
cf0d74554c
Remove unnecessary buffer doubling and content copying.
...
Review URL: http://codereview.chromium.org/377006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 11:52:18 +00:00
fschneider@chromium.org
be8e9c0b1c
Fix SVN merge problem in the top-level compiler.
...
(Remove bailout on non-global declarations again)
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/372054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 10:30:33 +00:00
erik.corry@gmail.com
b068a9f755
* Fix regexp benchmark regression where we were doing work to
...
make standard regexps like \s and . case independent.
* Make use of the fact that the subject string is ASCII only
when making character classes case independent.
* Avoid spending time making large ideogram or punctuation
ranges case independent when there is no case mapping anyway.
Review URL: http://codereview.chromium.org/378024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 10:01:23 +00:00
whesse@chromium.org
493c9f072c
Enable writes and reads of context slots in fast compiler.
...
Review URL: http://codereview.chromium.org/360054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 09:56:57 +00:00
fschneider@chromium.org
0afb1e1697
Add function literals that always require non-lazy compilation to the top-level compiler.
...
Review URL: http://codereview.chromium.org/371064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 09:43:24 +00:00
erik.corry@gmail.com
eec580cf5d
Fix missing () on function call causing warning on some versions
...
of gcc.
Review URL: http://codereview.chromium.org/371020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-06 14:06:35 +00:00
erik.corry@gmail.com
6a3921fc0e
Keep natives source code in external strings instead of putting
...
it in regular flat strings that are part of the snapshot.
After this change we don't need libraries-empty.cc any more. In
this change libraries-empty.cc is just a the same as libraries.cc
and the scons build builds it but does not use it. We can move
in stages to a situation where it is not generated at all for all
the build systems that we have.
Review URL: http://codereview.chromium.org/360050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-06 13:48:33 +00:00
christian.plesner.hansen@gmail.com
321bed24f6
Fixed problem where popping a handle scope after calling an accessor
...
would clobber the register holding the result.
Review URL: http://codereview.chromium.org/377004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-06 11:35:47 +00:00
erik.corry@gmail.com
57c919e414
Fix bug 486, Cyrillic character ranges in case independent regexps.
...
http://code.google.com/p/v8/issues/detail?id=486
Review URL: http://codereview.chromium.org/361033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-06 11:15:20 +00:00
fschneider@chromium.org
9a7c403bbb
Add support for all declarations in the top-level compiler:
...
Until now we only handled global declarations. This change
adds declarations of local variables, consts and functions.
Review URL: http://codereview.chromium.org/368005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 17:33:50 +00:00