Commit Graph

17506 Commits

Author SHA1 Message Date
rmcilroy@chromium.org
cc532e449b Tests that the GC doesn't mistake non-pointer constant pool entries as pointers.
Adds a test for ConstantPoolArray to ensure that the GC
doesn't mistake non-pointer entries as pointers and try
to modify them during scavenge operations.

Also adds asserts to ConstantPoolArray::set(int, *Object) to
ensure we don't add new-space pointers in constant pool
array.

R=hpayer@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=22608

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-28 10:04:36 +00:00
jochen@chromium.org
d9075bf07e Reland r22460 - "Bootstrapper::DetachGlobal also need to unset g..."
| DetachGlobal detaches original context of a global proxy object.
|
| Before this patch, the constructor JSFunction still carried a
| reference to the old context after |Bootstrapper::DetachGlobal|
| call.
| This patch removes the reference by setting the constructor
| null.
|
| Review URL: https://codereview.chromium.org/397953009

TEST=http/tests/security/isolatedWorld w/ --enable-leak-detection
LOG=N
BUG=364377
R=dcarney@chromium.org

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

Patch from Kouhei Ueno <kouhei@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-28 09:15:10 +00:00
hpayer@chromium.org
e52908e428 Added histogram to track distribution of requested idle notifications.
BUG=397026
LOG=n
R=rmcilroy@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-28 09:13:33 +00:00
machenbach@chromium.org
3db23c80c4 [Auto-roll] Bump up version to 3.28.42.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-26 00:34:19 +00:00
akos.palfi@imgtec.com
d3da21b594 MIPS: Restructure the IC / Handler compilers
Port r22622 (319e3252)

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 21:54:12 +00:00
machenbach@chromium.org
85cee45ef2 [Auto-roll] Bump up version to 3.28.41.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 20:04:11 +00:00
verwaest@chromium.org
4a956ab1c2 Change Has* and Get*Attributes to return Maybe<*>, indicating possible exceptions.
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 18:32:11 +00:00
verwaest@chromium.org
3c873c4305 Restructure the IC / Handler compilers
BUG=
R=ishell@chromium.org, mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 17:50:53 +00:00
machenbach@chromium.org
553e069f3b [Auto-roll] Bump up version to 3.28.40.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 15:34:10 +00:00
ishell@chromium.org
9444388f1b Kraken recover after r20312.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 13:00:06 +00:00
machenbach@chromium.org
21be95fcf7 [Auto-roll] Bump up version to 3.28.39.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 12:34:13 +00:00
verwaest@chromium.org
3586c074d4 Smi arrays are only guaranteed to be initialized in non-holey case
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 12:27:55 +00:00
verwaest@chromium.org
60df9dabad In GrowMode, force the value to the right representation to avoid deopts between storing the length and storing the value.
BUG=16459193
LOG=n
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 11:48:25 +00:00
ernstm@chromium.org
d556278ff3 Always trace garbage collection events in GCTracer.
- always trace events in GCTracer, but only print stats when the command
  line flag is set.
- required to collect statistis that will be used to schedue garbage
  collection.
- we need to watch the perf bots after this lands, as it could regress
  performance.

R=hpayer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 07:32:28 +00:00
machenbach@chromium.org
47d6f32b3c [Auto-roll] Bump up version to 3.28.37.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 19:05:05 +00:00
machenbach@chromium.org
110a5fdae4 Revert "Tests that the GC doesn't mistake non-pointer constant pool entries as pointers."
This reverts commit r22608 for breaking win and arm64, ConstantPoolExtended and ConstantPoolSmall.

BUG=
TBR=rmcilroy@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 18:59:19 +00:00
rmcilroy@chromium.org
59ee2de97c Tests that the GC doesn't mistake non-pointer constant pool entries as pointers.
Adds a test for ConstantPoolArray to ensure that the GC
doesn't mistake non-pointer entries as pointers and try
to modify them during scavenge operations.

Also adds asserts to ConstantPoolArray::set(int, *Object) to
ensure we don't add new-space pointers in constant pool
array.

R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 18:13:16 +00:00
verwaest@chromium.org
ffd668f94e Use result of SetOwnPropertyIgnoreAttributes in accessors
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 17:33:34 +00:00
verwaest@chromium.org
77a37e44f6 Fix issue with setters and their holders in accessors.cc
BUG=3462
LOG=Y
R=verwaest@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 16:42:54 +00:00
ernstm@chromium.org
fc8a3bee03 Add event statistics to GCTracer.
- Add method to GCTracer to compute mean and max of the last few
  Scavenger, Mark Compactor and Incremental Marking events.

R=hpayer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 15:23:06 +00:00
jochen@chromium.org
b6182bd798 Add a histogram timer around low memory notifications from API
BUG=397026
R=hpayer@chromium.org, ernstm@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 14:41:27 +00:00
yangguo@chromium.org
d409898d6e Stage for-of
R=rossberg@chromium.org
BUG=

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 13:47:47 +00:00
yangguo@chromium.org
029b8a2379 For-of on null or undefined is an error
The latest ES6 draft changed the behavior of for-of on null / undefined,
which for once is a simplification.

R=rossberg@chromium.org
BUG=

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 13:40:08 +00:00
danno@chromium.org
b5a5148260 Revert 22595: "Keep new arrays allocated with 'new Array(N)' in fast mode"
Due to failures in mjsunit/array-functions-prototype-misc

TBR=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 13:38:05 +00:00
ernstm@chromium.org
70e2a040b3 Move GCTracer to separate files.
- No functional changes.

