lrn@chromium.org
81b0236d76
Make preparsing data reusable.
...
Fix bug in writing symbol ids over 128.
Review URL: http://codereview.chromium.org/3416010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-17 12:55:27 +00:00
fschneider@chromium.org
78f550c6fd
Add missing x87 instructions fisttp and fst to the disassembler.
...
Review URL: http://codereview.chromium.org/3408011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-17 12:08:50 +00:00
vitalyr@chromium.org
c6c55a69a9
Fix direct loading of global function prototypes:
...
We must also check the current context has not changed.
The bug reported by Florian.
Review URL: http://codereview.chromium.org/3410014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-17 09:56:47 +00:00
lrn@chromium.org
3b8235b306
Make some runtime arguments checks be RUNTIME_ASSERT, not ASSERT.
...
Review URL: http://codereview.chromium.org/3411013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-17 08:34:53 +00:00
peter.rybin@gmail.com
41064a57c3
Add breakOnCaughtException and breakOnUncaughtException flags
...
Review URL: http://codereview.chromium.org/3275011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 21:40:42 +00:00
kaznacheev@chromium.org
eef3bd7c04
Prevent inline constructor generation when duplicate properties are present in the constructor.
...
Currenly the constructor like this:
function f() {
this.a = 0;
this.a = 1;
this.a = 2;
}
creates a map with duplicate desciptors which is bad in many ways.
Review URL: http://codereview.chromium.org/3434004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 10:55:37 +00:00
fschneider@chromium.org
e91a352d02
Fix a regression in character-at stub when doing a keyed load on a string.
...
Loading from out-of-range has to go to the runtime system to check if there
exists a property with that index in the prototype.
Review URL: http://codereview.chromium.org/3410011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 09:18:08 +00:00
kasperl@chromium.org
b2306a41d0
Clean up the insertion of nops (signalling non-inlined loads and
...
stores) in the full codegens.
Review URL: http://codereview.chromium.org/3431010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 09:10:34 +00:00
mikhail.naganov@gmail.com
2133ee3fee
Really fix Mac build, and lint.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 08:51:13 +00:00
mikhail.naganov@gmail.com
64d07348ab
Fix compilation issue on Mac
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 08:39:27 +00:00
mikhail.naganov@gmail.com
187d249d92
Enhance SafeStackFrameIterator to avoid triggering assertions in debug mode.
...
When running profiling in debug mode, several assertions in frame
iterators that are undoubtedly useful when iterator is started from a
VM thread in a known "good" state, may fail when running over a stack
of a suspended VM thread. This patch makes SafeStackFrameIterator
to proactively check addresses and bail out from iteration early,
before an assertion will be triggered.
BUG=crbug/55565
Review URL: http://codereview.chromium.org/3436006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 08:23:34 +00:00
mikhail.naganov@gmail.com
b6c5c5b50d
Fix x64 compilation error. Patch from tfarina@chromium.org
...
http://codereview.chromium.org/3442004/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 08:17:46 +00:00
lrn@chromium.org
4d99cef867
X64: Templating Smi-macros to use both Label and NearLabel.
...
Added some more uses of NearLabel.
Review URL: http://codereview.chromium.org/3381005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 07:24:15 +00:00
erik.corry@gmail.com
83d6c1995f
Made the use of past tense more consistent in change log.
...
Review URL: http://codereview.chromium.org/3425005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-15 12:17:41 +00:00
ricow@chromium.org
240cee91e4
Add support for near labels.
...
This change introduces near labels in the assembler, allowing us to
uptimize forward jumps (conditional and unconditional) if we can
guarantee that the jump is witin range -128 to +127.
I changed a large fractions of the existing Labels to NearLabels, and
left out cases where it was not immediately clear if it could be used
or not (not immediately clear means labels covering a large code
block, or used in function calls which we could potentially change to
accept near labels).
Review URL: http://codereview.chromium.org/3388004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-15 11:43:12 +00:00
erik.corry@gmail.com
fbd67b1045
Prepare push to trunk. We are now working on version 2.4.5.
...
Review URL: http://codereview.chromium.org/3429006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-15 10:58:25 +00:00
lrn@chromium.org
cb514b72db
Made predata smaller by storing symbol data in variable length base-128.
...
Remove position from symbol data - they must come in the correct order anyway.
Review URL: http://codereview.chromium.org/3384003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-15 10:54:35 +00:00
erik.corry@gmail.com
62ec3292de
Replace 2 ARM ldr instructions with one ldrd in the code generated
...
for a SubStringStub and StringCompareStub in the ARM backend. This
is a commit of http://codereview.chromium.org/3341012 for Andreas
Anyuru.
Review URL: http://codereview.chromium.org/3387003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-15 10:22:55 +00:00
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