kmillikin@chromium.org [Tue, 30 Mar 2010 12:25:58 +0000 (12:25 +0000)]
Move the AstVisitor stack check from Accept to Visit.
The stack check has been moved from the Accept function dispatching on
the AST node type, earlier to the Visit function dispatching on the
visitor type.
This allows very simple non-recursive visitors (not taking extra
arguments or returning values) via the convention of calling "Visit"
if one wants the stack check and "Accept" if one does not. Recursive
calls should all be via "Visit".
Review URL: http://codereview.chromium.org/1567007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4320
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 30 Mar 2010 12:12:31 +0000 (12:12 +0000)]
Simplify IA32 code generator API.
Cut down on the number of arguments passed to the various binary operation
code generator functions by passing along the expression itself, rather than
a subset of its fields.
Review URL: http://codereview.chromium.org/1592001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4319
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 30 Mar 2010 12:01:06 +0000 (12:01 +0000)]
Merging scavenge into sweeping phase of mark-sweep(-compact) collector.
Should reduce full GC pauses.
Review URL: http://codereview.chromium.org/1217011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4318
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 30 Mar 2010 11:38:39 +0000 (11:38 +0000)]
C++ profiles processor: put under #ifdef and fix issues.
Review URL: http://codereview.chromium.org/1514006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4317
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 30 Mar 2010 07:15:23 +0000 (07:15 +0000)]
Remove trailing regexp from .js files.
Removed trailing whitespace using regexp replace. No other changes.
Review URL: http://codereview.chromium.org/1559006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4314
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 29 Mar 2010 22:07:52 +0000 (22:07 +0000)]
Fix the case of no words to copy.
CopyWords cannot actually copy zero words---it'd clobber destiantion with
the first word of source.
Add an ASSERT to check this condition plus update array builtins to verify
for amount of copied data when necessary.
TBR=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/1559004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4313
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 29 Mar 2010 21:12:54 +0000 (21:12 +0000)]
Fix bug in string replace regexp with function when returning non-string.
Review URL: http://codereview.chromium.org/1528005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4312
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Mon, 29 Mar 2010 18:32:25 +0000 (18:32 +0000)]
Fixing Windows build.
Review URL: http://codereview.chromium.org/1563002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4311
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 29 Mar 2010 18:02:06 +0000 (18:02 +0000)]
Refactor word copying logic.
Review URL: http://codereview.chromium.org/1530005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4310
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Mon, 29 Mar 2010 15:46:58 +0000 (15:46 +0000)]
Percise rounding parsing octal and hexadecimal strings.
Rounding happens when the number exceeds 53 bits of floating point mantissa. Current implemetation ignores digits after some limits. 0x1000000000000081 was rounded to 0x1000000000000100 while 0x100000000000008000001 was rounded to 0x100000000000000000000.
Review URL: http://codereview.chromium.org/1374005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4309
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 29 Mar 2010 14:43:41 +0000 (14:43 +0000)]
Fix presubmit failure.
TBR=fschneider@chromium.org
Review URL: http://codereview.chromium.org/1563001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4308
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 29 Mar 2010 14:23:55 +0000 (14:23 +0000)]
Rework flow graph construction.
The flow graph has been simplified to remove the special branch, join,
and exit nodes. All nodes are now basic blocks (possibly empty to
preserve edge-split form) with a distinguished entry and exit block.
Most trivial expressions are not added to the flow graph as
instructions. The assigned variable analyzer has been changed to
sometimes work right-to-left so that right subexpressions can be
marked as trivial.
The reaching definitions analysis has been temporarily removed, and
the analyses that depended on it (primitivity analysis, dead code
marking) as well.
Review URL: http://codereview.chromium.org/1530003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4307
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 29 Mar 2010 14:10:49 +0000 (14:10 +0000)]
Call binary op stub instead of runtime in count operations.
Review URL: http://codereview.chromium.org/1560001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4306
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 29 Mar 2010 11:48:57 +0000 (11:48 +0000)]
Start using String type info:
* Improved string concatenation.
* Fixed type inference in prefix/postfix count operations.
Review URL: http://codereview.chromium.org/1520001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4305
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Mon, 29 Mar 2010 11:17:34 +0000 (11:17 +0000)]
Optimization for parsing integers of limited length (in digits).
Review URL: http://codereview.chromium.org/1367004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4304
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 29 Mar 2010 07:25:54 +0000 (07:25 +0000)]
Prepare push of version 2.2.0 to trunk. Now working on version 2.2.1.
Review URL: http://codereview.chromium.org/1527002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4301
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 26 Mar 2010 23:33:37 +0000 (23:33 +0000)]
Some string optimizations:
* Faster hashing for sequential strings.
* When adding short external two-byte strings try to convert them
back to ascii. Chances are high the embedder uses two-byte
representation even for ascii strings. This optimization saves
memory and makes hashing faster.
Review URL: http://codereview.chromium.org/1444001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4300
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 26 Mar 2010 18:47:14 +0000 (18:47 +0000)]
Omit write barrier when setting trimmed elements.
Review URL: http://codereview.chromium.org/1310002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4299
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 26 Mar 2010 14:19:47 +0000 (14:19 +0000)]
Pre-create properties on JSRegExp objects
Initialize properties in single runtime call.
Review URL: http://codereview.chromium.org/1350003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4298
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 26 Mar 2010 11:34:00 +0000 (11:34 +0000)]
Change a TypeInfo function from inline to non-inline, reducing stack usage during code compilation.
Review URL: http://codereview.chromium.org/1369003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4297
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 26 Mar 2010 09:14:50 +0000 (09:14 +0000)]
Prepare push of version 2.1.10 to trunk. Now working on version 2.2.0.
Review URL: http://codereview.chromium.org/1397003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4293
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 26 Mar 2010 09:05:22 +0000 (09:05 +0000)]
Port number dictionary probing in generated code to ARM.
Fix bug in ARM pixel array load code and a typo in the x64 number
dictionary load code.
Fix bug in string dictionary probing where we did not bail out if the
object has an interceptor.
BUG=640
Review URL: http://codereview.chromium.org/1332003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4292
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 26 Mar 2010 07:58:24 +0000 (07:58 +0000)]
Proper constraints for inline implementation in assembly.
Review URL: http://codereview.chromium.org/1359002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4291
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 26 Mar 2010 07:55:38 +0000 (07:55 +0000)]
Land codereview.chromium.org/1311003/diff/8001/9001 to allows us to push to trunk. Corrected the ASSERT from the review.
Review URL: http://codereview.chromium.org/1404001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4290
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 26 Mar 2010 07:47:41 +0000 (07:47 +0000)]
Avoid having a LIBS setting when compiling the V8 library
because this interferes with the shared library build.
Only prepend v8 to the LIBS list when building samples
or cctest.
Review URL: http://codereview.chromium.org/1387004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4289
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 25 Mar 2010 17:08:22 +0000 (17:08 +0000)]
Simplify passing of AccessorInfo to interceptors:
* Use slots on the native stack when possible instead of Relocatable.
* Got rid of a gap in AccessorInfo fields.
* Added test for non-cacheable post-interceptor lookup.
Review URL: http://codereview.chromium.org/1327002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4288
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 25 Mar 2010 16:22:48 +0000 (16:22 +0000)]
Move flow graph and helper classes to their own file.
The FlowGraph, FlowGraphBuilder, and flow graph node classes are moved
to src/flow-graph.cc.
Review URL: http://codereview.chromium.org/1253009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4287
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 25 Mar 2010 15:32:58 +0000 (15:32 +0000)]
Add a test to verify correctness of remembered set update for Heap::CopyJSObject.
Review URL: http://codereview.chromium.org/1256002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4286
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 25 Mar 2010 14:55:53 +0000 (14:55 +0000)]
Align OProfile agent invocations style with logging.
This allows to unclutter logging-related code.
I also fixed compilation issues with 'profilingsupport=off'.
Review URL: http://codereview.chromium.org/1317003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4285
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Thu, 25 Mar 2010 14:39:39 +0000 (14:39 +0000)]
StringToDouble rewritten not using String::Get and memory allocations.
It converts the number to "canonical" form removing insignificant digits,
leading zerroes and spaces what guarantees to fit a fixed size buffer and
does not changes result of strtod.
Review URL: http://codereview.chromium.org/1216005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4282
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 25 Mar 2010 14:20:56 +0000 (14:20 +0000)]
Slightly faster variant of Array.push.
Review URL: http://codereview.chromium.org/1265003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4279
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 25 Mar 2010 14:07:17 +0000 (14:07 +0000)]
Allow empty handles to escape handle scopes.
BUG=39170
Review URL: http://codereview.chromium.org/1235002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4278
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 25 Mar 2010 13:56:29 +0000 (13:56 +0000)]
Fix my fast-codegen.cc gyp file stupidity.
Review URL: http://codereview.chromium.org/1207007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4277
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 25 Mar 2010 13:55:52 +0000 (13:55 +0000)]
Prepare push to trunk, we are now working on 2.1.10
Review URL: http://codereview.chromium.org/1242007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4276
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 25 Mar 2010 13:35:05 +0000 (13:35 +0000)]
Fix build again after renaming.
Review URL: http://codereview.chromium.org/1335001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4275
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 25 Mar 2010 13:31:19 +0000 (13:31 +0000)]
Gyp causing me gyp.
Review URL: http://codereview.chromium.org/1323003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4274
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 25 Mar 2010 13:22:37 +0000 (13:22 +0000)]
Speed up conversion of untagged int32 result if we know it must be a smi.
Review URL: http://codereview.chromium.org/1233003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4273
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 25 Mar 2010 13:18:00 +0000 (13:18 +0000)]
Split the virtual frame into heavy and light versions.
The heavy version is for x86 and x64. The light version
is for ARM and MIPS. Remove the elements_ array from the
virtual frame in the light version. More simplifications
to come, followed by light register allocation.
Review URL: http://codereview.chromium.org/1164002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4272
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 25 Mar 2010 13:14:25 +0000 (13:14 +0000)]
Fix build.
Some old names reappeared due to some merge problem.
Review URL: http://codereview.chromium.org/1334001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4271
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 25 Mar 2010 13:10:50 +0000 (13:10 +0000)]
Fix LargeObjectSpace::Contains to check if addr is in new space.
Otherwise page header check is not quite robust: if there is a smi
at the same offset as Page::is_normal_page field, wrong result would
be returned.
That shouldn't be the problem for paged spaces as objects in those
pages do not span page boundaries and thus cannot mess with ::is_normal_page field.
Review URL: http://codereview.chromium.org/1175001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4270
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 25 Mar 2010 12:57:58 +0000 (12:57 +0000)]
Run string replace regexp with function in C++ code loop.
Reuses the result array to save on allocation.
Matches Safari's behavior.
Review URL: http://codereview.chromium.org/1109010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4269
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 25 Mar 2010 12:44:15 +0000 (12:44 +0000)]
Rename NumberInfo to TypeInfo.
Since we add more type (StringType, PrimitiveType) the name
NumberInfo does not make sense anymore.
Review URL: http://codereview.chromium.org/1207006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4268
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 25 Mar 2010 12:41:26 +0000 (12:41 +0000)]
Fix bug in RegExp first-character-lookahead.
Review URL: http://codereview.chromium.org/1253008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4267
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
pfeldman@chromium.org [Thu, 25 Mar 2010 12:28:24 +0000 (12:28 +0000)]
Make following ES5 functions work with undetectable parameters/target (document.all):
ObjectIsPrototypeOf
ObjectDefineGetter
ObjectLookupGetter
ObjectDefineSetter
ObjectLookupSetter
ObjectKeys
ObjectGetPrototypeOf
ObjectGetOwnPropertyDescriptor
ObjectGetOwnPropertyNames
ObjectDefineProperty
ObjectDefineProperties
I did not implement tests covering calls with undetectable parameters since I would need to make these tests native. Just thought it was not worth the effort. If you think tests would make sense, I can add them. We might want to allow other functions to receive undetectable parameters, but I am not seeing any good candidates.
Review URL: http://codereview.chromium.org/1297003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4264
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
pfeldman@chromium.org [Thu, 25 Mar 2010 12:20:59 +0000 (12:20 +0000)]
Fail with out-of-bounds exception upon illegal access to the ExecutionState's frame.
Review URL: http://codereview.chromium.org/1284001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4263
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 25 Mar 2010 12:04:34 +0000 (12:04 +0000)]
Re-apply "Inline floating point compare"
This re-applies r4220 and r4233, which was reverted in r4254 due to a bug. This bug has now been fixed, with the only change being line 2884 changed from
__ SmiTag(left_side->reg());
to
__ SmiTag(operand->reg());
Added a regression test.
BUG=http://crbug.com/39160
TEST=test/mjsunit/regress/regress-crbug-39160.js
Review URL: http://codereview.chromium.org/1251009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4261
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 25 Mar 2010 11:52:42 +0000 (11:52 +0000)]
Avoid calling ToRegister(register) when result is in register already, and register is shared.
Review URL: http://codereview.chromium.org/1325004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4260
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 25 Mar 2010 09:09:42 +0000 (09:09 +0000)]
Change StringSearch to not call exec and build unnecessary intermediate array.
Review URL: http://codereview.chromium.org/1223006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4259
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 24 Mar 2010 16:37:27 +0000 (16:37 +0000)]
Check for negative 0 when deciding whether a constant has type Integer32.
Review URL: http://codereview.chromium.org/1225005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4258
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 24 Mar 2010 15:55:15 +0000 (15:55 +0000)]
Fix Win32 build.
Use correct constants for min/max-int.
Review URL: http://codereview.chromium.org/1239004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4257
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 24 Mar 2010 15:29:41 +0000 (15:29 +0000)]
Store type information with constants.
Instead of testing the value of a constant frame element to determine
the type we compute its type information at construction time.
This speeds up querying the type information during code generation.
This change also adds support for Integer32 constants and sets
the type information accordingly.
Review URL: http://codereview.chromium.org/1277001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4256
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 24 Mar 2010 14:26:14 +0000 (14:26 +0000)]
Revert "Inline floating point compare"
This reverts svn revisons r4220 and r4233.
Review URL: http://codereview.chromium.org/1279001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4254
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 24 Mar 2010 13:24:46 +0000 (13:24 +0000)]
Implement support for reattaching a global object to a context. This
can be used to use the same global object for different contexts at
different points in time.
Review URL: http://codereview.chromium.org/1207003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4253
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 24 Mar 2010 13:10:18 +0000 (13:10 +0000)]
Fix Android scons build by putting -lv8 before -lgcc.
Review URL: http://codereview.chromium.org/1275001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4252
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
pfeldman@chromium.org [Wed, 24 Mar 2010 13:09:02 +0000 (13:09 +0000)]
Expose debug context into the native code. This change is doing several things:
1) Exposes Local<Context> v8::Debug::GetDebugContext().
Rationale: We can already get debugger context instance using various workarounds,
so exposing it explicitly in the API only makes things more clear.
2) Removes debugger.HasJavaScriptFrames() requirement for entering debugger context.
Rationale: Sometimes we'd like to call into debugger from the external native code.
3) Makes Debugger v8::Debug::Call execute on debugger context's global object.
Rationale: This is somewhat arguable, but temporary measure. We've agreed that we
should introduce a DebugAPI object that would expose necessary API in the debug-delay.
The problem is that it would take some time to define this API and it is not really
convenient to do that on the v8 land given the difference in v8 / host lifecycle.
The plan is to compose this API as a Debug.* wrapper outside v8 by means of exposing
debugger context's global object here, and once API settles down, upstream it to v8 and
start making Debug::Calls on this new DebugAPI object instead.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4251
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 24 Mar 2010 12:34:27 +0000 (12:34 +0000)]
Add primitive type and string type to the number info.
This change adds two new type attributes to the lattice
defined in the class NumberInfo. Currently the new types
are not used yet.
I plan to rename NumberInfo into TypeInfo as a separate change.
Review URL: http://codereview.chromium.org/1249002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4250
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 24 Mar 2010 11:48:01 +0000 (11:48 +0000)]
Revert revisions 4241, 4243 and 4247 because of Windows build errors
and test failures.
TBR=serya@chromium.org
Review URL: http://codereview.chromium.org/1269003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4249
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 24 Mar 2010 11:22:56 +0000 (11:22 +0000)]
Fix presubmit error (multiple statements on the same line).
TBR=fschneider@chromium.org
Review URL: http://codereview.chromium.org/1257002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4248
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Wed, 24 Mar 2010 11:11:33 +0000 (11:11 +0000)]
Fix conform test.
Review URL: http://codereview.chromium.org/1217007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4247
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 24 Mar 2010 10:36:18 +0000 (10:36 +0000)]
Initial support for marking live code.
As part of aggressive dead code elimination, we initially assume all
flow-graph instructions are not live. We mark those that are critical
and recursively all their children. The children of variable
references (VariableProxies occurring as rvalues) include all their
reaching definitions.
Review URL: http://codereview.chromium.org/1159005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4246
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 24 Mar 2010 10:32:23 +0000 (10:32 +0000)]
Added flag for seeding the random generator deterministically.
Review URL: http://codereview.chromium.org/1247003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4245
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Wed, 24 Mar 2010 09:48:58 +0000 (09:48 +0000)]
Fixing build in debug mode.
Review URL: http://codereview.chromium.org/1225003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4243
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 24 Mar 2010 09:26:28 +0000 (09:26 +0000)]
Pass the proper number of fields to update remembered set for.
By oversight kPointerSize more fields were passed.
BUG=39128
Review URL: http://codereview.chromium.org/1265001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4242
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Wed, 24 Mar 2010 08:51:03 +0000 (08:51 +0000)]
StringToDouble rewritten not using String::Get and memory allocations.
It converts the number to "canonical" form removing insignificant digits,
leading zerroes and spaces what guarantees to fit a fixed size buffer and
does not changes result of strtod.
Review URL: http://codereview.chromium.org/1096002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4241
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 24 Mar 2010 08:46:17 +0000 (08:46 +0000)]
Add comments to test-log-stack-tracer.
Review URL: http://codereview.chromium.org/1181001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4240
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 24 Mar 2010 08:12:14 +0000 (08:12 +0000)]
Prepare push to trunk. Now working on version 2.1.9.
Review URL: http://codereview.chromium.org/1217006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4237
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
oleg@chromium.org [Tue, 23 Mar 2010 15:28:58 +0000 (15:28 +0000)]
Make the new Date test independent of the timezone in which it is run.
Review URL: http://codereview.chromium.org/1084018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4236
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 23 Mar 2010 15:18:00 +0000 (15:18 +0000)]
Fix an error in optimized modulus operator, add unit test.
Review URL: http://codereview.chromium.org/1118008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4235
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Mar 2010 15:04:45 +0000 (15:04 +0000)]
MIPS simple function calls
This lands http://codereview.chromium.org/1018001.
Patch by Alexandre Rames <alexandre.rames@gmail.com> from Sigma Designs Inc.
Mads, please just have to look at the new flag --disable-native-files (two files not in the mips directory).
Review URL: http://codereview.chromium.org/1140004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4234
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Mar 2010 14:59:36 +0000 (14:59 +0000)]
Fix GetName and Print for CompareStub
Review URL: http://codereview.chromium.org/1108006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4233
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
oleg@chromium.org [Tue, 23 Mar 2010 14:47:02 +0000 (14:47 +0000)]
Fix bug code.google.com/p/v8/issues/detail?id=659. Move the limits check for date before the time zone offset is applied.
Review URL: http://codereview.chromium.org/1075016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4232
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 23 Mar 2010 14:33:42 +0000 (14:33 +0000)]
Fix pop push optimization to work with partial snapshots (correct
registration of external references in Proxy objects).
I moved the declaration of the two functions to stub-cache.h
because with all the types they use it's hard to declare them
anywhere else. But the actual definition is still in runtime.cc
near to the place where they are used.
Review URL: http://codereview.chromium.org/1079012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4231
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 23 Mar 2010 14:24:41 +0000 (14:24 +0000)]
Add binary operations with constants to the safe-int32 expression compiler.
Review URL: http://codereview.chromium.org/1089004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4230
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 23 Mar 2010 14:05:16 +0000 (14:05 +0000)]
Trim underlying fixed array by one element from the left when doing shift.
For now this trick is only done to objects in new space, see comments
for reasons.
Review URL: http://codereview.chromium.org/1076010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4229
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 23 Mar 2010 13:38:04 +0000 (13:38 +0000)]
Port of optimized ICs for external and pixel arrays from ia32 to ARM.
Review URL: http://codereview.chromium.org/993002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4228
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 23 Mar 2010 13:36:38 +0000 (13:36 +0000)]
Mark all loop conditions.
Previously we marked compare operations that occurred as for loop
conditions so as to avoid inlining the floating-point code for them.
Begin marking all expressions that occur as any loop condition
(because they are never dead code).
Review URL: http://codereview.chromium.org/1074009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4227
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 23 Mar 2010 13:11:44 +0000 (13:11 +0000)]
New GCCallbacks with additional parameters.
Author: Ilya Tikhonovsky <loislo@chromium.org>
Original issue: http://codereview.chromium.org/1094002
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/1165004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4226
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Mar 2010 13:09:33 +0000 (13:09 +0000)]
Update Visual Studio project files.
Review URL: http://codereview.chromium.org/1111011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4225
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 23 Mar 2010 13:01:37 +0000 (13:01 +0000)]
Add iterative primitive type analysis.
This change adds a data-flow pass to statically determine
if a variable contains a primitive type.
It requires building the flow graph and computing reaching
definitions as pre-requisites. The analysis annotates all
VariableProxy nodes with the result.
Review URL: http://codereview.chromium.org/1132005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4224
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
oleg@chromium.org [Tue, 23 Mar 2010 12:48:42 +0000 (12:48 +0000)]
Modify FastD2I to use static_cast instead of lrint(). Benchmarks show that it's much faster this way.
Review URL: http://codereview.chromium.org/1128010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4223
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 23 Mar 2010 12:42:47 +0000 (12:42 +0000)]
Fix issue 658: update test-log-stack-tracer after r4211.
It appears that semi-automatic changes made to test's code were
incorrect. v8::Script::Compile returns wrapped JSFunction,
not SharedFunctionInfo.
Review URL: http://codereview.chromium.org/1169002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4222
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 12:36:41 +0000 (12:36 +0000)]
Remove the last of the obsolete *-delay.js files. This one
is replaced by src/liveedit-debugger.js.
Review URL: http://codereview.chromium.org/1158005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4221
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Mar 2010 12:36:31 +0000 (12:36 +0000)]
Inline floating point compare
Inline floating point compare instead of calling the stub when the following conditions are met:
* Code is in a loop
* Compare is not a for loop condition
* Compare is not an equal comparison
This inlined code handles heap number to heap number and heap number to smi compare. It can also handle smi to smi compare, but whenever there is a chance of comparing two smis the smi compare is inlined before the inlined floating point compare. Support for non SSE2 hardware is included.
A new set of variants of the compare stub without the floating point comparison code is called if the inline comapre fails due to the operands not beeing heap numbers or smis.
The virtual frame has been extended with a branch taking two live results to be carried through to the destination. This makes this change much simpler as the inlined code have two live results in registers and a number of bailouts.
CompareStub::GetName needs to be updated as well. I will do that as a separate change.
Also inlined equality check if both operands can't be NaN. This can only provide positive equals if it is the same object.
Review URL: http://codereview.chromium.org/1117011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4220
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 12:31:52 +0000 (12:31 +0000)]
Bring back source line accidentally removed in r4217.
Review URL: http://codereview.chromium.org/1153008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4219
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 12:23:15 +0000 (12:23 +0000)]
Fix issue 658 by adapting the d8.cc code to the new types of
scripts (either a JSFunction or a SharedFunctionInfo).
Review URL: http://codereview.chromium.org/1077010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4218
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 11:40:38 +0000 (11:40 +0000)]
Merge the partial_snapshots branch back into bleeding_edge. For
now, the custom call generator stuff is disabled.
Review URL: http://codereview.chromium.org/1094014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4217
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 07:14:25 +0000 (07:14 +0000)]
Fix issue 656 on ARM.
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/1117010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4214
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 06:58:48 +0000 (06:58 +0000)]
Fix issue 656 on x64.
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/1081014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4213
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 06:40:29 +0000 (06:40 +0000)]
Fix issue 656 on x86.
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/1159004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4212
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 23 Mar 2010 06:04:44 +0000 (06:04 +0000)]
- Remove function boilerplate objects and use SharedFunctionInfos in
their place.
- Add one field to the SharedFunctionInfo to remember the number of
literals used in this function.
Review URL: http://codereview.chromium.org/669240
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4211
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 22 Mar 2010 14:31:28 +0000 (14:31 +0000)]
Use bit fields to calculate compare stub minor key
Review URL: http://codereview.chromium.org/1081010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4208
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 22 Mar 2010 14:23:45 +0000 (14:23 +0000)]
Add multithreading test for SamplingCircularQueue, fix implementation.
This is for the case of Linux, where sampling is done using SIGPROF
signal handler which is executed in the context of an interrupted
thread. In this case, my previous implementation with TLS doesn't
work.
Review URL: http://codereview.chromium.org/1138004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4207
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 22 Mar 2010 14:07:18 +0000 (14:07 +0000)]
Include initial definitions in reaching definitions analysis.
Include the initial definitions for parameters on input to the
function, and the initial definition of stack-allocated locals as
undefined.
Review URL: http://codereview.chromium.org/1155006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4206
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 22 Mar 2010 13:21:32 +0000 (13:21 +0000)]
Loop peeling for inner loops.
This change adds the option to peel off the first iteration of inner loops.
Loop peeling is off by default and can enabled by a flag. It also requires building a flow graph.
As part of this I added the possibility to clone AST nodes.
Review URL: http://codereview.chromium.org/998001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4205
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Mar 2010 12:19:18 +0000 (12:19 +0000)]
Prepare push to trunk. Now working on version 2.1.8.
Review URL: http://codereview.chromium.org/1164001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4204
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Mar 2010 12:16:11 +0000 (12:16 +0000)]
Revert change 4201.
Review URL: http://codereview.chromium.org/1113007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4203
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 22 Mar 2010 11:55:12 +0000 (11:55 +0000)]
Fix code generation for fast smi loops to support parameters as well.
This change fixes an assert we hit when we recognized a fast smi loop
with a parameter as the loop variable.
BUG=650
Review URL: http://codereview.chromium.org/1138003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4202
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Mon, 22 Mar 2010 11:07:22 +0000 (11:07 +0000)]
Porting binary op ICs to arm
Review URL: http://codereview.chromium.org/883001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4201
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Sun, 21 Mar 2010 00:23:03 +0000 (00:23 +0000)]
Fix broken build: disable stale assert
Review URL: http://codereview.chromium.org/1094008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4200
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Sat, 20 Mar 2010 22:37:15 +0000 (22:37 +0000)]
Explicitly declare temporary cooked frames state
Review URL: http://codereview.chromium.org/995006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4199
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00