R=hpayer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 13:06:38 +00:00
danno@chromium.org
29338fa16a SKIP migration tests to improve unit test time (2x)
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 12:39:01 +00:00
rmcilroy@chromium.org
7cd5dbb9fa Revert r22597 (which should have been called: "Tests that the GC doesn't mistake non-pointer constant pool entries as poitners.")
TBR=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 12:30:53 +00:00
rmcilroy@chromium.org
48f44b65ee Use heap iterator in store buffer when page was swept precisely.
BUG=
R=rmcilroy@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=22592

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 12:12:44 +00:00
yangguo@chromium.org
2811213380 Flag for serialization when compiling code stubs if --serialize-toplevel.
R=mvstanton@chromium.org
BUG=v8:3465
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 12:11:30 +00:00
danno@chromium.org
ac89b17813 Keep new arrays allocated with 'new Array(N)' in fast mode
Also explicit length setting with a.length = N should remain in fast mode.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 12:08:23 +00:00
verwaest@chromium.org
37df96f9b1 Introduce NonJSProxyHolder returning Handle<JSObject> and return Handle<JSReceiver> for GetHolder
BUG=
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 11:33:46 +00:00
ernstm@chromium.org
9523e0acf4 re-land: Track history of events in GCTracer.
- track incremental marking stats directly on GCTracer.
- add simple ring buffer class.
- track last 10 scavenges and mark-compacts in ring buffers on GCTracer.
- various clean-ups.

This is a re-land of https://codereview.chromium.org/391413006/ with
 - int instead of size_t in ring buffer unit test.
 - git cl format

R=hpayer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 11:16:01 +00:00
hpayer@chromium.org
a5b923eca9 Use heap iterator in store buffer when page was swept precisely.
BUG=
R=rmcilroy@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 10:45:37 +00:00
yangguo@chromium.org
63fb538128 Introduce more debug events for promises.
BUG=v8:3093
LOG=Y
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 10:43:41 +00:00
machenbach@chromium.org
55d8d2f099 Skip test on mips.
PASS/FAIL is not enough as the test result is CRASH.

R=yangguo@chromium.org
TBR=yangguo@chromium.org
BUG=v8:3457
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 10:04:14 +00:00
verwaest@chromium.org
b6f61b14dc Extend the interceptor setter ASSERT to support the JSGlobalProxy case.
BUG=v8:3463
LOG=n
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 09:31:45 +00:00
machenbach@chromium.org
4c345d38bd Partially revert "Unflake and speedup JsNative*Sample cpu profile tests"
This reverts the test expectations of commit r22345. Several cpu profiler flakes were happening lately.

BUG=v8:2999
LOG=n
R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 09:26:03 +00:00
verwaest@chromium.org
f6c6f15e6a X87: Always use the LoadStubCompiler for Load handlers, also for keyedload handlers
port r22551.

original commit message:
  Always use the LoadStubCompiler for Load handlers, also for keyedload handlers

BUG=
R=verwaest@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 09:13:04 +00:00
verwaest@chromium.org
24c2a018f6 X87: Only to the relevant checks in LoadFunctionPrototype
port r22550.

original commit message:
  Only to the relevant checks in LoadFunctionPrototype

BUG=
R=verwaest@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 09:12:34 +00:00
verwaest@chromium.org
f135cfa263 X87: Move function prototype handling into a special handler rather than IC
port r22526.

original commit message:
  Move function prototype handling into a special handler rather than IC

  Adjust hydrogen handling of function.prototype to be based on map feedback.
  Handle non-instance prototype loading using an IC rather than in the hydrogen
  instruction. In the future, remove the special instruction and replace by multiple
  hydrogen instructions.

BUG=
R=verwaest@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 09:11:59 +00:00
jochen@chromium.org
cb8105e223 Move gc notifications from V8 to Isolate and make idle hint mandatory
Embedders should use e.g. isolate->IdleNotification(1000) instead
of v8::V8::IdleNotification()

BUG=397026
R=hpayer@chromium.org, ernstm@chromium.org
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 08:28:02 +00:00
yangguo@chromium.org
464d45fc37 Add and move DisallowHeapAllocation scope.
The move is necessary since Heap::ReserveSpace called from
DeserializePartial may allocate.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 08:27:06 +00:00
machenbach@chromium.org
7fa03f8776 Ignore test on mips.
R=yangguo@chromium.org
TBR=yangguo@chromium.org
BUG=v8:3457
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 08:25:22 +00:00
machenbach@chromium.org
c218c20e54 Fix automatic tagging.
BUG=
TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 07:36:25 +00:00
machenbach@chromium.org
3c231fb40c [Auto-roll] Bump up version to 3.28.36.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 07:28:52 +00:00
verwaest@chromium.org
6798779031 Fix ArrayLengthSetter to not throw on non-extensible receivers.
BUG=v8:3460
LOG=n
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 20:27:32 +00:00
verwaest@chromium.org
45824023a1 The accessors should get the value from the holder and not from this.
These are all data properties and if they get invoked it means that
they should just return the value of the property from the holder.

BUG=v8:3461
LOG=Y
R=verwaest@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 20:11:33 +00:00
machenbach@chromium.org
0151837e98 Whitespace change to trigger bots.
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 18:58:43 +00:00
neis@chromium.org
61e1994f83 Minor clarifications and simplifications as well as additional checks.
R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 17:17:48 +00:00
machenbach@chromium.org
ea1be613dc Revert "Track history of events in GCTracer."
This reverts commit 22567 for breaking win64 compile.

BUG=
TBR=ernstm@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 16:12:02 +00:00