iposva@chromium.org [Sat, 1 Aug 2009 06:11:53 +0000 (06:11 +0000)]
- Fix a style violation which was flagged by gcc: while loop without body
- Restructured the entire function because:
During the simple style fix I discovered that this whole routine was
hard to read due to a general lack of comments. While adding comments I
realized that the function was also skipping entries if there were two
consecutive entries in the maps file.
Review URL: http://codereview.chromium.org/159659
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2603
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 31 Jul 2009 13:24:40 +0000 (13:24 +0000)]
Add missing file to last changelist, for NaN Dates.
Review URL: http://codereview.chromium.org/159700
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2602
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 31 Jul 2009 13:17:59 +0000 (13:17 +0000)]
Guard local time posix functions from NaN value of invalid dates.
Review URL: http://codereview.chromium.org/160451
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2601
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 31 Jul 2009 12:19:20 +0000 (12:19 +0000)]
Enable C++ missing virtual destructor warning.
-Wnon-virtual-dtor is part of -Wall on gcc 4.0.3, but not on 4.2.4.
Enable it specifically.
Review URL: http://codereview.chromium.org/160450
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2600
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 31 Jul 2009 11:34:47 +0000 (11:34 +0000)]
Add virtual destructors to address a gcc warning.
TBR=plesner@chromium.org
Review URL: http://codereview.chromium.org/160449
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2599
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 31 Jul 2009 11:27:14 +0000 (11:27 +0000)]
Enable --trace when --multipass is on. Bugfix in bailout condition.
All V8 and (ia32) mozilla tests pass with --multipass on, failures now
count as regressions.
Review URL: http://codereview.chromium.org/159698
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2598
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 31 Jul 2009 11:07:05 +0000 (11:07 +0000)]
X64: enable stack sampling in profiler.
Added necessary code to initialize Top::js_entry_sp value.
Renamed 'test-log-ia32' test to 'test-log-stack-tracer' and enabled it in 64-bit version.
Review URL: http://codereview.chromium.org/160446
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2597
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 31 Jul 2009 11:06:17 +0000 (11:06 +0000)]
Basic infrastructure for fast two-pass compilation. A CFG is
generated in one-pass from the source AST, code is generated from the
CFG. Enabled by the flag --multipass and disabled by default.
Rudimentary and currently only supports literal expressions and return
statements. There are some other known limitations (e.g., missing
support for tracing).
Review URL: http://codereview.chromium.org/159695
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2596
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 31 Jul 2009 08:04:41 +0000 (08:04 +0000)]
X64: Add fix of issue 392 to X64
Review URL: http://codereview.chromium.org/160393
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2594
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 31 Jul 2009 07:55:07 +0000 (07:55 +0000)]
Remove the rest of references to jsregexp-inl.h
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/159696
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2593
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 30 Jul 2009 14:18:09 +0000 (14:18 +0000)]
Prepare push to trunk. We are now working towards version 1.3.2.
Review URL: http://codereview.chromium.org/160391
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2590
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jul 2009 12:25:24 +0000 (12:25 +0000)]
Fix broken test compilation.
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/160389
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2589
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 30 Jul 2009 12:09:51 +0000 (12:09 +0000)]
X64: Fix lint problem and add missing stub function.
Review URL: http://codereview.chromium.org/160387
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2588
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jul 2009 12:09:05 +0000 (12:09 +0000)]
Another name change for consistency's sake. NODE_LIST -> AST_NODE_LIST.
Review URL: http://codereview.chromium.org/159633
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2587
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jul 2009 11:53:29 +0000 (11:53 +0000)]
Change the overly-general class named Node to the more specific
AstNode in case we ever want to have some other kind of node.
Split the NODE_LIST macro-generating macro so that we can iterate
concrete subclasses of Statement and concrete subclasses of Expression
separately.
Review URL: http://codereview.chromium.org/159632
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2586
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 30 Jul 2009 09:18:14 +0000 (09:18 +0000)]
X64: Added inline keyed load/store and a bunch of other missing functions.
Review URL: http://codereview.chromium.org/160272
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2585
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 30 Jul 2009 09:13:48 +0000 (09:13 +0000)]
Avoid dictionary expansion during bootstrapping.
Allocate the code stubs dictionary and non monomorphic cache dictionary with an initial size which avoids these dictionaries to be expanded during bootstrapping. This gets rid of 9 dictionary expansions during bootstrapping.
Preallocate the dictionary when normalizing an object to a size sufficient for holding the number of properties which is expected to be added to the object. This is used when ceating an object from an object literal boilerplate where multiple properties are known to be added. This gets rid of 10 dictionary expansions during bootstrapping.
There are now 3 dictionary expansions left during bootstrapping.
Review URL: http://codereview.chromium.org/160382
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2584
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 30 Jul 2009 08:11:25 +0000 (08:11 +0000)]
X64: Change wording of comments.
Review URL: http://codereview.chromium.org/160381
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2583
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 30 Jul 2009 07:33:05 +0000 (07:33 +0000)]
Allocate global object as a normalized object.
The global object is now allocated and initialized as a normalized object.
Review URL: http://codereview.chromium.org/159587
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2582
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 30 Jul 2009 07:31:54 +0000 (07:31 +0000)]
X64: Fix error in division & modulus, adjust mjsunit test status, fix lint error in objects.h
Review URL: http://codereview.chromium.org/159584
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2581
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 30 Jul 2009 07:02:23 +0000 (07:02 +0000)]
Harden message handling in the debugger agent.
This defect have been reported by the Coverity Prevent static analysis tool.
Review URL: http://codereview.chromium.org/160327
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2580
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 29 Jul 2009 12:50:20 +0000 (12:50 +0000)]
Speed up CalledAsConstructor.
Changed CalledAsConstructor to process the raw runtime stack directly,
rather than using a StackFrameIterator. Using an interator turns out
to be quite expensive and the vast majority of the work done is not
relevant to deciding if we've been called as a constructor.
This speeds up getElementById by ~13%.
Review URL: http://codereview.chromium.org/160325
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2578
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 29 Jul 2009 12:34:21 +0000 (12:34 +0000)]
Compile precanned answers for the case of failed interceptor for some combinations.
Review URL: http://codereview.chromium.org/140069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2577
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 29 Jul 2009 11:55:26 +0000 (11:55 +0000)]
Use JSFunction::IsBuiltin() for checking if a function is a builtin one
Review URL: http://codereview.chromium.org/160323
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2575
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 29 Jul 2009 11:23:36 +0000 (11:23 +0000)]
Add generic V8 API functions for controlling profiling aspects.
As we'll have several aspects of heap profiling, it is more handy to control them using binary flags than by individual functions. CPU profiling represent just a particular aspect to control, so {Pause,Resume}Profiler and IsProfilerPaused are only left for compatibility.
For now, PROFILER_FLAG_HEAP_STATS and PROFILER_FLAG_JS_CONSTRUCTOR are equivalent, but later will be split.
Review URL: http://codereview.chromium.org/159581
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2574
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 29 Jul 2009 09:51:41 +0000 (09:51 +0000)]
Change the check for builtin functions to not be based on identity,
which seems shaky in the presence of multiple builtin objects.
Review URL: http://codereview.chromium.org/159583
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2573
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 29 Jul 2009 08:46:28 +0000 (08:46 +0000)]
Add missing case in AST printer.
Review URL: http://codereview.chromium.org/159580
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2572
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 29 Jul 2009 08:10:19 +0000 (08:10 +0000)]
Introduce first approximation of constructor heap profile for JS objects.
It is activated with '--log-gc' flag.
JS object size is calculated as its size + size of 'properties' and 'elements' arrays, if they are non-empty. This doesn't take maps, strings, heap numbers, and other shared objects into account.
As Soeren suggested, I've moved ZoneSplayTree from jsregexp to zone, and removed now empty jsregexp-inl header file.
Review URL: http://codereview.chromium.org/159504
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2570
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 29 Jul 2009 06:58:00 +0000 (06:58 +0000)]
* Mark debug-stepin-builtin test as failing on x64
* Change copyright year of the new test file to 2009
TBR=kasperl
Review URL: http://codereview.chromium.org/160318
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2569
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 29 Jul 2009 06:34:30 +0000 (06:34 +0000)]
Don't step in function.call/apply if the function is builtin one.
Chromium bug: http://code.google.com/p/chromium/issues/detail?id=17886
Review URL: http://codereview.chromium.org/159508
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2568
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 28 Jul 2009 21:10:13 +0000 (21:10 +0000)]
- getc returns an int.
Review URL: http://codereview.chromium.org/159538
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2566
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Tue, 28 Jul 2009 20:32:57 +0000 (20:32 +0000)]
Add x64 to the gyp build.
Review URL: http://codereview.chromium.org/159502
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2565
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 28 Jul 2009 18:11:12 +0000 (18:11 +0000)]
- Clamp double values as doubles to get a free NaN check and
to handle infinity properly.
Review URL: http://codereview.chromium.org/159518
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2564
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 28 Jul 2009 15:37:05 +0000 (15:37 +0000)]
X64: Fixes to enable C/C++ functions processing in profiler.
- rewrote Linux version of LogSharedLibraryAddresses to work correctly with 64-bit libs;
- fixed address length restriction in JS tickprofiler script.
Review URL: http://codereview.chromium.org/160273
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2563
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 28 Jul 2009 14:46:06 +0000 (14:46 +0000)]
Get rid of unnecessary handle management when invoking interceptors.
Review URL: http://codereview.chromium.org/155682
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2562
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 28 Jul 2009 14:11:09 +0000 (14:11 +0000)]
X64: Fix bug that showed up in mjsunit/invalid-lhs.js
Review URL: http://codereview.chromium.org/159506
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2561
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 28 Jul 2009 13:44:17 +0000 (13:44 +0000)]
More X64 inline cache implementation.
Review URL: http://codereview.chromium.org/160268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2560
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 28 Jul 2009 13:29:11 +0000 (13:29 +0000)]
X64: Add passing date tests to the mjsunit X64 test status
Review URL: http://codereview.chromium.org/159501
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2559
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 12:50:58 +0000 (12:50 +0000)]
Change custom NaN check to use isnan to fix pixel array
failures on ARM hardware.
Review URL: http://codereview.chromium.org/160269
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2557
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 12:46:08 +0000 (12:46 +0000)]
Fix pixel array support for x64 and make the fast Array functions
that use JSARRAY_HAS_FAST_ELEMENTS_CHECK a bit safer in the presence
of pixel arrays.
Review URL: http://codereview.chromium.org/159500
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2556
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 28 Jul 2009 11:42:18 +0000 (11:42 +0000)]
Change the updating of the counters for global stub use to be consistent. Now counters are updated when they are sure to count to avoid decrementing them when there is a miss.
Review URL: http://codereview.chromium.org/160265
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2554
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 10:51:54 +0000 (10:51 +0000)]
There's seems to be an issue with 0/0 on ARM, which I'll
continue to investigate. For now, use NaN instead of computing
it ourselves.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/160267
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2552
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 09:10:29 +0000 (09:10 +0000)]
Fix lint issues. TBR=mikhail.naganov@gmail.com
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2551
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 28 Jul 2009 09:05:05 +0000 (09:05 +0000)]
Fix lint issues. TBR=iposva@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2550
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 28 Jul 2009 08:43:51 +0000 (08:43 +0000)]
- Expose CanvasPixelArray functionality directly in JavaScript
indexed property accesses.
- The IC stubs have not been updated to handle these directly, but
at least we do not have to leave the VM to access bytes.
Review URL: http://codereview.chromium.org/159263
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2549
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 28 Jul 2009 08:34:55 +0000 (08:34 +0000)]
Fix issue 410: test-log/ProfLazyMode flakinness under Linux.
I found two causes of flakinness:
- SIGPROF signal isn't delivered to a process;
- Profiler thread (the one that retrieves tick events from
the queue and writes to log) doesn't get a CPU;
Both are fixed.
The script from bug description with run count increased to 200 runs without any test failures.
OS X and Windows are unaffected because they don't use signals mechanism.
BUG=http://code.google.com/p/v8/issues/detail?id=410
TEST=see bug description
Review URL: http://codereview.chromium.org/159406
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2547
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 28 Jul 2009 08:22:48 +0000 (08:22 +0000)]
X64: Fixed bug de-tagging of smis in multiplication code.
Moved some dummy function implementations to from ic-x64.cc to stub-cache-x64.cc (where they belong)
Review URL: http://codereview.chromium.org/159404
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2546
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 27 Jul 2009 18:51:46 +0000 (18:51 +0000)]
X64: Fix buggy expression in disassembler. Fixes Issue 408: code.google.com/p/v8/issues/detail?id=408
Review URL: http://codereview.chromium.org/160174
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2544
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 27 Jul 2009 15:02:35 +0000 (15:02 +0000)]
X64: Add inline cache stub for storing to globals.
Review URL: http://codereview.chromium.org/160160
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2543
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Mon, 27 Jul 2009 13:26:43 +0000 (13:26 +0000)]
Handlified some stack trace code
Fixed some failing sputnik tests by handlifying some code that would
otherwise break on gc.
Review URL: http://codereview.chromium.org/160159
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2542
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Mon, 27 Jul 2009 12:01:32 +0000 (12:01 +0000)]
Added Error.captureStackTrace function.
Added utility function for capturing stack traces so that efficient
stack trace collection works for custom errors too, not just built-in
ones.
Review URL: http://codereview.chromium.org/159403
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2541
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 27 Jul 2009 10:39:46 +0000 (10:39 +0000)]
X64: Add mov rax,(mem64) to disassembler.
Review URL: http://codereview.chromium.org/159397
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2540
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 27 Jul 2009 10:39:21 +0000 (10:39 +0000)]
Make X64 implementation update Store ic stubs. Remove comment that talks about "below" on the stack meaning closer to the top.
Review URL: http://codereview.chromium.org/159402
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2539
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 27 Jul 2009 09:54:59 +0000 (09:54 +0000)]
Stub Cache: speed up load callback accessor by allocating data handle on stack.
Review URL: http://codereview.chromium.org/160041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2538
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 27 Jul 2009 08:27:28 +0000 (08:27 +0000)]
Prepare to push version 1.3.0 to trunk.
Review URL: http://codereview.chromium.org/160157
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2536
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Mon, 27 Jul 2009 05:31:30 +0000 (05:31 +0000)]
Landing patch for Timur Iskhodzhanov.
Reviewed at http://codereview.chromium.org/160099
The original MacOSMutex constructor makes data race detectors a little
bit crazy. Also, the new version is simpler and easier to understand.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2535
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 24 Jul 2009 11:22:35 +0000 (11:22 +0000)]
Add inline caching for keyed loads and stores. Remove extra parentheses from some files.
Review URL: http://codereview.chromium.org/159266
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2534
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Fri, 24 Jul 2009 07:39:53 +0000 (07:39 +0000)]
Remove trailing whitespace in test-debug.cc
Review URL: http://codereview.chromium.org/160095
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2533
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Fri, 24 Jul 2009 06:14:23 +0000 (06:14 +0000)]
Debugger should not stop in its own code and in code of built-in functions since it may confuse user.Debug break handler checks whether current function is a built-in or a debugger one and just resumes execution if it is.
CallCheckStackGuardState is no longer called in loop in the RegExp code as it hangs if debug break flag is not reset after calling Execution::HandleStackGuardInterrupt.
Review URL: http://codereview.chromium.org/160001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2531
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 23 Jul 2009 13:36:28 +0000 (13:36 +0000)]
Force inlining of some handle methods.
Review URL: http://codereview.chromium.org/159236
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2529
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 23 Jul 2009 13:05:36 +0000 (13:05 +0000)]
Fix typo in last change
Review URL: http://codereview.chromium.org/160009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2528
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 23 Jul 2009 13:01:17 +0000 (13:01 +0000)]
Fix an error in a keyed lookup stub - HeapNumbers treated as strings.
Review URL: http://codereview.chromium.org/155924
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2527
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 23 Jul 2009 12:56:45 +0000 (12:56 +0000)]
Call the (fatal) V8 out of memory handler if we cannot allocate enough
memory from the OS to deserialize the initial heap snapshot at
startup.
This catches the failure to startup earlier, and avoids dereferencing
the encoding of an allocation failure.
BUG=16359
Review URL: http://codereview.chromium.org/159265
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2526
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 23 Jul 2009 12:51:49 +0000 (12:51 +0000)]
Change a few style issues (dead code, unitialized members) flagged by
Coverity Prevent. All are benign.
Review URL: http://codereview.chromium.org/159264
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2525
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 23 Jul 2009 11:40:14 +0000 (11:40 +0000)]
Fix ARM compiler crash in short-circuited boolean expressions.
We did not handle the case where the left-hand-side expression was
fully compiled to control flow. There were also some assertions for
unary and binary expressions that crashed debug builds when the
expression was fully compiled to control flow.
Regression test added.
Review URL: http://codereview.chromium.org/160006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2524
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 22 Jul 2009 14:40:04 +0000 (14:40 +0000)]
Correct sense of test for generic keyed load with a symbol as key.
Review URL: http://codereview.chromium.org/155922
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2523
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 22 Jul 2009 12:33:16 +0000 (12:33 +0000)]
Remove a few occurrences of the CHECK_FAILED macro in the parser.
There's no reason to check if we've failed when (a) we know we have
and (b) we've got a perfectly good NULL just lying around anyway.
Review URL: http://codereview.chromium.org/155920
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2522
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 22 Jul 2009 11:29:38 +0000 (11:29 +0000)]
Fix some defects identifies by Coverity Prevent. All are false
positives, but I've restructured the code to be more explicit.
Review URL: http://codereview.chromium.org/159192
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2521
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 22 Jul 2009 10:23:19 +0000 (10:23 +0000)]
Fix two deallocation bugs identified by Coverity Prevent.
1. The tables array allocated in the CompilationSubCache constructor
was never deallocated. Fixed by adding destructor.
2. The buffer allocated in one of the constructors of the
NoAllocationStringAllocator was never deallocated. It seems that
this class sometimes owns the buffer (if it allocated one itself)
and sometimes doesn't (if it was passed one). Simple fix is to
remove the offending constructor which was never used anyway.
Review URL: http://codereview.chromium.org/155917
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2520
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 22 Jul 2009 10:01:25 +0000 (10:01 +0000)]
Introduce a external allocation limit.
If V8 is holding on to a lot of external memory, we attempt to clean
it up even if we do not get an allocation failure. Since tiny V8
objects can hold on to a lot of external memory, we might run out of
external memory while waiting for a normal allocation failure.
Review URL: http://codereview.chromium.org/155916
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2519
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 22 Jul 2009 09:11:33 +0000 (09:11 +0000)]
X64: Add StoreField inline cache stub.
Review URL: http://codereview.chromium.org/155915
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2518
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 21 Jul 2009 17:25:07 +0000 (17:25 +0000)]
- Remove unneeded include of ucontext.h as it is deprecated on Snow Leopard.
- Avoid calculating shared library addresses if profiling is not enabled.
Review URL: http://codereview.chromium.org/155814
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2517
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 21 Jul 2009 13:30:46 +0000 (13:30 +0000)]
Make stub cache hash work on X64 platform. Stub cache now works.
Switch arguments of 32-bit arithmetic instructions so they are consistent
with 64-bit arithmetic instructions (all on X64 platforms).
Review URL: http://codereview.chromium.org/155849
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2516
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 21 Jul 2009 11:06:24 +0000 (11:06 +0000)]
X64: Implement inline caches for loads
Review URL: http://codereview.chromium.org/159131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2515
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 20 Jul 2009 20:17:27 +0000 (20:17 +0000)]
X64: Fix compiler complaint
Review URL: http://codereview.chromium.org/159079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2514
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 20 Jul 2009 14:57:09 +0000 (14:57 +0000)]
X64: Add instructions to disassembler. Skip hanging test-api test.
Review URL: http://codereview.chromium.org/155771
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2513
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 20 Jul 2009 14:33:59 +0000 (14:33 +0000)]
X64: Enable more of LoadIC, disable individual stub types.
Review URL: http://codereview.chromium.org/155763
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2512
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 20 Jul 2009 12:28:02 +0000 (12:28 +0000)]
Fix another site where a stack-allocated character was treated as a
one-element character array. This was safe at this site but
potentially confusing.
BUG=17103
Review URL: http://codereview.chromium.org/159072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2511
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 20 Jul 2009 10:54:00 +0000 (10:54 +0000)]
Change RegExpMacroAssemblerIA32::CaseInsensitiveCompareUC16 so that it
does not use stack-allocated character as a one-element character
array.
The use at this site was actually safe (Ecma262Canonicalize will only
write to the first character of the array), but not obviously so.
BUG=17103
Review URL: http://codereview.chromium.org/159071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2510
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 20 Jul 2009 09:38:44 +0000 (09:38 +0000)]
Heap profiling: add logging of heap memory stats (capacity, used) under 'log-gc' flag.
Also changed time reporting to system time to be able to get synchronized with other memory (e.g. DOM) size status.
Review URL: http://codereview.chromium.org/155764
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2509
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 17 Jul 2009 16:34:58 +0000 (16:34 +0000)]
I will lint my code before submitting...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2508
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 17 Jul 2009 16:00:42 +0000 (16:00 +0000)]
Add missing handle scope in internal field code.
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/155691
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2504
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 17 Jul 2009 12:58:12 +0000 (12:58 +0000)]
X64: Add inline caching to calls of global functions
Review URL: http://codereview.chromium.org/155688
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2503
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 17 Jul 2009 12:12:24 +0000 (12:12 +0000)]
Make Array::kHeaderSize protected, and only use kHeaderSize of its subclasses.
Many X64 bugs have been due to the difference between (unaligned) Array::kHeaderSize and (aligned) FixedArray::kHeaderSize.
Review URL: http://codereview.chromium.org/155687
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2502
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 17 Jul 2009 11:16:10 +0000 (11:16 +0000)]
Make sure we don't crash if NewProxy returns an empty handle (only
happens when out of memory).
Review URL: http://codereview.chromium.org/155685
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2499
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 17 Jul 2009 10:35:15 +0000 (10:35 +0000)]
Introduce faster utilty methods for storing and retrieving native pointers
in internal fields.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2498
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 17 Jul 2009 09:16:23 +0000 (09:16 +0000)]
Patch by Vitaly Repeshko. Improve performance of internal fields
operations by adding a fast-case check for JS_OBJECT_TYPE in
JSObject::GetHeaderSize().
Review URL: http://codereview.chromium.org/155684
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2497
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 17 Jul 2009 08:55:01 +0000 (08:55 +0000)]
Added inline caching for calls to a field to X64. Changed a use of Array::kHeaderSize to FixedArray::kHeaderSize on all platforms.
Review URL: http://codereview.chromium.org/149798
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2496
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 17 Jul 2009 08:22:07 +0000 (08:22 +0000)]
Avoid more static variables in inline functions.
Review URL: http://codereview.chromium.org/149799
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2494
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Fri, 17 Jul 2009 06:32:29 +0000 (06:32 +0000)]
- Add frame-element.cc to the Xcode project.
Review URL: http://codereview.chromium.org/155680
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2493
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 17 Jul 2009 05:37:09 +0000 (05:37 +0000)]
Patch by Mark Mentovai. Don't put static variables inline.
Original review: http://codereview.chromium.org/149768
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/155679
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2492
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 17 Jul 2009 05:00:38 +0000 (05:00 +0000)]
Revert r2478. Avoiding dead code stripping for mksnapshot
wasn't enough.
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/155678
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2491
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 17 Jul 2009 04:57:17 +0000 (04:57 +0000)]
Revert r2486, r2487, and r2488 until I get the chance to fix
the performance issue with number dictionaries.
TBR=kmillikin@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2490
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Thu, 16 Jul 2009 22:41:28 +0000 (22:41 +0000)]
- Simplify the architecture setup. In particular the 'wordsize' parameter
cannot be trusted. The reported host architecture has no relation to the
default architecture being used for gcc.
Review URL: http://codereview.chromium.org/149774
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2489
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Thu, 16 Jul 2009 14:59:28 +0000 (14:59 +0000)]
Changed the dictionary code to use original hash value when starting linear scan.
This is necessary for hash codes for string where the array index is encoded.
Review URL: http://codereview.chromium.org/149753
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2488
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Thu, 16 Jul 2009 13:25:45 +0000 (13:25 +0000)]
Added two spaces to make presubmit.py happy.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2487
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Thu, 16 Jul 2009 12:56:50 +0000 (12:56 +0000)]
Changed hash table to use more of the hash value when probing.
Review URL: http://codereview.chromium.org/155350
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2486
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 16 Jul 2009 12:49:14 +0000 (12:49 +0000)]
X64: Implement inline cache of monomorphic constant function call. Mark a debugger test on X64 as failing.
Review URL: http://codereview.chromium.org/155631
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2485
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 16 Jul 2009 12:09:05 +0000 (12:09 +0000)]
Allow a slow test, array-splice, to timeout on ARM.
Review URL: http://codereview.chromium.org/155500
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2484
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 16 Jul 2009 10:57:17 +0000 (10:57 +0000)]
Some more test for load and call stubs.
Review URL: http://codereview.chromium.org/149749
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2482
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00