- 06 May, 2014 1 commit
-
-
bmeurer@chromium.org authored
- Canonicalize HCheckMapValue with constant map to HCheckMaps, and get rid of the special treatment during check elimination. - Track only stable object maps for HConstants and add CHECK()s to verify state during code generation. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/263923004 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 May, 2014 20 commits
-
-
adamk@chromium.org authored
After r21126, Object.observe no longer allows observing the global proxy object. This patch replaces codepaths that used to handle that case with asserts showing that no such observation happens. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/261773006 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
adamk@chromium.org authored
Previously, the hash was stored on the underlying global object, since it was stored in the hidden property table. This patch moves to an implementation modeled on JSProxy, adding a new 'hash' field to JSGlobalProxy. This allows storing the global proxy in a Map, Set, WeakMap, or WeakSet and accessing it even after the proxy has been attached to a new global, which is Firefox's current behavior and was the consensus of a recent thread on public-script-coord: http://lists.w3.org/Archives/Public/public-script-coord/2014AprJun/0012.html R=verwaest@chromium.org Review URL: https://codereview.chromium.org/254433002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
hpayer@chromium.org authored
Revert "Limit old space size in test which require a large new space." This reverts commit r21103. Revert "Remove max space limits in tests." This reverts commit r21104. BUG= R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/263103006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
hpayer@chromium.org authored
Plus, cleanup of the space - generation mess. More to do there... BUG= R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/268073004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
machenbach@chromium.org authored
The old temporary branch is not needed anymore. All scripts create a different branch after creating the temporary branch. This also fixes logging subprocesses and logs a warning to track down script failures due to wrong branches. BUG= R=jarin@chromium.org Review URL: https://codereview.chromium.org/266083003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
Removing it seems to be a clear win on mobile: producing symbol data makes cold parsing 20-30% slower, and having symbol data doesn't make warm parsing any faster. Notes: - V8 used to produce symbol data, but because of a bug, it was never used until recently. (See fix https://codereview.chromium.org/172753002 which takes the symbol data into use again.) - On desktop, warm parsing is faster if we have symbol data, and producing it during cold parsing doesn't make parsing substantially slower. However, this doesn't seem to be the case on mobile. - The preparse data (cached data) will now contain only the positions of the lazy functions. BUG= R=dcarney@chromium.org Review URL: https://codereview.chromium.org/261273003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
R=yangguo@chromium.org BUG=v8:3289 LOG=N Review URL: https://codereview.chromium.org/264973014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jochen@chromium.org authored
TBR=ishell@chromium.org BUG=none LOG=n Review URL: https://codereview.chromium.org/266823004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jochen@chromium.org authored
BUG=v8:3308 LOG=n TBR=yurys@chromium.org Review URL: https://codereview.chromium.org/268093002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jochen@chromium.org authored
Relocate suspended generator activations when enabling debug mode BUG=v8:3289 LOG=N R=yangguo@chromium.org Review URL: https://codereview.chromium.org/262193003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
R=yangguo@chromium.org BUG=v8:3289 LOG=N Review URL: https://codereview.chromium.org/260423002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jochen@chromium.org authored
Currently, the gn support is incomplete and only works from within a chromium checkout. See https://code.google.com/p/chromium/wiki/gn for details We move the BUILD.gn file to v8 nevertheless to make renaming files easier, as the chromium CQ already now checks the gn build. BUG=none R=brettw@chromium.org, machenbach@chromium.org LOG=y Review URL: https://codereview.chromium.org/259233002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Instead of adding code dependencies on stable during graph creation, we now add them during code generation for those HCheckMaps that survived dead code elimination. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/264973013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ishell@chromium.org authored
R=verwaest@chromium.org Review URL: https://codereview.chromium.org/260803002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
It is only used internally at a single place. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/265243004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
This is a left-over after r20683 BUG=None LOG=N R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/266983003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
There is no point doing it lazily, since compiling and executing the tiniest piece of code triggers lazy init. Also removed some dead code. R=ulan@chromium.org Review URL: https://codereview.chromium.org/265593004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
machenbach@chromium.org authored
This reverts commit r21130, a faulty automated commit. BUG= TBR=jkummerow@chromium.org Review URL: https://codereview.chromium.org/263083007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
- Move IsMapAccess() to HObjectAccess. - Collect the actual objects instead of HStoreNamedFields in effects, and also consider HTransitionElementsKind. - Fix ownership of HCheckMaps::maps() and HLoadNamedField::maps(). - Avoid heavy copying of the same map sets all the time during check elimination, and do something useful with the memory instead by slightly bumping the maximum number of tracked objects. - Slightly optimize UniqueSet::Contains(). R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/264693011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
machenbach@chromium.org authored
Introduce a microtask suppression scope and move microtask methods to isolate (Chromium issue 369503). Re-enable Object.observe and add enforcement for security invariants. Move cache line size calculation directly into CPU::FlushICache (Chromium issue 359977). Generation of our home-grown memmove doesn't depend on serializer state anymore (Chromium issue 359977). Fix |RunMicrotasks()| leaking reference to the last context being run on. Object.defineProperty shouldn't be a hint that we're constructing a dictionary (Chromium issue 362870). Performance and stability improvements on all platforms. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 May, 2014 18 commits
-
-
adamk@chromium.org authored
Due to overlapping names of natives and runtime functions, the wrong context was used for Notifier.prototype.performChange. The leak test has been augmented to properly cover the leaky case, and the test now passes. Also tightened up type checks in runtime.cc and removed Object.observe functions from knownIssues in fuzz-natives-part2.js. R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/264793015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jochen@chromium.org authored
BUG=369503 R=adamk@chromium.org LOG=y TEST=cctest/test-api/SetAutorunMicrotasks Review URL: https://codereview.chromium.org/263933002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rafaelw@chromium.org authored
Build cleanup following r21126. Marking Native* methods in object-observe.js as knownProblems in fuzz-natives TBR=verwaest Review URL: https://codereview.chromium.org/265883009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rafaelw@chromium.org authored
The Object.observe API may construct internal structures as a result of API calls. These structures can persist as long as an object that was once observed persists. This patch ensures that these structures are created in the correct context so as to avoid leaking contexts R=verwaest@chromium.org, dcarney BUG= Review URL: https://codereview.chromium.org/263833007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rafaelw@chromium.org authored
TBR=verwaest Review URL: https://codereview.chromium.org/262823008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rafaelw@chromium.org authored
This patch reverts r21062 which disabled Object.observe and the relevant tests. It also adds enforcement for the following three invariants: 1) No observer may receive a change record describing changes to an object which is in different security origin (context have differing security tokens) 2) No observer may receive a change record whose context's security token is different from that of the object described by the change. 3) Object.getNotifier will return null if the caller and the provided object are in differing security origins Further, it ensures that the global object can never be observed nor a notifier retrieved for it. Tests are included. R=verwaest@chromium.org, rossberg LOG=Y Review URL: https://codereview.chromium.org/265503002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ishell@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/269743002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mvstanton@chromium.org authored
Disabling test until bug is fixed. R=svenpanne@chromium.org BUG=v8:3303 LOG=N Review URL: https://codereview.chromium.org/263893003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
This disentagles the initialization/dependency mess quite a bit and makes things vastly simpler. If the 'mrs' on every flush is too expensive (which it is hopefully not), the cache line sizes will have to be instance variables of the CPU class and FlushICache will have to be a member function. This would involve some more or less tricky refactorings, which we shouldn't do until we are *really* forced to do. BUG=359977 LOG=y R=rodolph.perfetta@gmail.com Review URL: https://codereview.chromium.org/269543016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ishell@chromium.org authored
BUG=chromium:369450 LOG=N R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/264973008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ishell@chromium.org authored
Map::Normalize() introduced as single entry point for map normalization and Map::NotifyLeafMapLayoutChange() made private. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/263663002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
The serializer state has to be per-Isolate, but at the point where we generate our memmoves we don't really have an Isolate. Furthermore, there was no fundamental reason why we shouldn't use our home-grown memmove during mksnapshot time. Perhaps we can totally remove our own memmove nowadays, but this would be a separate CL. BUG=359977 LOG=y R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/261903002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/267803005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Basically we should not check for map deprecation during code selection, because that may run on the concurrent compiler thread. So the fix is to move this logic to the code generation phase instead, which is always run on the main thread. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/263803005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
haraken@chromium.org authored
RunMicrotasks() executes pending tasks and swaps the old array with a new array. However, the new array contains the reference to the current context as its creation context. This prevents the context from gc-ed until RunMicrotasks() is executed in the different context. BUG=crbug.com/367016 LOG=y R=rafaelw@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/250883002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/256303007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
BUG=362870 LOG=y R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/261583004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
In HCheckMaps::HandleSideEffectsDominator() we try to remove redundant HCheckMaps instructions that are dominated by an HStoreNamedField instruction with a transition. This is just a special case of the check elimination and therefore obsolete (it also gives some nice speedup since GVN just got cheaper). R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/261003002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Apr, 2014 1 commit
-
-
plind44@gmail.com authored
Port r21093 (21e3836) Original commit message: Patching will occur only when custom feedback needs to be gathered (future CLs). Now rebased on https://codereview.chromium.org/254623002/, which moves the type feedback vector to the SharedFunctionInfo. BUG= R=plind44@gmail.com Review URL: https://codereview.chromium.org/260753004 Patch from Balazs Kilvady <kilvadyb@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-