Commit Graph

8557 Commits

Author SHA1 Message Date
rossberg@chromium.org
2e76922c79 Object.observe: Use [[DefineOwnProperty]] to create properties of changeRecord.
Note: The test here requires https://codereview.chromium.org/11364237/ to land in order to pass because Object.freeze calls Object.getOwnPropertyNames().

BUG=v8:2411

Review URL: https://codereview.chromium.org/11377171
Patch from Rafael Weinstein <rafaelw@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-16 09:35:27 +00:00
rossberg@chromium.org
af824eab8f When using an Object as a set in Object.getOwnPropertyNames, null out the proto
Also apply the same fix elsewhere in v8natives.js

BUG=v8:2410

Review URL: https://codereview.chromium.org/11364237
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-16 09:32:39 +00:00
jkummerow@chromium.org
d9ba8ed8a1 Fix register confusion in non-VFP3 BinaryOpStubs on ARM
Review URL: https://codereview.chromium.org/11413014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-16 08:54:01 +00:00
svenpanne@chromium.org
d5f589808d Removed a bunch of GetExistingThreadLocal calls by threading the Isolate.
For Octane, the number of calls go down from 7341629 to 1947880, i.e. they are
reduced by more than 73%. TLS access is not especially cheap, so this exercise
seems worthwhile.

Review URL: https://codereview.chromium.org/11412007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-16 08:38:11 +00:00
mstarzinger@chromium.org
5dec1423a4 Implement progress bar for large objects.
This implements incremental scanning of large objects using a progress
bar in the page header of such objects. Note that this requires forward
white to gray transitions in the write barrier and hence is disabled by
default for now.

R=ulan@chromium.org,hpayer@chromium.org

Review URL: https://codereview.chromium.org/11362246

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 17:57:40 +00:00
verwaest@chromium.org
4ce6de208d Return the length as smi.
Review URL: https://chromiumcodereview.appspot.com/11419011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 16:16:09 +00:00
mvstanton@chromium.org
1d966af2e9 Fix assert failure in array slice
R=verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/11412005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 15:41:12 +00:00
verwaest@chromium.org
97c54506c5 Fix shifting from holey arrays.
Review URL: https://chromiumcodereview.appspot.com/11417007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 15:27:06 +00:00
verwaest@chromium.org
8535c6484d Set length only after retrieving the element succeeded
Review URL: https://chromiumcodereview.appspot.com/11417006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 14:30:01 +00:00
verwaest@chromium.org
111630350c Heap explorer: Show representation of strings.
* src/profile-generator.cc (V8HeapExplorer::GetSystemEntryName): For
  maps of strings, return a name that encodes the representation
  strategy used for the strings.
  (V8HeapExplorer::ExtractReferences): For strings, visit the maps as
  well, so that the user can see what representation is used for their
  strings.

See http://wingolog.org/pub/string-representations.png for an example of what it looks like.

BUG=

Review URL: https://chromiumcodereview.appspot.com/11344021
Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 13:35:05 +00:00
yangguo@chromium.org
3699616609 Rename SeqAsciiString
This is a straight rename:

NewRawAsciiString -> NewRawOneByteString
SeqAscii -> SeqOneByte

SeqOneByteString cannot yet take non-ascii data.

R=yangguo@chromium.org,
BUG=

Review URL: https://chromiumcodereview.appspot.com/11411005
Patch from Dan Carney <dcarney@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 13:31:27 +00:00
ulan@chromium.org
5df210bd35 MIPS: Add rotate-right instruction to hydrogen and use it instead of bitwise operations of the form ((x >>> i) | (x << (32 - i))).
Port r12855 (be965042)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11293140
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 12:41:35 +00:00
verwaest@chromium.org
a08194c83a Support all fast elements kinds in the major array operations.
Currently missing support for unshift.

BUG=

Review URL: https://chromiumcodereview.appspot.com/11377132

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 12:19:14 +00:00
rossberg@chromium.org
4fb992a872 Object.observe: Handle oldValue for elements with accessors properly.
Extended ElementAccessor interface to allow querying PropertyType and
AccessorPair. Also added respective functionality to JSObject.

R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/11358234

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 11:31:40 +00:00
yangguo@chromium.org
7fc1751821 Make kAsciiDataHintTag have correct semantics for all both 1 and 2 byte string types.
BUG=

