Commit Graph

4524 Commits

Author SHA1 Message Date
fschneider@chromium.org
bd6a8c1e4e Make the CompareStub and the UnaryOpStub accept smi inputs.
The stubs get an additional flag for including the smi code
inside the stub. This allows us to generate more compact code
if we don't want to inline the smi case outside the stub.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-15 10:14:25 +00:00
antonm@chromium.org
dae5fc6f81 Attempt to collect more garbage before panicking with out of memory.
Currently weak handles retain an object for another GC round (oftem times,
major GC round.)  Instrumenting Chromium shows that navigation leaves
many global objects which are only collected in next go.  Let's
attempt to collect more garbage when approacing OOM condition.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-14 17:48:56 +00:00
vitalyr@chromium.org
c3f04bf46f Add a few missing nops to signal no inlined code was generated.
Review URL: http://codereview.chromium.org/3399005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-14 16:38:02 +00:00
whesse@chromium.org
141e82b31e Allow List::sort, with an integer comparison function, to sort 64-bit pointers in profile-generator. Change a static const int member to be declared and defined only inside the class declaration in class Runtime.
Review URL: http://codereview.chromium.org/3424002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-14 15:16:32 +00:00
mikhail.naganov@gmail.com
228d56bd8e Add support for abortion in v8::OutputStream.
It's a good idea to allow receiver to interrupt data transmission.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-14 15:11:24 +00:00
whesse@chromium.org
fc83faa8fd Move inlined function declarations and support from codegen.* to runtime.*.
Review URL: http://codereview.chromium.org/3293002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-14 14:52:53 +00:00
mikhail.naganov@gmail.com
2388079051 Implement heap snapshots serialization into JSON. API is designed
to avoid storing serialized snapshot on VM, instead it is emitted
using output stream interface.

The size of JSON emitted is roughly equal to used heap size
(when stored as an ASCII string).

Now a whole heap snapshot can be serialized and transmitted outside
VM. This makes possible:
  - implementing non-async UI for heap snapshots inspection;
  - storing heap snapshots for further inspection;
  - remote profiling (we can even implement a snapshotting mode
    where a snapshot isn't even stored in VM, only transmitted --
    good for mobile devices);
  - creating tools for outside heap snapshots processing, e.g.
    converting to HPROF.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-14 11:49:06 +00:00
sandholm@chromium.org
2edf58e973 Recalibrate benchmarks.
Review URL: http://codereview.chromium.org/3300031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-13 13:55:26 +00:00
sgjesse@chromium.org
6ba4022033 Prepare push to trunk. We are now working on version 2.4.4.
Review URL: http://codereview.chromium.org/3308028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-13 09:10:47 +00:00
kasperl@chromium.org
dffb7533aa Implement for-in cache validity checking in the full codegen on IA-32.
Review URL: http://codereview.chromium.org/3376003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-13 06:13:20 +00:00
ager@chromium.org
666b98fb4b Handle both global and local variables potentially shadowed by
eval-introduced variables in full-codegen.

