vegorov@chromium.org
bdfceace53
Fix potentially GC unsafe place in JSObject::DeleteElementWithInterceptor.
...
Review URL: http://codereview.chromium.org/7660012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-16 15:51:49 +00:00
danno@chromium.org
96f198a4dc
Change AddElementsToFixedArray to work on FixedArrayBase rather than JSObject
...
In the process, make ElementsAccessors work internally more seamlessly with FixedArrayBase.
R=svenpanne@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7618012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-12 14:52:03 +00:00
danno@chromium.org
48f411a225
Change JSObject elements to be of type FixedArrayBase
...
R=kmillikin@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7617010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-12 13:54:27 +00:00
svenpanne@chromium.org
bb81895595
Fixed printing of deoptimization input data without --print-code-verbose.
...
Review URL: http://codereview.chromium.org/7617008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-11 13:56:09 +00:00
danno@chromium.org
ff13ab4575
Refactor UnionOfKeys into ElementsAccessor
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7529046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-10 10:51:01 +00:00
whesse@chromium.org
92e7656c4d
Clean up TranslationIterator and DeoptimizationInputDataPrint.
...
Without this refactoring, they break when we add alignment padding in the Translation info.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7569009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-08 07:17:01 +00:00
danno@chromium.org
4a7a47ac8f
Move element deletion into element handlers
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7566004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-04 11:42:14 +00:00
danno@chromium.org
9aa75ed998
Fix out-of-bounds access in fetching propery names
...
R=vegorov@chromium.org
BUG=chromium:91517
TEST=none
Review URL: http://codereview.chromium.org/7565009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-04 09:23:25 +00:00
mstarzinger@chromium.org
b05ff5e0b9
Prototype of mark-and-compact support for Harmony weak maps.
...
R=vegorov@chromium.org
BUG=v8:1565
TEST=cctest/test-weakmaps
Review URL: http://codereview.chromium.org/7553012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 12:48:30 +00:00
danno@chromium.org
a2eaf852a9
Fix performance regression due to elements refactor
...
Consolidate the runtime logic for fetching elements from Objects and JSObjects so that element access in the GetElement cases that are not handled in generated code.
R=svenpanne@chromium.org
BUG=none
TEST=closure.js test faster
Review URL: http://codereview.chromium.org/7569001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 12:42:04 +00:00
mstarzinger@chromium.org
2bb7c74f80
Preliminary Harmony weak maps API implementation.
...
R=rossberg@chromium.org ,danno@chromium.org
BUG=v8:1565
TEST=mjsunit/harmony/weakmaps
Review URL: http://codereview.chromium.org/7529007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 11:55:13 +00:00
danno@chromium.org
bdf6895bb3
Encapsulate element handling into a class keyed on ElementsKind
...
Advantage is that it's much easier to add new element types (like FAST_SMI_ELEMENTS), and that handling logic for each element kind is (more) consolidated.
Currently, only GetElementsWithReceiver uses the new encapsulation, but the goal is to move much more element functionality into the class incrementally.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7527001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 11:12:46 +00:00
danno@chromium.org
b333719607
Properly handle FixedDoubleArrays in sort()
...
R=jkummerow@chromium.org
BUG=91008
TEST=regress-91008.js
Review URL: http://codereview.chromium.org/7542008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-02 14:05:11 +00:00
mstarzinger@chromium.org
eef3e8739e
Reintroduced dictionary that can use objects as keys.
...
R=vitalyr@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/7385006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-28 17:21:22 +00:00
vitalyr@chromium.org
42a2b4ede7
Improve fast to slow elements conversion:
...
o Use a more strict limit for old arrays.
o Initial capacity of a slow elements dictionary should be the number
of used elements and not the old array capacity.
R=danno@chromium.org
Review URL: http://codereview.chromium.org/7464032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-26 13:56:21 +00:00
jkummerow@chromium.org
0aab25fabf
Fix: FunctionTemplate::SetPrototypeAttributes broke prototype object
...
BUG=v8:1539
TEST=cctest test-api/SetPrototypeAttributes
Review URL: http://codereview.chromium.org/7324027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-25 15:01:45 +00:00
danno@chromium.org
3e7d642d0a
Remaining changes to fully support FastDoubleArray.
...
R=ager@chromium.org
BUG=none
TEST=cctests, unboxed-double-array.js
Review URL: http://codereview.chromium.org/7473031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-22 09:04:16 +00:00
svenpanne@chromium.org
f7138b1427
Implement a type recording ToBoolean IC.
...
The IC records the set of types it has seen, e.g. {String} or {Boolean,
Undefined}, etc. Note that in theory this could lead to a large number of
different ToBoolean ICs (512, to be exact, because we distinguish 9 types),
but in practice only a small handful of them are actually generated.
Currently the type recording part is only implemented on ia32, other platforms
continue to work like they did before, though.
Removed some dead code on the way.
Review URL: http://codereview.chromium.org/7473028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-21 13:51:04 +00:00
rossberg@chromium.org
3ff882ff64
Make proxy fixing GC safe.
...
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7460009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-21 11:28:18 +00:00
vitalyr@chromium.org
013baa4164
Slightly simplify slow elements conversion check.
...
R=danno@chromium.org
Review URL: http://codereview.chromium.org/7460011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 15:14:50 +00:00
danno@chromium.org
92fc85b480
Implement support for getters/setter on FixedDoubleArrays.
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7459009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 13:41:50 +00:00
danno@chromium.org
8bc3254e4b
Implement for..in for FastDoubleArrays
...
Also add tests for apply on FastDoubleArrays.
R=ager@chromium.org
BUG=none
TEST=unboxed-double-array.js
Review URL: http://codereview.chromium.org/7461018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 10:54:58 +00:00
danno@chromium.org
a85a493f70
Reland 8636: Implement setting the length property for FixedDoubleArrays.
...
R=ager@chromium.org
BUG=none
TEST=unboxed-double-arrays.js
Review URL: http://codereview.chromium.org/7460008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 09:11:38 +00:00
whesse@chromium.org
47e03a0000
fix -Wunused-but-set-variable for gcc-4.6 on x64
...
* src/third_party/valgrind/valgrind.h: Update from upstream valgrind
r11899, so as to get around some unused value warnings. Also adds
support for darwin.
This version of valgrind.h differs from the original in that all
instances of "unsigned long long int" have been replaced with
"uint64_t", as the former is not allowed in ISO C++ 89.
See https://bugs.kde.org/show_bug.cgi?id=211926 for the upstream bug
report.
* src/x64/cpu-x64.cc:
* src/builtins.cc:
* src/conversions-inl.h:
* src/debug.cc:
* src/frames.cc:
* src/full-codegen.cc:
* src/jsregexp.cc:
* src/objects.cc:
* src/parser.cc:
* src/platform-linux.cc:
* src/x64/code-stubs-x64.cc:
* src/x64/deoptimizer-x64.cc:
* src/x64/full-codegen-x64.cc:
* src/x64/lithium-codegen-x64.cc:
* src/x64/regexp-macro-assembler-x64.cc:
* src/x64/stub-cache-x64.cc: Remove a number of assigned but
unreferenced variables.
* SConstruct (CCTEST_EXTRA_FLAGS): Punt on -Wunused-but-set-variable for
the test suite.
BUG=1291
TEST=A build and tools/test.py passes.
Review URL: http://codereview.chromium.org/7400023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 08:09:58 +00:00
danno@chromium.org
a1e851e916
Rollback 8683: Implement setting the length property for FixedDoubleArrays
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7448002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-19 16:34:17 +00:00
danno@chromium.org
837d83ebf3
Implement setting the length property for FixedDoubleArrays.
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7400020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-19 16:06:17 +00:00
rossberg@chromium.org
f7ff89ea02
Implement `in' for proxies.
...
R=ager@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7390028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-19 09:38:59 +00:00
rossberg@chromium.org
5e62e325ac
Implement sealing, freezing, and related functions for proxies.
...
R=ager@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7391001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-18 13:04:52 +00:00
rossberg@chromium.org
75a2c49c1d
Implement delete trap for proxies.
...
R=ager@chromium.org
BUG=1543
TEST=
Review URL: http://codereview.chromium.org/7369001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-15 09:10:20 +00:00
danno@chromium.org
391ef3be33
Implement ICs for FastDoubleArray loads and stores
...
Implemented on ia32, x64, ARM. Stubbed out with UNIMPLEMENTED on MIPS.
BUG=none
TEST=unbox-double-arrays.js
Review URL: http://codereview.chromium.org/7307030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 13:50:27 +00:00
whesse@chromium.org
b2e8d72bf5
Revert r8619 because of Webkit failures.
...
Review URL: http://codereview.chromium.org/7351014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 11:13:40 +00:00
yangguo@chromium.org
c0044bb7e2
Added dictionary that can use objects as keys.
...
R=vegorov@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/7349005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-12 15:13:57 +00:00
kmillikin@chromium.org
890bc1607a
Fix a potential crash in const declaration.
...
Declaration of const lookup slots would trigger an assertion if there was a
setter somewhere in the prototype chain, and that setter was shadowed by a
non-readonly data property also in the prototype chain.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7324048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 14:07:12 +00:00
vegorov@chromium.org
3555f82311
Fix bug in Map::TraverseTransitionTree.
...
If map has an empty DescriptorArray we have to set map_or_index_field to NULL otherwise we will
reset iteration state for a previously visited map in the transition tree which has a non-empty
DescriptorArray. This might result in visiting the same map several times.
R=whesse@chromium.org
BUG=v8:1526
Review URL: http://codereview.chromium.org/7329043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 12:06:35 +00:00
kmillikin@chromium.org
cbaf1bc98b
Allow JSObject::PreventExtensions to work for arguments objects.
...
R=karlklose@chromium.org
Review URL: http://codereview.chromium.org/7335002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 06:48:19 +00:00
kmillikin@chromium.org
44c4d0e376
Fix compilation error.
...
Compiler cannot recognize the typename in template declaration. Caught by
MSVC.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/7237047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 08:03:39 +00:00
kmillikin@chromium.org
fe23339bdd
Fix a bug in for/in iteration of arguments objects.
...
We did not properly combine the property names from the parameter map
and the arguments backing store. They could overwrite each other and
be unsorted.
Also fix an unrelated bug: deleting from a dictionary-mode arguments
backing store could corrupt the parameter map.
R=rossberg@chromium.org
BUG=1531
TEST=mjsunit/regress/regress-1531.js
Review URL: http://codereview.chromium.org/7278033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 07:31:48 +00:00
vitalyr@chromium.org
8448d09d3b
Do a backing store sparseness check on fast element delete.
...
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/7298004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 13:18:42 +00:00
vitalyr@chromium.org
90c9f1b989
Suspend runtime profiler as soon as we exit JS.
...
Lots of web pages have really frequently firing timers that keep the
profiler thread spinning if we require a period of JS inactivity
before suspending the profiler. While it's possible to throttle it by
increasing the sleep delay and adjusting the duration of the required
inactive period, it seemed much simpler to just stop it immediately on
exiting JS.
Stopping the profiler this way effectively turned off two optimization
heuristics: 1) eager optimization (it's reset on waking up the
profiler and now the profiler wakes up much more frequently) and 2)
optimization throttling based on JS to non-JS state ratio (the ratio
is now 100%). I removed these two heuristics and found no performance
regressions so far.
R=ager@chromium.org
BUG=crbug.com/77625
TEST=none
Review URL: http://codereview.chromium.org/7274024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 14:56:08 +00:00
sgjesse@chromium.org
3878096ed8
Fix compilation of all combinations of disassembler=on/off and objectprint=on/off
...
R=jkummerow@chromium.org
BUG=v8:1473
TEST=none
Review URL: http://codereview.chromium.org//7269002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:17:02 +00:00
sgjesse@chromium.org
7d2be7c0e0
Support debugger inspection of locals in optimized frames
...
Optimized frames are now handled by the debugger. When discovering optimized frames during stack inspection in the debugger they are "deoptimized" using the normal deoptimization code and the deoptimizer output information is used to provide frame information to the debugger.
Before this change the debugger reported each optimized frame as one frame no matter the number of inlined functuions that might have been called inside of it. Also all locals where reported as undefined. Locals can still be reposted as undefined when their value is not "known" by the optimized frame.
As the structures used to calculate the output frames when deoptimizing are not GC safe the information for the debugger is copied to another structure (DeoptimizedFrameInfo) which is registered with the global deoptimizer data and processed during GC.
R=fschneider@chromium.org
BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized*
Review URL: http://codereview.chromium.org//7230045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:02:00 +00:00
vegorov@chromium.org
9310a8d78f
Fix three GC unsafe places found by gcmole's dead_vars analysis.
...
Review URL: http://codereview.chromium.org/7247013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 12:04:14 +00:00
vitalyr@chromium.org
bbd5889f2c
Trim fast elements tail on significant length decreases.
...
Runtime_RegExpExecMultiple had to be updated because it assumed
setting an array's length to zero still keeps some capacity in the
backing store.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7237004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-23 11:22:21 +00:00
ager@chromium.org
b652d79b10
Shrink dictionaries on deletion if number of elements are less than a
...
quarter of the capacity.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/7190032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-23 09:30:39 +00:00
karlklose@chromium.org
c5a24f64c4
Fix wrong bounds check on arguments object.
...
TEST=added to test/mjsunit/arguments.js
Review URL: http://codereview.chromium.org/7217005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 09:27:38 +00:00
jkummerow@chromium.org
b789cb8c94
Crankshaft support for polymorphic array handling
...
Review URL: http://codereview.chromium.org/7170012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 10:19:00 +00:00
karlklose@chromium.org
f4e4bc43a8
Merge arguments branch to bleeding edge (second try).
...
Review URL: http://codereview.chromium.org/7187007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-16 14:12:58 +00:00
jkummerow@chromium.org
a5ef18b9de
Fix building in release mode with disassembler=on
...
BUG=v8:1473
Review URL: http://codereview.chromium.org/7147014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-16 07:58:47 +00:00
karlklose@chromium.org
cc19d1e278
Revert "Merge arguments branch to bleeding merge."
...
This reverts commit ceb31498b9d69edca3260820fb4047045891ce6d.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/7172030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-16 06:37:49 +00:00
karlklose@chromium.org
6cfeb2d400
Merge arguments branch to bleeding merge.
...
Review URL: http://codereview.chromium.org/7167006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 15:09:28 +00:00