Review URL: https://chromiumcodereview.appspot.com/11360251
Patch from Dan Carney <dcarney@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 10:29:11 +00:00
danno@chromium.org
4d23256cf9 MIPS: Add code again to allow reclaiming old unexecuted functions.
Port r12898 (69ff6e50)

Original commit message:
When code objects in the heap for FUNCTIONs and OPTIMIZED_FUNCTIONs are marked by the GC, their prologue is patched with a call to a stub that removes the patch. This allows the collector to quickly identify code objects that haven't been executed since the last full collection (they are the ones that sill contain the patch). The functionality is currently disabled, but can be activated by specifying the "--age-code".

BUG=
TEST=

Review URL: https://codereview.chromium.org/11358252
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 10:12:28 +00:00
mstarzinger@chromium.org
d6a31725b9 Add missing initialization for low survival rate period.
R=verwaest@chromium.org
BUG=v8:2403

Review URL: https://codereview.chromium.org/11419002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 09:25:40 +00:00
yangguo@chromium.org
2333f53128 Fix clang build after r12956
That change added a test which called the handlified version of JSObject::SetElement and didn't check the return value, but that method has a MUST_USE_RESULT annotation. This change removes the annotation for consistency with other handlified static methods (like SetProperty).

Review URL: https://chromiumcodereview.appspot.com/11359212
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-14 20:03:53 +00:00
rossberg@chromium.org
5e7b796479 Object.observe: Move notification of JSArray length changes to JSArray::SetElementsLength
The previous implementation in Accessors::ArraySetLength failed when array length was set through StoreIC_ArrayLength. But that stub and the accessor both delegate to JSArray::SetElementsLength, so moving the code there allows notifications to be sent in both cases.

Review URL: https://codereview.chromium.org/11275292
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-14 16:51:21 +00:00
jkummerow@chromium.org
1c086d1202 Lattice-based representation inference, powered by left/right specific type feedback for BinaryOps and comparisons
Review URL: https://chromiumcodereview.appspot.com/10837165

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-14 15:59:45 +00:00
verwaest@chromium.org
deae08bd23 Consolidate polymorphic calls due to elements transitions.
Review URL: https://chromiumcodereview.appspot.com/11359104

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-14 12:10:51 +00:00
ulan@chromium.org
a590fff76b Output max incremental step delay in trace_gc_nvp.
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11377134

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-14 11:44:56 +00:00
ulan@chromium.org
74492ab2d4 Emit VMLA for multiply-add on ARM
Review URL: https://chromiumcodereview.appspot.com/11293061
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-14 11:01:18 +00:00
yangguo@chromium.org
4783d3c31b Remove 'type' and 'arguments' properties from Error object.
R=svenpanne@chromium.org
BUG=v8:2397