Make sure that x64 assembler records source positions for calls.
Review URL: http://codereview.chromium.org/3357022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-10 10:57:07 +00:00
lrn@chromium.org
bc2bf76129 Move string-search functions to separate file.
Review URL: http://codereview.chromium.org/3291021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-10 09:22:41 +00:00
lrn@chromium.org
84d8115ecf Fix bug in Array.prototype.indexOf/lastIndexOf when called on non-sparse non-arrays.
Review URL: http://codereview.chromium.org/3358025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-10 08:21:01 +00:00
ricow@chromium.org
997421b755 Cosmetic change, list author names in AUTHORS alphabetically.
Review URL: http://codereview.chromium.org/3311025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-10 08:12:34 +00:00
lrn@chromium.org
b6f047229c Added Michael Smith to Authors file (author of revision 5436).
Review URL: http://codereview.chromium.org/3327013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-10 07:08:03 +00:00
lrn@chromium.org
ac2ae05f85 make Date.parse properly handle TZ offsets
This makes, e.g., Date.parse("2010-08-31T22:35:36-09:00") work as
expected. Without this change, the "-9:00" timezone-offset portion
causes V8 to fail to properly parse that string into a date.
BUG=http://code.google.com/p/v8/issues/detail?id=857
TEST=Try Date.parse("2010-08-31T22:35:36-09:00") and make sure
that it gets parsed without errors and does not return NaN.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-10 07:00:28 +00:00
peter.rybin@gmail.com
4ed429cc43 Landing 3338012: Move a function below to private section.
Review URL: http://codereview.chromium.org/3295023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-09 17:45:21 +00:00
vitalyr@chromium.org
624b13a804 Custom call IC for String.fromCharCode.
Review URL: http://codereview.chromium.org/3291015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-09 13:38:01 +00:00
lrn@chromium.org
d1a674f7c1 Add sparse array handling to Array.protoype.indexOf/lastIndexOf.
Review URL: http://codereview.chromium.org/3132046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-09 12:57:32 +00:00
lrn@chromium.org
67d8302779 Avoid collecting symbol info for one-off preparsing.
Review URL: http://codereview.chromium.org/3356010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-09 11:49:21 +00:00
ager@chromium.org
e5b63e7213 Handle global variables potentially shadowed by eval-introduced
variables in full-codegen.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-09 10:44:24 +00:00
sandholm@chromium.org
3877e1132b Change threshold for using ComplexIndexOf (using Boyer-Moore string
search) from 5 to 7. 
Review URL: http://codereview.chromium.org/3294016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-08 12:57:50 +00:00
sandholm@chromium.org
3684dc4d88 Store pattern.length() in a local.
Review URL: http://codereview.chromium.org/3300020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-08 11:05:54 +00:00
lrn@chromium.org
dc4898aae2 Don't generate preparse data if lazy-flag is false.
Review URL: http://codereview.chromium.org/3304012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-08 10:33:15 +00:00
ager@chromium.org
d6b50d5a12 Prepare push of version 2.4.2 to trunk.
Review URL: http://codereview.chromium.org/3324010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-08 06:20:09 +00:00
podivilov@chromium.org
8c595da419 Move stack check below while statement.
Call to Runtime_StackGuard should be generated after loop body.
Otherwise, break position will be the previous position before
loop statement.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-07 15:34:16 +00:00
kaznacheev@chromium.org
73c02394bf Avoid pushing arguments twice in GenericBinaryOpStub.
Under some conditions (ADD, non-number arguments passed in registers)
GenerateRegisterArgumentsPush was called twice and the stack broke.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-07 13:33:40 +00:00
lrn@chromium.org
7d3711ef75 Avoid (some) symbol lookups at parse time if preparse data is available.
Review URL: http://codereview.chromium.org/3308010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-07 12:52:16 +00:00
serya@chromium.org
e54ad9ee86 Removing a wrong check.
A strings which represents an array index with length 8 and 9 digits do not pass this check. However generated hash is valid.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-07 11:32:20 +00:00
whesse@chromium.org
7368ce808e Fix the ambigous Operand(0) for newer C++ compilers.
Review URL: http://codereview.chromium.org/3351010/show
Committed for Thiago Farina <tfarina@chromium.org>


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-07 11:09:45 +00:00
vegorov@chromium.org
983ed89a14 Ensure that empty descriptor array is marked before visiting any maps in marking phase.
Review URL: http://codereview.chromium.org/3318014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-07 09:15:15 +00:00
whesse@chromium.org
119f630b67 Add test for calls to native runtime functions in extensions.
Review URL: http://codereview.chromium.org/3356007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-06 12:54:41 +00:00
vitalyr@chromium.org
ece887dabf Turn visitor_id into a byte field and free back one word in Map.
Review URL: http://codereview.chromium.org/3364007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-06 12:50:11 +00:00
kmillikin@chromium.org
47e6e4fa6f Prepare push to trunk. Now working on version 2.4.2.
Review URL: http://codereview.chromium.org/3305012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-06 11:31:07 +00:00
sgjesse@chromium.org
aa48d61c2b Improve performance of Error.stack when stack contains local functions.
BUG=http://crbug.com/53303
TEST=Use the test case attached in the bug report.

