lrn@chromium.org
172c27a6ba
Added ability to lock strings to prevent their representation or encoding from changing.
...
Use string locking to ensure consistent representation of source string during JSON parsing.
Review URL: http://codereview.chromium.org/7977001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 11:14:41 +00:00
vegorov@chromium.org
a0f07e5db1
Fix bug in PointersUpdatingVisitor::UpdatePointer.
...
It was updating the same pointer twice (was using InNewSpace instead of
InFromSpace).
Also make FLAG_never_compact supercede FLAG_always_compact.
R=erik.corry@gmail.com
BUG=v8:1721
Review URL: http://codereview.chromium.org/8041017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 10:24:42 +00:00
fschneider@chromium.org
ba6cd937ff
Add code comments to deferred code objects to make debugging easier.
...
Review URL: http://codereview.chromium.org/8046003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 09:32:10 +00:00
kmillikin@chromium.org
883f32695b
Enable inlining functions with contexts different than their caller.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7925007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 09:17:56 +00:00
vegorov@chromium.org
1046b1a464
Disable compaction.
...
Introduce flag to control code compaction.
R=danno@chromium.org
Review URL: http://codereview.chromium.org/8037022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 08:53:27 +00:00
lrn@chromium.org
b9d39c48b8
Make the RegExp.prototype object be a RegExp object.
...
BUG=v8:1217
TEST=mjsunit/regress/regress-1217
Review URL: http://codereview.chromium.org/8041015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 08:42:01 +00:00
yangguo@chromium.org
e6509e77d2
Small refactor to KeyedStoreIC::GenerateGeneric to make it slightly faster.
...
Review URL: http://codereview.chromium.org/8008016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 07:36:44 +00:00
danno@chromium.org
d21902b25e
Cache multiple ElementsKind map transition per map.
...
R=jkummerow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8017003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 15:09:00 +00:00
yangguo@chromium.org
65b1ea22fe
Porting r9392 to x64 (smi-only arrays).
...
Review URL: http://codereview.chromium.org/7992003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 14:19:04 +00:00
whesse@chromium.org
2e40bc244a
Add dynamic stack frame alignment to optimized functions with untagged doubles on the stack.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7976024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 13:28:17 +00:00
fschneider@chromium.org
683decd4ae
Make --trace-deopt --code-comments print the Lithium instruction that caused deoptimization.
...
This saves us from manually searching the disassembled code for the bailout id
when looking for the reason for deoptimization.
Review URL: http://codereview.chromium.org/8008013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 12:13:27 +00:00
svenpanne@chromium.org
901f20b052
Improved printing of a few Hydrogen instructions.
...
Review URL: http://codereview.chromium.org/8002021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 11:51:05 +00:00
yangguo@chromium.org
37606380ab
Porting r9392 to arm (smi-only arrays).
...
Review URL: http://codereview.chromium.org/7995002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 09:31:20 +00:00
danno@chromium.org
44b4ae1cd8
Add elements kind to maps debugging output
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7966019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 09:11:56 +00:00
svenpanne@chromium.org
1311b8f0e2
Improve Hydrogen code for accessing undefined/null/Infinity.
...
In some special (but probably very common) cases we can do better than loading
from a global cell for these global properties by emitting the corresponding
constant directly. This opens up opportunities for further improvements, coming
in a separate CL...
Review URL: http://codereview.chromium.org/7992002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 08:00:06 +00:00
mstarzinger@chromium.org
ec587f8a11
Implement verification of new space evacuation.
...
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/7935013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-23 07:30:57 +00:00
rossberg@chromium.org
3df2602037
Handle function proxies as getters/setters.
...
R=kmillikin@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7849021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 17:12:41 +00:00
ricow@chromium.org
e4c90dc958
GC Cleanup + Set max old generation size to 700MB on ia32 and max executable size to 128 MB (on ia32)
...
Review URL: http://codereview.chromium.org/7993003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 17:10:40 +00:00
keuchel@chromium.org
ad9290a6ae
Disallow strict mode FutureReservedWords as break/continue labels in strict mode
...
TEST=preparser/strict-identifiers.pyt
Review URL: http://codereview.chromium.org/7987002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 16:38:28 +00:00
ricow@chromium.org
bb2cf02849
Fix arm compilation, missing isolate pointer
...
Review URL: http://codereview.chromium.org/7988007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 16:27:05 +00:00
vegorov@chromium.org
bfd048173f
Notify collector about lazily deoptimized code objects.
...
All slots that were recorded on these objects during incremental marking should be ignored as they are no longer valid.
To filter such invalidated slots out during slots buffers iteration we set all markbits under the invalidated code object to 1 after the code space was swept and before slots buffers are processed.
R=erik.corry@gmail.com
BUG=v8:1713
TEST=test/mjsunit/regress/regress-1713.js
Review URL: http://codereview.chromium.org/7983045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 16:01:35 +00:00
yangguo@chromium.org
7ab81a14fa
Reverting r9399.
...
Review URL: http://codereview.chromium.org/7989007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 15:55:44 +00:00
yangguo@chromium.org
dfeaa56b9a
Fix debug builds broken by r9399.
...
Review URL: http://codereview.chromium.org/7996002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 15:39:22 +00:00
yangguo@chromium.org
0c6863a1ef
Set RegExp's prototype to RegExp as specified by ES5.
...
BUG=v8:1217
TEST=regress-1217.js
Review URL: http://codereview.chromium.org/7995005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 15:11:12 +00:00
ricow@chromium.org
c23f9867e7
Don't take heap snapshot when doing Heap::RecordStats from OOM cases.
...
Filled issue 1718 to track this.
Review URL: http://codereview.chromium.org/7995003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 14:43:23 +00:00
rossberg@chromium.org
d938560d59
Implement identity hashes for proxies.
...
R=mstarzinger@chromium.org
BUG=v8:1543,v8:1565
TEST=
Review URL: http://codereview.chromium.org/7754015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 13:54:53 +00:00
mstarzinger@chromium.org
873e4980db
Fix transferal of marking bits on array trimming.
...
R=vegorov@chromium.org
BUG=v8:1708
TEST=mjsunit/regress/regress-1708
Review URL: http://codereview.chromium.org/7979038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 13:03:22 +00:00
fschneider@chromium.org
c6a3422c04
Give each function prototype a fresh copy of the object function map.
...
This avoid unwanted sharing between different function prototypes and in
general should help inlining because constant function properties on one
prototype don't affect other prototypes anymore.
BUG=v8:1716
Review URL: http://codereview.chromium.org/7994001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 12:57:54 +00:00
danno@chromium.org
f48c9f6557
Basic support for tracking smi-only arrays on ia32.
...
Activated by the flag --smi-only-arrays
Currently not crankshaft support, using flag on non-ia32 platforms will lead to write barrier misses and crashes.
BUG=none
TEST=elements_kind.js
Review URL: http://codereview.chromium.org/7901016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 11:30:04 +00:00
rossberg@chromium.org
e04d0b23a8
Make integer indexed properties ("elements") work for proxies.
...
Rehome some Object/JSReceiver/JSObject methods.
R=ricow@chromium.org ,kmillikin@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7795055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 10:45:37 +00:00
fschneider@chromium.org
35cb252a86
Attempt to fix GCMole warning.
...
Review URL: http://codereview.chromium.org/7980064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 09:15:43 +00:00
yangguo@chromium.org
b7cac76bae
Fixed string.split: always convert non-regexp separator to string.
...
BUG=v8:1711
TEST=mjsunit/regress/regress-1711.js
Review URL: http://codereview.chromium.org/7976046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-22 08:18:58 +00:00
rossberg@chromium.org
fdade92c20
Reorganize object type enum, such that proxies are no longer in the middle
...
of the range of proper JS objects.
Unfortunately, callable types no longer form a range now. However, there
are only two anyway. We put them at either end of the range of JS object
types so that certain compares can be combined.
R=erik.corry@gmail.com ,kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7737036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 14:46:54 +00:00
sgjesse@chromium.org
9183444850
Turn on d8 interactive debugging before running files passed on the command line
...
If the file test.js contains:
function f() { debugger; }
f()
Then running
$ d8 --debugger test.js
will now hit the breakpoint in f which it would not before.
R=yangguo@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org//7981023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 13:42:25 +00:00
fschneider@chromium.org
fdaadb78d6
Landing for miket@chromium.org: Add an optional source length field to the Extension constructor.
...
Original code review: http://codereview.chromium.org/7889046/
Review URL: http://codereview.chromium.org/7978028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 13:28:09 +00:00
rossberg@chromium.org
6c8472bd3a
Fix and test use of property descriptor objects.
...
R=kmillikin@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7828080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 12:45:51 +00:00
keuchel@chromium.org
41eb990afe
Fix pre-parsing function declarations.
...
The preparser has been out of sync with the parser. As a reminder, we have the
following grammer for harmony mode
Block ::
{ SourceElement* }
SourceElement ::
Statement
FunctionDeclaration
LetDeclaration
instead of
Block ::
{ Statement* }
SourceElement ::
Statement
FunctionDeclaration
The extension to allow FunctionDeclarations in statement positions in
non-strict code is still active.
Review URL: http://codereview.chromium.org/7983006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 12:27:07 +00:00
vegorov@chromium.org
63b6874ef3
SemiSpace::AssertValidRange should use NewSpacePage::FromLimit for start.
...
Otherwise we get the wrong page when start == limit.
R=lrn@chromium.org
Review URL: http://codereview.chromium.org/7979019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 11:42:48 +00:00
yangguo@chromium.org
731a70ce13
API: Added Debug::DisableAgent to match existing Debug::EnableAgent
...
BUG=v8:1573
TEST=cctest test-debug/TestDebuggerAgent
Review URL: http://codereview.chromium.org/7978025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 11:34:05 +00:00
vegorov@chromium.org
5b8a6c1e54
Make heap iterable in PrepareForBreakPoints.
...
When aborting incremental marking with compaction discard all slots collected on evacuation candidates.
R=ricow@chromium.org
BUG=v8:1700
TEST=inspector/debugger/debugger-step-in.html
Review URL: http://codereview.chromium.org/7977004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 11:20:05 +00:00
rossberg@chromium.org
647ad8f500
Fix GC hazard.
...
R=jkummerow@chromium.org
BUG=v8:1698
TEST=
Review URL: http://codereview.chromium.org/7977021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 09:58:40 +00:00
kmillikin@chromium.org
dcc542f2d1
Fix build.
...
Last minute cleanup lost a '*'.
TBR=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7977020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 09:04:44 +00:00
kmillikin@chromium.org
99eab94443
Reapply "Clean up Context::Lookup and its uses."
...
The threading test failures seem to be due to a GC-unsafe place, that
mixed handles and raw pointers, in the runtime code for context
lookup.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7890002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 08:51:44 +00:00
svenpanne@chromium.org
4e3565cf7f
Fixed alignment problem when generating code for builtins.
...
This is not perfect, but it should fix the problem at hand. We should really clean up the memory handling responsibilities for the (macro)assemblers.
BUG=v8:1706
Review URL: http://codereview.chromium.org/7978023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 07:59:28 +00:00
erik.corry@gmail.com
14087f430d
Disable some tests while we hunt for the reasons behind them.
...
Review URL: http://codereview.chromium.org/7978022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-21 07:25:33 +00:00
mstarzinger@chromium.org
3fabe323f2
Add kHeaderSize constant to SeqString.
...
This prevents potential misuse of SeqString::kHeaderSize as in the
case of live byte counting in incremental marking stub. All stubs
picked up the undefined size constant SeqString::kHeaderSize, thus
the computed size of all strings was off by two pointers slots.
R=lrn@chromium.org
BUG=v8:1672
TEST=mjsunit/object-seal.js,...
Review URL: http://codereview.chromium.org/7971009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 16:33:03 +00:00
mstarzinger@chromium.org
bffbcefffb
Fix new space shrinking to compute correct capacity.
...
R=vegorov@chromium.org
BUG=v8:1702
TEST=cctest/test-heap/GrowAndShrinkNewSpace
Review URL: http://codereview.chromium.org/7983001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 15:35:36 +00:00
svenpanne@chromium.org
9702f38cc3
Fixed an assertion in PagedSpace::Verify.
...
The formerly unused variable was found by GCC 4.6.1, BTW...
Review URL: http://codereview.chromium.org/7979005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 14:46:33 +00:00
mstarzinger@chromium.org
86832d5924
Fix new space shrinking to reset from-space.
...
R=lrn@chromium.org
BUG=v8:1702
TEST=cctest/test-heap/GrowAndShrinkNewSpace
Review URL: http://codereview.chromium.org/7976003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 13:37:40 +00:00
vegorov@chromium.org
50a94139fc
GcSafeCastToCode should not use Code::contains it is not evacuation safe.
...
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/7980004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 13:36:52 +00:00
erik.corry@gmail.com
c8fe713986
Put back the asserts in RememberedSetHelper, but correct this time.
...
Fix some incorrect comments.
Review URL: http://codereview.chromium.org/7977005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 13:32:27 +00:00
vegorov@chromium.org
867bb733af
Remove incorrect debug-code assertion.
...
We should not use slot address to find out the page. This does not work for large pages.
Also this assertion is not always true (violated during incremental marking).
R=erik.corry@gmail.com
TEST=mozilla/js1_5/extensions/regress-371636
Review URL: http://codereview.chromium.org/7981001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 11:30:18 +00:00
lrn@chromium.org
610281f4ee
Fix calculation of live-bytes in pages.
...
The "live bytes" count is *really* a "marked black" count - i.e., the count of bytes *known* to be live.
Fix aggravating bug on X64 where assembler code used a value that was off
by a factor of 2^31.
Ensure that sweeping clears live-bytes. Added other missing increments.
Added print statements to trace live-byte modifications, under a flag.
Still a few cases of undercounting left.
(New issue to merge from GC branch to bleeding_edge)
Review URL: http://codereview.chromium.org/7970009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 11:20:00 +00:00
fschneider@chromium.org
76c869434d
Fix a bug with uninitialized const variables in the optimizing compiler.
...
We have to check for uninitialized uses before phi-elimination. Otherwise we
may miss such a use and result in using the hole value instead. This
causes a NULL-dereference or assertion failure.
BUG=96989
TEST=mjsunit/compiler/regress-96989.js
Review URL: http://codereview.chromium.org/7974009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 10:26:01 +00:00
erik.corry@gmail.com
2f1f203bff
Fix pc to code cache so it can cope with a pointer to the start of the code
...
object. Rename it to be the inner pointer to code cache.
Review URL: http://codereview.chromium.org/7969013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 10:08:39 +00:00
yangguo@chromium.org
fdffe67205
Initialize pre-allocated fields of JSObject with undefined.
...
BUG=94873
Review URL: http://codereview.chromium.org/7929001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 10:06:23 +00:00
svenpanne@chromium.org
29618c079a
Make newer GCCs happier: Removed unused variables.
...
Review URL: http://codereview.chromium.org/7969014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 09:44:23 +00:00
svenpanne@chromium.org
d4bb00230b
Make newer GCCs happier: Fixed NULL vs. 0 confusion.
...
Review URL: http://codereview.chromium.org/7970008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 09:43:58 +00:00
erik.corry@gmail.com
00eaa669ad
Speed up finding code objects from addresses in asserts. With
...
the new large pages it takes too long to iterate from the start
of the page to find a code object.
Review URL: http://codereview.chromium.org/7974007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 08:32:48 +00:00
kmillikin@chromium.org
22ef98dc66
Fix a deoptimization bug.
...
We reset the count of outgoing arguments, used for the index in the
frame's outgoing arguments, for each level of inlining. This could
result in the arguments overlapping, rather than stacking on top of
each other.
R=whesse@chromium.org ,fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7932022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-20 07:14:30 +00:00
erik.corry@gmail.com
d8b8825474
ARM: Pregenerate some stubs that we call from other stubs.
...
BUG=1696
Review URL: http://codereview.chromium.org/7956002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-19 18:50:06 +00:00
vegorov@chromium.org
ac36cb4504
Merge experimental/gc branch to the bleeding_edge.
...
Review URL: http://codereview.chromium.org/7945009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-19 18:36:47 +00:00
fschneider@chromium.org
b77a69f22c
Only do a full verify after computing dominators.
...
We don't modify the graph in later phases. This speeds up debug tests
by a lot.
Review URL: http://codereview.chromium.org/7942001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-19 15:09:30 +00:00
svenpanne@chromium.org
cf63503cad
Unify the handling of comparinsons against null and undefined.
...
Although this patch is not small, most parts of it are rather mechanical:
* First of all, the concept of a 'nil-like' value is introduced, which can be
null or undefined. They are treated symmetrically regarding comparisons, so
it makes sense to handle them in a uniform manner. It is a mystery why
JavaScript defines two of those beasts, when even *one* is a design wart...
* Extended and renamed a few things which now handle undefined in addition to
null.
* Made the parts of the full code generator and the hydrogen generation which
deal with comparisons a bit more similar regarding their handling of special
cases.
* Refactored the syntactical detection of special cases for comparisons,
hopefully making them a bit more readable and less copy-n-paste-oriented.
Things like this should really be a one-liner in any sane programming
language... :-P
* Cut down the length of the argument lists of a few functions to something
less insane, making them more easily understandable locally. This involves
minor code duplication, but this was a good tradeoff and can be remedied
later if necessary.
* Replaced some boolean arguments with more readable enums.
* Fixed a TODO: Values which are definitely a Smi or unboxed can never be equal
to null or undefined.
Review URL: http://codereview.chromium.org/7918012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-19 14:50:33 +00:00
yangguo@chromium.org
94d7477011
MIPS: port Make function proxies work as constructors.
...
ported r9310 (72a5468)
BUG=
TEST=
Review URL: http://codereview.chromium.org/7931002
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-19 09:55:07 +00:00
erik.corry@gmail.com
b84214a5be
Fix a harmless assert and a genuine bug in the GC-safety of stub
...
generation on ARM without VFP3.
Review URL: http://codereview.chromium.org/7937004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-19 07:38:48 +00:00
whesse@chromium.org
acb0f103c1
Fix presubmit - remove stray whitespace on empty lines.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7931023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-18 21:16:08 +00:00
erikcorry
41cafb7b95
MIPS: Fixed a bug in CallStubCompiler::CompileArrayPushCall.
...
An ARM PreIndex store was badly ported.
Landing http://codereview.chromium.org/7934003/ for Paul Lind.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-18 15:16:46 +00:00
erikcorry
433db37747
MIPS: port Implement function proxies (except for their use as constructors).
...
port r9258 (c8709a9)
Note on mips implementation: Arm reg r4 (call type) normally maps to mips
reg t0. We had already used t0 as a temp in Generate_FunctionCall() and
Generate_FunctionApply(), so I replaced that existing t0 usage with t3, and
now use t0 only for call type.
Original commit message:
Introduce new %Apply native.
Extend Execution::Call to optionally handle receiver rewriting (needed for %Apply).
Fix Function.prototype.bind for functions that have .apply modified.
Landing http://codereview.chromium.org/7891033/ for Paul Lind.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-18 15:11:33 +00:00
erikcorry
4c64b160d2
MIPS: Fix assertion-fail on cacheflush from generated code.
...
Fix a mips-specific CallCFunction assertion, when checking for valid
frames on the stack. We fake it with AllowExternalCallThatCantCauseGC().
Landing http://codereview.chromium.org/7932010/ for Paul Lind.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-18 15:05:44 +00:00
fschneider@chromium.org
5cf540acce
When --nolimit-inlining flag is set, don't limit inlining depth.
...
This flag is used to debug problems with inlining.
By default we still limit inlining to small functions and up to a maximum
depth to avoid too much code size growth.
Review URL: http://codereview.chromium.org/7919012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-17 12:29:16 +00:00
rossberg@chromium.org
42f0a73a96
Make proxies work as prototypes.
...
Fix a couple of other proxy bugs along the way.
Refactor trap invocation in native code.
R=kmillikin@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7799026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-16 13:38:30 +00:00
erik.corry@gmail.com
ff5e1c9822
Fix asserts and GC unsafeness in stub generation, bug=1689.
...
Review URL: http://codereview.chromium.org/7920006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-16 13:06:51 +00:00
rossberg@chromium.org
07469fa5ae
Make function proxies work as constructors.
...
R=kmillikin@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7628021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-16 12:26:29 +00:00
erik.corry@gmail.com
ab30559fee
Fix some stub calling asserts on x64.
...
Review URL: http://codereview.chromium.org/7922008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-16 11:29:13 +00:00
danno@chromium.org
c74aae242a
MIPS: pre-crankshaft updates to code-stubs and stub-cache (3/3)
...
Highlights:
- code-stubs-mips.cc
-- use EmitFPUTruncate in place of inline code in several places.
-- use BranchF macro rather than lower-level FP cmp and branch for readability.
-- Port of Sven's r8859 (Implement type recording for ToBoolean) and r8886
(Simplify and optimize ToBoolean handling.)
-- Fix bug in TranscendentalCacheStub::Generate where some regs were not
saved across CFunction call.
-- use updated xxxCFunction macros.
-- update InstanceOfStub to support crankshaft
DoDeferredLInstanceOfKnownGlobal
-- Provide code-patching and I-cache flushing support for generated
code, used for InstanceOfStub under crankshaft (not submitted here).
This requires adding new ExternalReference to src/assember.cc,h
- stub-cache-mips.cc
-- port Danno's r8901 (Create a common base class for Fixed-, FixedDouble-
and ExternalArrays) to mips crankshaft branch.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7890001
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-16 09:23:48 +00:00
danno@chromium.org
c579bfe6e2
MIPS: pre-crankshaft updates to macro-assembler and related files. (2/3)
...
Highlights:
- Better support for FP compares and branches (BranchF macro)
- Add EmitFPUTruncate() macro, similar to EmitVFPTruncate on Arm.
- Some improvements to long-branch mechanism for mips.
- Add ClampUint8() and ClampDoubleToUint8()
- Minor changes to ic-mips, full-codegen-mips mostly, for improved
code-patching with BinaryOpStub.
- Small changes to stack checking in full-codegen-mips and
regexp-macro-assembler-mips
BUG=
TEST=
Review URL: http://codereview.chromium.org/7888004
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-16 09:12:56 +00:00
erik.corry@gmail.com
2517b0ef5d
Fix some asserts in stub generation and file some bugs where
...
we appear to have valid asserts triggering.
Review URL: http://codereview.chromium.org/7908005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 19:24:04 +00:00
danno@chromium.org
6a5e0448c8
Share Maps for ElementsKind transitions
...
Support sharing maps after an changing an object's ElementsKind for element kinds other then external elements.
R=svenpanne@chromium.org
BUG=none
TEST=external-arrays.js
Review URL: http://codereview.chromium.org/7862036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 16:38:47 +00:00
yangguo@chromium.org
3439ab60f7
Correcting a bogus assert outdated since r9295.
...
Review URL: http://codereview.chromium.org/7909002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 12:47:06 +00:00
jkummerow@chromium.org
fcc2e65aad
Change global const handling to silently ignore redeclarations
...
and make window.{Infinity,NaN,undefined} read-only as per ES5
BUG=89490
TEST=mjsunit/const-redecl.js, mjsunit/undeletable-functions.js, es5conform, sputnik
Review URL: http://codereview.chromium.org/7811015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 12:00:30 +00:00
erik.corry@gmail.com
44d931c9d5
Add asserts to ensure that we:
...
1) Don't make a call to C without having a valid frame on the stack.
2) Don't generate a call to a stub while generating a stub, unless we can be
sure that the stub we are calling has already been generated (the stub
generation code is not reentrant wrt. GC).
Review URL: http://codereview.chromium.org/7891042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 11:30:45 +00:00
yangguo@chromium.org
327eb48ce6
Enable slices of external strings (in the tentative implementation).
...
TEST=cctest test-strings/SliceFromExternal, mjsunit/string-slices.js
Review URL: http://codereview.chromium.org/7832002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 11:10:01 +00:00
fschneider@chromium.org
9e4663a8d9
Enable inlining of functions that reference context slots.
...
Review URL: http://codereview.chromium.org/7887038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 10:57:47 +00:00
svenpanne@chromium.org
8c744768e2
Nuke CompareToNull AST node.
...
The Great Master Plan is to move the recognition of special cases for
comparisons further down the compilation pipeline where more information is
available. This is a first step into this direction: The special handling of
equality comparisons involving null is pushed from the parser to the code
generators, removing the need for a special AST node. (There are rumors from
usually well-informed sources that this node type is actually a relic of ancient
crankshaft days...)
The next steps will be the unification of null/undefined handling and pushing
the special case handling in crankshaft even further down the pipeline, enabling
the recognition of cases like "var foo=null; if (foo === bar) ...", but these
will be in separate CLs.
Review URL: http://codereview.chromium.org/7887037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 09:09:40 +00:00
yangguo@chromium.org
48b5328bde
Fixing issue 1639, debugger stops stepping outside evaluate.
...
BUG=v8:1639
Review URL: http://codereview.chromium.org/7889039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 07:23:31 +00:00
lrn@chromium.org
2ac387c28c
Prepare push to trunk. Now working on version 3.6.5.
...
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/7905001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-15 07:22:07 +00:00
vegorov@chromium.org
af03e40cbb
Force lazy deoptimization and remove optimized code on deopt inside a recursively invoked function.
...
R=fschneider@chromium.org ,sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7890028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 16:14:26 +00:00
yangguo@chromium.org
e53841104d
Fixing d8's broken readline history.
...
Review URL: http://codereview.chromium.org/7885026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 14:39:56 +00:00
keuchel@chromium.org
96de832c89
Mark variables as being accessed from any inner scope, not only function scopes
...
BUG=96523
TEST=mjsunit/regress/regress-96523.js
Review URL: http://codereview.chromium.org/7890031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 13:51:29 +00:00
lrn@chromium.org
724962846c
Make built-in functions not call .apply on functions.
...
Uses the new %Apply runtime function instead.
Removes last(?) dependency on user-mungable infrastructure.
Review URL: http://codereview.chromium.org/7887031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 12:33:57 +00:00
mikhail.naganov@gmail.com
b706cfce94
Eliminate the need for code delete events in CPU profiler.
...
Events are still generated for tick processor on performance testing
server to work, as soon as scripts will be updated, it will be safe
to remove code delete events emitting code.
R=erik.corry@gmail.com
BUG=v8:1466
TEST=existing tests in test-profile-generator,test-cpu-profiler and mjsunit/tools
Review URL: http://codereview.chromium.org/7864017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 11:47:03 +00:00
yangguo@chromium.org
b910f4317e
Reverting r9272.
...
Review URL: http://codereview.chromium.org/7889033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 11:27:14 +00:00
keuchel@chromium.org
a392f5bf70
Fix scope iteration when debugging global code.
...
TEST=mjsunit/debug-scopes.js
Review URL: http://codereview.chromium.org/7890007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 11:20:31 +00:00
yangguo@chromium.org
9d235c9dd7
Fixed broken readline console history.
...
Review URL: http://codereview.chromium.org/7888035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 11:05:07 +00:00
kmillikin@chromium.org
7f28e975e5
MIPS: port Remove in-loop tracking for call ICs.
...
port r9260 (af9cfd83).
Original commit message:
We passed this flag around in a lot of places and had differenc call
ICs based on it, but never did any real specialization based on its
value.
BUG=
TEST=
Committed: http://code.google.com/p/v8/source/detail?r=9269
Review URL: http://codereview.chromium.org/7886028
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 08:11:16 +00:00
kmillikin@chromium.org
63bec78428
Revert "MIPS: port Remove in-loop tracking for call ICs."
...
Committed incorrectly.
TBR=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7890026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 08:08:16 +00:00
kmillikin@chromium.org
f9e2922b12
MIPS: port Remove in-loop tracking for call ICs.
...
port r9260 (af9cfd83).
Original commit message:
We passed this flag around in a lot of places and had differenc call
ICs based on it, but never did any real specialization based on its
value.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7886028
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 08:04:47 +00:00
rossberg@chromium.org
40880d3206
Fixed spurious character in test case, plus presubmit issues.
...
Also addressed Slava's complaint about the personalized comment.
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7886032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-14 07:30:51 +00:00
rossberg@chromium.org
28f7136ced
Fix for .bind regression.
...
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7892013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-13 17:14:39 +00:00