Review URL: https://chromiumcodereview.appspot.com/11358214

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12956 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-14 09:14:47 +00:00
svenpanne@chromium.org
8a210a78c6 Unbreak MIPS part a bit.
Review URL: https://codereview.chromium.org/11293250

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-14 07:33:16 +00:00
danno@chromium.org
77c97eefbb Add atomics implementation for ThreadSanitizer v2 (https://sites.google.com/a/chromium.org/dev/developers/testing/threadsanitizer-tsan-v2)
BUG=128314

Review URL: https://chromiumcodereview.appspot.com/10965035
Patch from Alexander Potapenko <glider@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 21:38:00 +00:00
peter.rybin@gmail.com
bb53dc6890 Issue 2368: LiveEdit crashes when new object/array literal is added
Review URL: https://codereview.chromium.org/11191039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 19:13:27 +00:00
rossberg@chromium.org
92db2105e4 Object.deliverChangeRecords should remove the observer from activeObservers
To preserve ordering guarantees during end-of-turn delivery, Object.deliverChangeRecords needs to remove the delivered-to observer from the list of active observers.

The added test demonstrates this behavior.

Review URL: https://codereview.chromium.org/11410046
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 15:53:28 +00:00
rossberg@chromium.org
36c3d01589 Object.unobserve(obj, callback) now throws a TypeError when callback is not a function.
Review URL: https://codereview.chromium.org/11293248
Patch from Rafael Weinstein <rafaelw@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 15:50:59 +00:00
rossberg@chromium.org
dcb6abd460 Restructure JSObject::SetElement for performance.
Wins back ~1500 points on Octane/Gameboy that we lost with
https://codereview.chromium.org/11365111 (CL 12900), presumably
by lowering register pressure and/or handlification overhead.
Hopefully benefits other regressions as well.

R=verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/11275283

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 15:47:46 +00:00
yangguo@chromium.org
45007d96f4 Prepare push to trunk. Now working on version 3.15.4.
R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11369213

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 13:54:49 +00:00
svenpanne@chromium.org
673924413f Re-land rev. 12849 and 12868 (Heavy cleanup of the external pointer API + related fix).
Review URL: https://codereview.chromium.org/11365224

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 12:27:03 +00:00
mmassi@chromium.org
ce682a2489 Allow property indexes to refer to slots inside the object header.
BUG=

Review URL: https://chromiumcodereview.appspot.com/11365221

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 11:07:04 +00:00
mvstanton@chromium.org
50bd6e9092 Revert change r12912 (http://code.google.com/p/v8/source/detail?r=12912) due to x64 perf issue
R=verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/11312206

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 10:53:34 +00:00
yangguo@chromium.org
827f8919f4 Reverting r12937.
R=verwaest@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11293246

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 10:36:20 +00:00
yangguo@chromium.org
578a2c74bd Fix details in message formatting.
BUG=

Review URL: https://chromiumcodereview.appspot.com/11360220

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 09:01:43 +00:00
yangguo@chromium.org
c6b35d0310 Correctly handle uncaught exception objects.
R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11365200

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 17:32:30 +00:00
ulan@chromium.org
acd3013d9d Speed up native error check.
BUG=148757
TEST=largeObj test from the bug is 2x faster.
R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11377100

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 15:33:31 +00:00
yangguo@chromium.org
ce884e13e3 Make kAsciiDataHintTag have correct semantics for all both 1 and 2 byte string types.
BUG=

Review URL: https://chromiumcodereview.appspot.com/11361171

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 14:57:59 +00:00
yangguo@chromium.org
693ee09cf3 Correctly check for stack overflow even when interrupt is pending.
BUG=v8:214

Review URL: https://chromiumcodereview.appspot.com/11362007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 14:56:25 +00:00
yangguo@chromium.org
4c27298d27 Collect stack trace on stack overflow.
BUG=v8:2394

Review URL: https://chromiumcodereview.appspot.com/11275186

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 14:54:29 +00:00
mvstanton@chromium.org
69846ce69d Prepare push to trunk. Now working on version 3.15.3.
R=danno@chromium.org
BUG=

Review URL: https://codereview.chromium.org/11366195

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 14:43:21 +00:00
svenpanne@chromium.org
073dfc0a6f Fixed Code::FindCodeAgeSequence logic, removing a dead method on the way.
Review URL: https://codereview.chromium.org/11364177

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 13:27:36 +00:00
jkummerow@chromium.org
e8320f4f78 Function::GetScriptOrigin should supply sourceURL when script name is not available.
GetScriptOrigin is used for DevTools instrumentation.

If inspected call-site is inside "eval" then returned script name is "undefined". To fix this problem we can use the "nameOrSourceURL" method of script-wrapper.

This is a re-upload of https://codereview.appspot.com/6811090/ for the purpose of landing.

BUG=159413

Review URL: https://codereview.chromium.org/11312185
Patch from Eugene Klyuchnikov <eustas@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 12:34:18 +00:00
rossberg@chromium.org
92e783bc28 Minor cleanup and optimisation of element methods.
R=verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/11365175

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 11:08:34 +00:00
yangguo@chromium.org
4cca6c6081 Make formatting error message side-effect-free.
BUG=v8:2398

Review URL: https://chromiumcodereview.appspot.com/11359130

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 10:33:20 +00:00
yangguo@chromium.org
ef1b3d3a76 Fix length check in JSON.stringify.
R=verwaest@chromium.org
BUG=160010

Review URL: https://chromiumcodereview.appspot.com/11410031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 10:20:07 +00:00
hpayer@chromium.org
ea9b1306fe Refactoring incremental marking
BUG=

Review URL: https://codereview.chromium.org/11358177

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 10:12:35 +00:00
rossberg@chromium.org
0e7306cc92 Implement Object.getNotifier() and remove Object.notify()
Updated all tests to use getNotifier or actual object mutation instead of notify, and added tests for new behavior of getNotifier.

Review URL: https://codereview.chromium.org/11369154
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 16:14:42 +00:00
svenpanne@chromium.org
237684fa45 Refactoring: Make emit_debug_code flag handling architecture-independent.
Review URL: https://codereview.chromium.org/11312165

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 13:43:48 +00:00