erik.corry@gmail.com [Fri, 3 Oct 2008 16:58:28 +0000 (16:58 +0000)]
Fix lint error.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@432
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 3 Oct 2008 15:53:44 +0000 (15:53 +0000)]
Recommit reverted change, now with fixes to make it work with gcc-4.2.
Allow gcc to use strict (type-based) aliasing when optimizing.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@431
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 3 Oct 2008 13:32:43 +0000 (13:32 +0000)]
Revert 428. Breaks 64-bit compilation.
Review URL: http://codereview.chromium.org/6446
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@430
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 3 Oct 2008 13:26:00 +0000 (13:26 +0000)]
Fix lint issues.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@429
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 3 Oct 2008 13:11:19 +0000 (13:11 +0000)]
Allow gcc to use strict-aliasing rules to control pointer aliasing when
optimizing. Obfuscate a few casts with bit_cast to avoid warnings from
gcc.
Review URL: http://codereview.chromium.org/6236
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@428
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 3 Oct 2008 12:15:32 +0000 (12:15 +0000)]
Mark a test as flaky on ARM. Fails on hardware but passes in simulator.Z
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@427
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whessev8 [Fri, 3 Oct 2008 12:14:29 +0000 (12:14 +0000)]
This change removes the %AddProperty native JavaScript function from V8.
All uses of %AddProperty are replaced by %SetProperty. A few uses of
IgnoreAttributesAndSetLocalProperty are added, and the runtime version
of it adds a PropertyAttributes argument. Only the JSObject class
in objects.cc now uses AddProperty, and it can become private.
Review URL: http://codereview.chromium.org/6445
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@426
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 3 Oct 2008 12:07:42 +0000 (12:07 +0000)]
Fixed whitespace. Remember to run presubmit before submitting.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@425
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 3 Oct 2008 12:04:59 +0000 (12:04 +0000)]
Added fast-case switch to ARM.
Refactored to reuse code between ia32 and ARM.
Added tests for switch.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@424
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 3 Oct 2008 10:51:08 +0000 (10:51 +0000)]
Log ticks when the prof flag is set. Avoid letting --prof
imply --log.
Review URL: http://codereview.chromium.org/6444
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@423
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Fri, 3 Oct 2008 10:42:53 +0000 (10:42 +0000)]
Changed so that --log-code implies --log.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@422
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 3 Oct 2008 09:57:18 +0000 (09:57 +0000)]
Refactored the logic for entering the debugger into one abstraction EnterDebugger.
Removed the static initializer for Top::break_access_.
Review URL: http://codereview.chromium.org/6234
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@421
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Fri, 3 Oct 2008 09:16:12 +0000 (09:16 +0000)]
- Added fast case for extending the JSObject properties storage.
- Changed date to compute local_time_offset at load time.
Review URL: http://codereview.chromium.org/6441
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@420
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 3 Oct 2008 09:05:58 +0000 (09:05 +0000)]
Updated the snapshot builder to reflect the removed extensions in codereview.chromium.org/6233.
Review URL: http://codereview.chromium.org/6440
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@419
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 3 Oct 2008 08:31:19 +0000 (08:31 +0000)]
Fixed the path for include files v8.h and v8-debug.h in Visual Studio project.
Review URL: http://codereview.chromium.org/6601
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@418
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 3 Oct 2008 08:30:22 +0000 (08:30 +0000)]
Removed the print, load, quit and version extensions from the VM. Moved the print extension to the compiler test as it was used there. Changed the serializer tests to only use the gc extension.
This also gets rid of 8 static initializers.
Review URL: http://codereview.chromium.org/6233
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@417
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 3 Oct 2008 07:58:18 +0000 (07:58 +0000)]
Cleanup string builtins.
Review URL: http://codereview.chromium.org/6602
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@416
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 3 Oct 2008 07:36:03 +0000 (07:36 +0000)]
Minor cleanups to macros.py.
Review URL: http://codereview.chromium.org/6232
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@415
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 3 Oct 2008 07:14:31 +0000 (07:14 +0000)]
Make sure that the name accessor on functions return the expected
names.
- Set the correct name of library functions.
- Set the name of C++ callback functions.
- Clean up a couple of out-dated comments related to literal creation.
Review URL: http://codereview.chromium.org/6223
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@414
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 2 Oct 2008 15:35:28 +0000 (15:35 +0000)]
- Case-sensitive atomic regular expressions now use the same code as
String.indexOf to do matching.
- The --log option is no longer automatically enabled by the other log
options.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@413
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 2 Oct 2008 14:23:20 +0000 (14:23 +0000)]
Print one line when pushing an immediate followed by a pop is
eliminated.
Review URL: http://codereview.chromium.org/6078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@412
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whessev8 [Thu, 2 Oct 2008 13:45:21 +0000 (13:45 +0000)]
Replaces two non-private uses of AddProperty with IgnoreAttributesAndSetLocalProperty. Adds attributes parameter to IgnoreAtt..Property(). Makes IgnoreAtt..Property() an exact clone of SetProperty(), with explicit changes.
Review URL: http://codereview.chromium.org/5665
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@411
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 2 Oct 2008 12:44:47 +0000 (12:44 +0000)]
In the code generator, avoid loading the arguments object to the
expression stack when it is already there. Also, cleanup up the
(two!) extra copies of the arguments object left on the stack.
Review URL: http://codereview.chromium.org/5667
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@410
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 2 Oct 2008 11:54:32 +0000 (11:54 +0000)]
Move code for code generator static member functions, code generation
functions on AST nodes, and helper class member functions (eg, stub
classes) toward the bottom of the codegen*.cc files. The macro __ is
now #define'd exactly twice and #undef'd twice.
Review URL: http://codereview.chromium.org/6075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@409
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 2 Oct 2008 11:14:50 +0000 (11:14 +0000)]
Small cleanup of the code generator: make the static code gen
functions and the ones defined on the AST nodes take a code generator,
rather than a macro assembler and (sometimes) scope.
Uniformly use the __ macro for masm_/masm in the codegen*.cc files.
Review URL: http://codereview.chromium.org/5663
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@408
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 2 Oct 2008 09:41:01 +0000 (09:41 +0000)]
Changed optimization from /Ox to the (more) commonly used /O2 (which includes
/GF) in both SCons and Visual Studio build. There is not mesurable difference
neither in speed nor in code size.
Added whole program optimization to the SCons release build. This clutters the
linking of the samples a little with the option /LTCG. This option is not
strictly needed for linking, but if it is not specified the linker complaints
as it can see object files compiled with /GL and then restarts itself with
/LTCG which dosen't look very pretty.
Review URL: http://codereview.chromium.org/5664
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@407
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Thu, 2 Oct 2008 08:58:03 +0000 (08:58 +0000)]
Fixed use of undefined in ArraySort.
Changed 'undefined' in ArraySort to 'void 0'. Also added regression test to catch the error.
Review URL: http://codereview.chromium.org/6073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@406
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Thu, 2 Oct 2008 08:15:20 +0000 (08:15 +0000)]
Various minor improvements of sort.
Review URL: http://codereview.chromium.org/6035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@405
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Thu, 2 Oct 2008 07:43:46 +0000 (07:43 +0000)]
Removed the use of Math.random() and new Date() for building
the RNG pool in the crypto benchmark.
Review URL: http://codereview.chromium.org/6071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@404
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Wed, 1 Oct 2008 20:21:34 +0000 (20:21 +0000)]
Follow up to change 402:
- Remove unused symbol finally_state_symbol.
Review URL: http://codereview.chromium.org/5640
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@403
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 1 Oct 2008 10:57:37 +0000 (10:57 +0000)]
Get rid of the local variable we use to keep the state
during the execution of a finally block by just pushing
the state on the execution stack instead.
Review URL: http://codereview.chromium.org/5626
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@402
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 1 Oct 2008 09:07:45 +0000 (09:07 +0000)]
Added test timing.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@401
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 1 Oct 2008 07:43:00 +0000 (07:43 +0000)]
Fix issue 86 by keeping track of the fact that finally blocks
are evaluated with an extra element on the stack, which needs
to be taken into account when breaking and continuing.
I'll clean up the code and add an abstraction for manipulating
the break stack height in a future CL -- I want to try to get
rid of the separate local variable we keep around for the "state"
when running in a finally block.
Review URL: http://codereview.chromium.org/5625
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@400
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Tue, 30 Sep 2008 15:32:07 +0000 (15:32 +0000)]
Added option to parallelize test runs.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@399
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Tue, 30 Sep 2008 11:43:18 +0000 (11:43 +0000)]
Disallow copy and assigning a few public objects.
BUG=97
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@398
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Tue, 30 Sep 2008 11:41:58 +0000 (11:41 +0000)]
Remove some craaaazy trailing whitespace.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@397
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Tue, 30 Sep 2008 10:20:58 +0000 (10:20 +0000)]
Remove an ARM jump elimination test.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@396
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Tue, 30 Sep 2008 09:58:22 +0000 (09:58 +0000)]
Faster sort.
Using insertion sort below a certain threshold to give faster sorting of arrays (esp. short ones).
Review URL: http://codereview.chromium.org/6006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@395
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Tue, 30 Sep 2008 09:42:08 +0000 (09:42 +0000)]
Remove the ARM jump elimination. This completely removes jump elimination.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@394
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Mon, 29 Sep 2008 07:33:58 +0000 (07:33 +0000)]
Remove x86 jump elimination. This was just complicated enough to make it annoying to support short jump encoding. I measured a code size increase of 5 bytes on the V8 benchmark, from missing one jump to next elimination possibility.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@393
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Sun, 28 Sep 2008 13:21:41 +0000 (13:21 +0000)]
Clean up some naming to be consistent between runtime and JS code.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@392
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Sun, 28 Sep 2008 12:21:12 +0000 (12:21 +0000)]
Remove two cases of needlessly jumping to the next instruction. The jump eliminator will remove these cases, but it's easy enough to just do statically in the code, and not require the eliminator to do it at runtime.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@391
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Sun, 28 Sep 2008 09:38:09 +0000 (09:38 +0000)]
Remove ComparisonDeferred and inline the non-smi case. ARM is doing it's own thing here. This should cut down on code size, and open up two possiblities for short jump encoding.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@390
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 26 Sep 2008 23:14:43 +0000 (23:14 +0000)]
Fix failing test caused by extra precision in register allocated fp values.
Review URL: http://codereview.chromium.org/5019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@389
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 26 Sep 2008 16:14:22 +0000 (16:14 +0000)]
Fix build breakage on ARM by removing IA32 flags
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@388
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 26 Sep 2008 15:53:42 +0000 (15:53 +0000)]
Use -O9, tune for nocoma, assume at least a Pentium when generating code.
Review URL: http://codereview.chromium.org/4298
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@387
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Fri, 26 Sep 2008 13:06:49 +0000 (13:06 +0000)]
Added new test type, message, to test error reporting.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@386
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 26 Sep 2008 12:11:35 +0000 (12:11 +0000)]
Fix stack check wraparound problem for ARM simulator.
Review URL: http://codereview.chromium.org/2926
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@385
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 26 Sep 2008 10:27:39 +0000 (10:27 +0000)]
Stack checks in generated code for function apply is now controlled
by the check-stack flag. Changed the condition code from greater to
above_equal as the SP should be unsigned (this matches the stack
check in function entry).
Review URL: http://codereview.chromium.org/4296
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@384
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Fri, 26 Sep 2008 10:25:14 +0000 (10:25 +0000)]
Adding comment to the fix of issue 95.
Review URL: http://codereview.chromium.org/5003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@383
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Fri, 26 Sep 2008 09:15:02 +0000 (09:15 +0000)]
Fix for issue 95.
Fixed QuickSort so it doesn't overflow the stack with non-reflexsive comparison functions.
Review URL: http://codereview.chromium.org/4297
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@382
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 26 Sep 2008 07:57:11 +0000 (07:57 +0000)]
Mark test test-debug/ThreadedDebugging as flaky.
Review URL: http://codereview.chromium.org/5001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@381
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Fri, 26 Sep 2008 03:44:09 +0000 (03:44 +0000)]
which it now does.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@380
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 25 Sep 2008 13:48:27 +0000 (13:48 +0000)]
Introduce some checks to indicate that the benchmarks have run correctly.
This change affects the results by around 2% so the version number has been
bumped to 2 to avoid confusion.
Review URL: http://codereview.chromium.org/4401
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@379
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Thu, 25 Sep 2008 13:21:56 +0000 (13:21 +0000)]
Tuning quick sort.
Tuning the quick sort algorithm to avoid degenerating to an n^2 algorithm when all elements are the same.
Review URL: http://codereview.chromium.org/4083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@378
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 25 Sep 2008 13:14:23 +0000 (13:14 +0000)]
Added copyright headers to tests.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@377
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 25 Sep 2008 13:01:26 +0000 (13:01 +0000)]
Fixed problem where the test framework would assume that .svn was a
test suite and then fail.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@376
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 25 Sep 2008 12:38:34 +0000 (12:38 +0000)]
- Added support for warnings on unused test rules.
- Added automatic loading of test suites
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@375
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Thu, 25 Sep 2008 11:28:02 +0000 (11:28 +0000)]
Using quick sort for arrays.
Using quick sort in ArraySort instead of heap sort for better performance.
Review URL: http://codereview.chromium.org/4065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@374
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 25 Sep 2008 08:45:38 +0000 (08:45 +0000)]
Update version string and ChangeLog. We are now working on version
0.3.4.
Review URL: http://codereview.chromium.org/4272
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@372
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bak@chromium.org [Thu, 25 Sep 2008 07:46:07 +0000 (07:46 +0000)]
- Added a map cache for literal objects. This will
canonicalize maps for object literals. JSON objects
with the same set of properties names will then
share the same map.
This reduces the amount of generated code associated
with object literals.
- Added a flag canonicalize_object_literal_maps.
(default true)
- Changed the format of a function's literal array.
Only the global context is now stored in the literal prefix.
Review URL: http://codereview.chromium.org/4078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@371
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 25 Sep 2008 07:35:45 +0000 (07:35 +0000)]
Make sure that the body of the function created by calling Function is
on a line of its own. This allows the body to be terminated by a
single-line comment.
Also, make sure to set the name of the function to anonymous after the
fact so that recursion through the name anonymous is not allowed and
so that global variables called anonymous are not shadowed.
This is a fix for http://code.google.com/p/v8/issues/detail?id=85
Review URL: http://codereview.chromium.org/4248
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@370
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Wed, 24 Sep 2008 16:34:00 +0000 (16:34 +0000)]
Don't defer the stack check failure code. It is a CallStub, which will be a single 5 byte call instruction. This should cause equivalent code size now, but opens up the opportunity to make one of the most common jcc's to use short encoding in the future.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@369
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
feng@chromium.org [Wed, 24 Sep 2008 15:47:34 +0000 (15:47 +0000)]
This is a fix of issue http://b/issue?id=
1381845.
Check domain security on prototypes in for-in loop.
Review URL: http://codereview.chromium.org/4236
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@368
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 24 Sep 2008 08:47:39 +0000 (08:47 +0000)]
Added a profiling option (prof) to the SCons build. Currently
it just makes the linker generate a MAP file for the shell
sample on Windows.
Review URL: http://codereview.chromium.org/4064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@367
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Sep 2008 13:31:14 +0000 (13:31 +0000)]
Added some peephole optimizaitions regarding push of immediate followed
by pop eax.
Review URL: http://codereview.chromium.org/4212
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@366
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Tue, 23 Sep 2008 12:32:43 +0000 (12:32 +0000)]
Enable string pooling in the VS release build. This saves 46k for a v8_shell_sample.exe, I didn't measure performance or the overall change to a Chromium build. I think this option should always make sense anyway, unless we're using some string constants incorrectly.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@365
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Tue, 23 Sep 2008 12:23:20 +0000 (12:23 +0000)]
Fixed lint error.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@364
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Sep 2008 12:21:54 +0000 (12:21 +0000)]
Move more functionality from CEntryStub to the helper
functions in the macro assembler.
Review URL: http://codereview.chromium.org/4402
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@363
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Tue, 23 Sep 2008 11:45:43 +0000 (11:45 +0000)]
- Added new object type, RegExp, for regular expressions.
- Renamed some ::kSizes to ::kHeaderSizes to avoid confusion.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@362
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Sep 2008 10:06:58 +0000 (10:06 +0000)]
Allow platforms (linux and win32) to not force 16-byte alignment
of activation frames (needed on Mac OS X).
Review URL: http://codereview.chromium.org/4211
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@361
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 23 Sep 2008 08:56:12 +0000 (08:56 +0000)]
Parse /proc/self/maps lines better to handle variations between Linux kernels.
It seems noone has had time to file a bug on this.
Review URL: http://codereview.chromium.org/4210
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@360
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Sep 2008 08:19:26 +0000 (08:19 +0000)]
Refactored the code for entering and leaving exit frames (calls
from JavaScript to C++). Includes a few slight optimizations
like keeping argv in a callee-saved register.
Review URL: http://codereview.chromium.org/4035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@359
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Sep 2008 07:33:08 +0000 (07:33 +0000)]
Change the logging information for generated stubs to be
consistent with the other log events for generated code.
Review URL: http://codereview.chromium.org/4033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@358
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Mon, 22 Sep 2008 16:00:56 +0000 (16:00 +0000)]
Remove debugging code that snuck in with the ARM calling convention changes.
Thanks to Erik Corry for spotting this.
Review URL: http://codereview.chromium.org/4015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@357
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 22 Sep 2008 15:50:30 +0000 (15:50 +0000)]
Work around issue 80 by splitting strings from the environment
variables into lists before appending to them.
Review URL: http://codereview.chromium.org/3185
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@356
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 22 Sep 2008 13:57:03 +0000 (13:57 +0000)]
Refactor the enum RelocMode changing the naming scheme from lower case to
upper case. Moved it into the RelocInfo class together with the associated
is_xxx functions. Renamed is_xxx to IsXxx in the process.
Removed the exit_js_frame mode as it was no longer used.
Patch Set 2 renames RELOC_MODE_COUNT to NUMBER_OF_MODES and fixes a couple of lint errors.
Review URL: http://codereview.chromium.org/3186
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@354
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Mon, 22 Sep 2008 09:22:18 +0000 (09:22 +0000)]
In release, disable UNREACHABLE and make UNIMPLEMENTED and FATAL simpler, removing the file name and line numbers, so we carry around less data and can share more code.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@353
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 22 Sep 2008 08:27:54 +0000 (08:27 +0000)]
Add compilation flags for optimizing samples built in release
mode. Remove /Ob2 /Oi /Oy from VS build because they are
already enabled by /Ox.
Review URL: http://codereview.chromium.org/4012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@352
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 19 Sep 2008 12:35:15 +0000 (12:35 +0000)]
Made the ARM port with simulator build and run on Windows.
The reason for the "ugly" definition of SScanF is that the Windows CRT does not have a vsscanf function making it difficult to add OS::SSprintF to platform.h.
Review URL: http://codereview.chromium.org/2988
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@350
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Fri, 19 Sep 2008 12:30:14 +0000 (12:30 +0000)]
Avoid the KMP overhead for simple indexOf() operations. Will look into evaluating the best cutoff between a simple search and KMP in the future. This improves some simple operations ~1.5x.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@349
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Fri, 19 Sep 2008 11:31:02 +0000 (11:31 +0000)]
Don't try an indexOf() when the search string is bigger than the string. The current code will spend a bunch of time trying to match, even though we should know a match is impossible.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@348
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Fri, 19 Sep 2008 11:06:35 +0000 (11:06 +0000)]
TryFlatten is inlined, while Flatten is not. Make an optimization to avoid the call to Flatten when we're already flat. This gives me 5% on some simple indexOf experiments.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@347
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 19 Sep 2008 10:10:21 +0000 (10:10 +0000)]
Add assembler.h the the Visual Studio project file.
Review URL: http://codereview.chromium.org/2985
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@346
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Thu, 18 Sep 2008 13:42:39 +0000 (13:42 +0000)]
Fix lint issues.
Review URL: http://codereview.chromium.org/3144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@344
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 18 Sep 2008 11:59:55 +0000 (11:59 +0000)]
Added fast-case for switch statement where all lables are constant Smi's in a limited range (IA32 only so far).
Implemented using a jump-table, for constant time lookup.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@343
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 18 Sep 2008 11:18:27 +0000 (11:18 +0000)]
Use null instead of undefined for deleted elements in code caches.
Update the lookup and update code for code caches to deal with deleted
elements.
Do not clear the code cache for the builtins object. If there was a
matching element in the code cache, we would have hit the monomorphic
prototype failure case and removed it.
Review URL: http://codereview.chromium.org/3140
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@340
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Thu, 18 Sep 2008 10:40:25 +0000 (10:40 +0000)]
Fix ARM build by adding a dummy last_statement_position() accessor
to the assembler.
Review URL: http://codereview.chromium.org/2961
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@339
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 18 Sep 2008 10:22:46 +0000 (10:22 +0000)]
Revert revision 331. The propagation of monomorphic prototype failure
information does not work. In certains situations, it will keep
alternating between unrelated monomorphic states instead of going
megamorphic.
Review URL: http://codereview.chromium.org/2959
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@338
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Sep 2008 10:15:17 +0000 (10:15 +0000)]
Revert changes to src\assembler-arm.h which slipped into a previous checkin breaking the ARM build.
Review URL: http://codereview.chromium.org/2958
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@337
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Sep 2008 08:51:43 +0000 (08:51 +0000)]
Defer the writing of the source position data to the relocation information
until a possible debug break location is reached. Currently this is call sites
with calls to code objects and JS return. Source position information in the
code therefore no longer refers to the "first" instruction generated for a
given source position (which was not the case defered code anyway) but to the
first break location after that source position was passed (again defered code
always start with source position information). This doesn't make a difference
for the debugger as it will always be stopped only at debug break locations.
However, this makes the life of the peep-hole optimizer much easier as many
oportunities for posh/pop eliminations where previosly blocked by relocation
information already written to the code object.
Two types of source positions are still collected. Statement positions indicate
the position of the start of the statement leading to this code and (plain)
positions indicate other places typically call sites to help indicate current
position in backtraces. The two different types of positions are also used to
distinguish between step next and step in.
Runs all the tests (including debugger tests) as before.
Moved the checking for the FLAG_debug_info to one place.
I will do the same changes to the ARM codegenerator in a seperate changelist.
Review URL: http://codereview.chromium.org/2957
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@335
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Thu, 18 Sep 2008 08:29:06 +0000 (08:29 +0000)]
Remove unused codereview.settings file.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@334
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whessev8 [Thu, 18 Sep 2008 07:31:37 +0000 (07:31 +0000)]
Flush the runtime %DebugPrint output. Should have no performance impact,
since %DebugPrint is not often used. Needed for some performance testing
statistics outputting.
Fix the declaration of descriptor enumerated constants to be more readable.
Review URL: http://codereview.chromium.org/3100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@332
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 18 Sep 2008 06:55:14 +0000 (06:55 +0000)]
Propagate the information that a monomorphic prototype failure has
occured. After a monomorphic prototype failure has been detected,
other monomorphic inline caches for the same type will have a code
object in the map's code cache which is not the current target. We
recognize this case and use the code object that is in the cache
instead of going megamorphic.
Review URL: http://codereview.chromium.org/2928
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@331
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 17 Sep 2008 13:56:12 +0000 (13:56 +0000)]
Update version string and ChangeLog; we're now working on
version 0.3.3.
Review URL: http://codereview.chromium.org/3101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@328
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Sep 2008 12:38:50 +0000 (12:38 +0000)]
Changed the disassembler formatting
Changed the formatting of the comment in the disassembler output to contain
more information on code targets.
Review URL: http://codereview.chromium.org/3099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@327
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 17 Sep 2008 10:59:19 +0000 (10:59 +0000)]
Move the initial code space to be before the young space instead of after it.
The old arrangement meant that the alignment requirements of young space were
likely to nullify ASLR.
Review URL: http://codereview.chromium.org/2925
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@326
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 17 Sep 2008 10:58:45 +0000 (10:58 +0000)]
The OutOfMemory and OutOfMemoryNested tests set a heap limit that was too low.
A change in the way heap was allocated meant that the initial heap size was
sometimes not higher than the limit, which mean that the limit started having
and effect and prevented V8 from booting up.
Fixes http://code.google.com/p/v8/issues/detail?id=25
Review URL: http://codereview.chromium.org/2924
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@325
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 17 Sep 2008 10:25:05 +0000 (10:25 +0000)]
More thorough tests of sorting integers in lexicographic order.
Review URL: http://codereview.chromium.org/2923
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@324
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Sep 2008 09:05:36 +0000 (09:05 +0000)]
Added missing static to returned buffer.
Review URL: http://codereview.chromium.org/3096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@323
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00