Patch by Xianzhu Wang <wangxianzhu@google.com>

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-06 09:10:11 +00:00
erik.corry@gmail.com
d59bb82f1f Add and use AsciiAlphaToLower. Move RemoveLast test. Add Clear test. This is a commit of http://codereview.chromium.org/3307003/show http://codereview.chromium.org/3312007/show and http://codereview.chromium.org/3341002/show for tfarina
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-03 12:59:52 +00:00
sgjesse@chromium.org
a6166065c4 Fix compilation on 64-bit Windows (a third try)
Review URL: http://codereview.chromium.org/3295014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-03 12:56:08 +00:00
sgjesse@chromium.org
5309a79e12 Fix compilation on 64-bit Windows (a second try)
TBR=pmehta@chromium.org
Review URL: http://codereview.chromium.org/3290009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-03 12:31:43 +00:00
vitalyr@chromium.org
62f7cd8500 Handle argument conversion in StringAddStub.
In case one of the arguments is known to be a string we emit a few
fast conversion attempts for the other.  This allows using the
StringAddStub instead of STRING_ADD_{LEFT,RIGHT} builtins.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-03 12:10:44 +00:00
sgjesse@chromium.org
bb7825051b Fix compilation on 64-bit Windows
TBR=pmehta@chromium.org
Review URL: http://codereview.chromium.org/3333015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-03 12:00:05 +00:00
sgjesse@chromium.org
d3e457303e Add API callback for tracking allocated memory
Allows the host application to provide a mechanism for notification and custom logging through a callback (set through the API V8::AddMemoryAllocationCallback and removed through V8::RemoveMemoryAllocationCallback), when V8 allocates ro frees memory. 

This replaces the current histogram data "V8.ExecutableMemoryMax" by allowing usage data to be logged by the application as required rather than always through V8. 

BUG=http://crbug.com/54222
TEST=Set the callback function with the API and cause V8 to allocate memory.

Patch by Paul Mehta <pmehta@chromium.org>

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-03 11:31:58 +00:00
erik.corry@gmail.com
2b1e4560e7 Clang compatibility changes. This is a commit of http://codereview.chromium.org/3364002 for coldredlemur
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-02 10:18:44 +00:00
erik.corry@gmail.com
76e3e2afbb ARM: Handle bitwise operations with literal Smi for 32bits integers without calling the GenericBinaryOpStub. Refactored and updated the routine to convert a signed int to a double. This is a commit of http://codereview.chromium.org/3247008 for Rodolph Perfetta.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-02 08:30:52 +00:00
lrn@chromium.org
5628d3c482 Fix parsing of /**/--> on first line of input.
BUG=53548
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-02 07:36:30 +00:00
lrn@chromium.org
fce2fad17e Fix bug in JSON character quote table.
Review URL: http://codereview.chromium.org/3349006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-02 07:35:35 +00:00
lrn@chromium.org
6670c0ad38 Make JSON.stringify not quote non-ASCII characters. Fix bug 855.
Review URL: http://codereview.chromium.org/3336001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-02 07:09:28 +00:00
vitalyr@chromium.org
780934e17f ia32 StringAddStub: fast two character case.
Review URL: http://codereview.chromium.org/3327001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-01 17:20:36 +00:00
yurys@chromium.org
5b1ba9a48c Don't access PagedSpace::executability after the object has been destroyed
Review URL: http://codereview.chromium.org/3344001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-01 17:01:58 +00:00
whesse@chromium.org
990992a857 Remove CodeGenerator::PatchInlineRuntimeEntry and replace its single use in test-log-stack-tracer.cc with an alternative implementation.
Review URL: http://codereview.chromium.org/3311002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-01 13:13:31 +00:00
mikhail.naganov@gmail.com
ead8b4bea6 Fix memory overrun possibility during tick samples processing.
This really can cause crash described in crbug/51919.

BUG=51919
TEST=NONE

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-01 13:08:39 +00:00