- 13 Mar, 2014 3 commits
-
-
marja@chromium.org authored
This reverts revision 19881. Reason: WebKit build failure (will commit a fixed version shortly). BUG= Review URL: https://codereview.chromium.org/196793013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
- Distinguish between context bound scripts (Script) and context unbound scripts (UnboundScript). - Add ScriptCompiler (which will later contain functions for async compilation). This is a breaking change, in particular, Script::New no longer exists (it is replaced by ScriptCompiler::CompileUnbound). Script::Compile remains as a backwards-compatible shorthand for ScriptCompiler::Compile. Passing CompilerOptions with produce_data_to_cache = true doesn't do anything yet; the only way to generate the data to cache is the old preparsing API. (To be fixed in the next version.) BUG= R=dcarney@chromium.org Review URL: https://codereview.chromium.org/186723005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
This is preparatory work to get rid of UnsafePersistent in blink. The previous version had to be reverted due to timeouts in win32/Debug: https://codereview.chromium.org/197173002/ The timeouts happened because the STL version on that platform contains sanity checking code which opens a 'debug window' in the GUI, patiently waiting for the user to click ok/cancel/somethirdoption. It turns out, the cause for that debug window was totally valid and the test had a use-after-free issue. The 1st patch set is the code as before. The 2nd patch set contains the fix. Related blink changes are here: https://codereview.chromium.org/180363004/ This patch is largely based on https://codereview.chromium.org/175503003/, with some methods added to support the blink change mentioned above. BUG= R=dcarney@chromium.org Review URL: https://codereview.chromium.org/197263002 Patch from Daniel Vogelheim <vogelheim@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Mar, 2014 2 commits
-
-
dslomov@chromium.org authored
and "Win64 fix for r19833." This reverts commits r19833 and r19837 for breaking Windows tests (test-api/PersistentValueMap). TBR=vogelheim@chromium.org,dcarney@chromium.org Review URL: https://codereview.chromium.org/197173002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
This is preparatory work to get rid of UnsafePersistent in blink. Related blink changes are here: https://codereview.chromium.org/180363004/ This patch is largely based on https://codereview.chromium.org/175503003/, with some methods added to support the blink change mentioned above. BUG= R=dcarney@chromium.org, svenpanne@chromium.org Review URL: https://codereview.chromium.org/189463019 Patch from Daniel Vogelheim <vogelheim@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Mar, 2014 1 commit
-
-
rossberg@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/194663003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Mar, 2014 3 commits
-
-
yangguo@chromium.org authored
Contributed by fmeawad@chromium.org R=yangguo@chromium.org Review URL: https://codereview.chromium.org/186163002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/179983002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
Allow Object::InternalFieldCount and Object::GetAlignedPointerFromInternalField to be called from Persistent classes R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/177343002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Mar, 2014 2 commits
-
-
mvstanton@chromium.org authored
Symbols for type cells. We can make more efficient code to check against type cells in the future if we use symbols, guaranteed not to conflict with user code. Currently, the "symbols" are the hole and undefined. Undefined may come in from the outside. BUG= R=verwaest@chromium.org Review URL: https://codereview.chromium.org/181283003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
This feature makes it possible to associate data with a script and get it back when the script is compiled or when an event is handled. It was historically used by Chromium Dev Tools, but not any more. It is not used by node.js. Note: this has nothing to do with the preparse data, despite the confusing name. The preparse data is passed as ScriptData*. Note 2: This is the same as r19616 ( https://codereview.chromium.org/184403002/ ) with a unused variable fix in bootstrapper.cc. R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/185533014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Mar, 2014 1 commit
-
-
verwaest@chromium.org authored
R=danno@chromium.org Review URL: https://codereview.chromium.org/184453003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Feb, 2014 2 commits
-
-
marja@chromium.org authored
This reverts revision 19616. BUG= TBR=marja@chromium.org,svenpanne@chromium.org Review URL: https://codereview.chromium.org/181113008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
This feature makes it possible to associate data with a script and get it back when the script is compiled or when an event is handled. It was historically used by Chromium Dev Tools, but not any more. It is not used by node.js. Note: this has nothing to do with the preparse data, despite the confusing name. The preparse data is passed as ScriptData*. R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/184403002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Feb, 2014 1 commit
-
-
alph@chromium.org authored
LOG=N R=dslomov@chromium.org, yurys@chromium.org Review URL: https://codereview.chromium.org/166383002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Feb, 2014 1 commit
-
-
yangguo@chromium.org authored
R=mstarzinger@chromium.org BUG=328804 LOG=N Review URL: https://codereview.chromium.org/166023003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Feb, 2014 1 commit
-
-
rafaelw@chromium.org authored
This patch generalizes Object.observe callbacks and promise resolution into a FIFO queue called a "microtask queue". It also exposes new V8 API which exposes the microtask queue to the embedder. In particular, it allows the embedder to -schedule a microtask (EnqueueExternalMicrotask) -run the microtask queue (RunMicrotasks) -control whether the microtask queue is run automatically within V8 when the last script exits (SetAutorunMicrotasks). R=dcarney@chromium.org, rossberg@chromium.org, dcarney, rossberg, svenpanne BUG= Review URL: https://codereview.chromium.org/154283002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Feb, 2014 1 commit
-
-
hpayer@chromium.org authored
BUG= R=mstarzinger@chromium.org, mvstanton@chromium.org Review URL: https://codereview.chromium.org/143153008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jan, 2014 1 commit
-
-
jarin@chromium.org authored
version is passing all the existing test + a bunch of new tests (packaged in the change list, too). The patch extends the SlotRef object to describe captured and duplicated objects. Since the SlotRefs are not independent of each other anymore, there is a new SlotRefValueBuilder class that stores the SlotRefs and later materializes the objects from the SlotRefs. Note that unlike the previous implementation of SlotRefs, we now build the SlotRef entries for the entire frame, not just the particular function. This is because duplicate objects might refer to previous captured objects (that might live inside other inlined function's part of the frame). We also need to store the materialized objects between other potential invocations of the same arguments object so that we materialize each captured object at most once. The materialized objects of frames live in the new MaterielizedObjectStore object (contained in Isolate), indexed by the frame's FP address. Each argument materialization (and deoptimization) tries to lookup its captured objects in the store before building new ones. Deoptimization also removes the materialized objects from the store. We also schedule a lazy deopt to be sure that we always get rid of the materialized objects and that the optmized function adopts the materialized objects (instead of happily computing with its captured representations). Concerns: - Is the FP address the right key for a frame? (Note that deoptimizer's representation of frame is different from the argument object materializer's one - it is not easy to find common ground.) - Performance is suboptimal in several places, but a quick local run of benchmarks does not seem to show a perf hit. Examples of possible improvements: smarter generation of SlotRefs (build other functions' SlotRefs only for captured objects and only if necessary), smarter lookup of stored materialized objects. - Ideally, we would like to share the code for argument materialization with deoptimizer's materializer. However, the supporting data structures (mainly the frame descriptor) are quite different in each case, so it looks more like a separate project. Thanks for any feedback. R=danno@chromium.org, mstarzinger@chromium.org LOG=N BUG= Committed: https://code.google.com/p/v8/source/detail?r=18918 Review URL: https://codereview.chromium.org/103243005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Jan, 2014 2 commits
-
-
jarin@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/130803009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jarin@chromium.org authored
mostly to make sure that it is going in the right direction. The current version is passing all the existing test + a bunch of new tests (packaged in the change list, too). The patch extends the SlotRef object to describe captured and duplicated objects. Since the SlotRefs are not independent of each other anymore, there is a new SlotRefValueBuilder class that stores the SlotRefs and later materializes the objects from the SlotRefs. Note that unlike the previous implementation of SlotRefs, we now build the SlotRef entries for the entire frame, not just the particular function. This is because duplicate objects might refer to previous captured objects (that might live inside other inlined function's part of the frame). We also need to store the materialized objects between other potential invocations of the same arguments object so that we materialize each captured object at most once. The materialized objects of frames live in the new MaterielizedObjectStore object (contained in Isolate), indexed by the frame's FP address. Each argument materialization (and deoptimization) tries to lookup its captured objects in the store before building new ones. Deoptimization also removes the materialized objects from the store. We also schedule a lazy deopt to be sure that we always get rid of the materialized objects and that the optmized function adopts the materialized objects (instead of happily computing with its captured representations). Concerns: - Is there a simpler/more correct way to store the already-materialized objects? (At the moment there is a custom root reference to JSArray containing frames' FixedArrays with their captured objects.) - Is the FP address the right key for a frame? (Note that deoptimizer's representation of frame is different from the argument object materializer's one - it is not easy to find common ground.) - Performance is suboptimal in several places, but a quick local run of benchmarks does not seem to show a perf hit. Examples of possible improvements: smarter generation of SlotRefs (build other functions' SlotRefs only for captured objects and only if necessary), smarter lookup of stored materialized objects. - Ideally, we would like to share the code for argument materialization with deoptimizer's materializer. However, the supporting data structures (mainly the frame descriptor) are quite different in each case, so it looks more like a separate project. Thanks for any feedback. R=mstarzinger@chromium.org, danno@chromium.org LOG=N BUG= Review URL: https://codereview.chromium.org/103243005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Jan, 2014 1 commit
-
-
bmeurer@chromium.org authored
Use this for detecting MSVCRT library features instead of V8_CC_MSVC. One use case for this is when compiling with Clang together with the MSVC library. In that case, V8_CC_MSVC will be false, but V8_LIBC_MSVCRT will be true. BUG=82385 LOG=n R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/145593003 Patch from Hans Wennborg <hans@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jan, 2014 1 commit
-
-
dslomov@chromium.org authored
Replaced symbolic names with correct JS name (byte -> int8, unsigned int -> uint32 etc). Using macros to scrap the boilerplate BUG= R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/145133013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jan, 2014 1 commit
-
-
dcarney@chromium.org authored
This patch makes String::WriteUtf8 replace invalid code points (i.e. unmatched surrogates) with the unicode replacement character when REPLACE_INVALID_UTF8 is set. This is done to avoid creating invalid UTF-8 output which can lead to compatibility issues with software requiring valid UTF-8 inputs (e.g. the WebSocket protocol requires valid UTF-8 and terminates connections when invalid UTF-8 is encountered). R=dcarney@chromium.org BUG= Review URL: https://codereview.chromium.org/121173009 Patch from Felix Geisendörfer <haimuiba@gmail.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jan, 2014 1 commit
-
-
svenpanne@chromium.org authored
Removes the embarrassing "static"s, shuffles some code around, doing various cleanups on the way. R=dcarney@chromium.org Review URL: https://codereview.chromium.org/130213009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Jan, 2014 6 commits
-
-
dslomov@chromium.org authored
This adds a fixed array sub-type that will represent a backing store for typed arrays allocated with TypedArray(length) construtor. R=mvstanton@chromium.org, verwaest@chromium.org Review URL: https://codereview.chromium.org/101413006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dslomov@chromium.org authored
This reverts commit r18649 for breaking Linux/nosnap and Win64 tests. TBR=jkummerow@chromium.org Review URL: https://codereview.chromium.org/140793003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dslomov@chromium.org authored
This adds a fixed array sub-type that will represent a backing store for typed arrays allocated with TypedArray(length) construtor. R=mvstanton@chromium.org, verwaest@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=18646 Review URL: https://codereview.chromium.org/101413006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dslomov@chromium.org authored
This reverts commit r18646 for breaking Win32 build. TBR=jkummerow@chromium.org Review URL: https://codereview.chromium.org/132233012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dslomov@chromium.org authored
This adds a fixed array sub-type that will represent a backing store for typed arrays allocated with TypedArray(length) construtor. R=mvstanton@chromium.org, verwaest@chromium.org Review URL: https://codereview.chromium.org/101413006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
ExtensionConfiguration is just a simple container for extension names (in a perfect world we would use vector<string> and range-based for loops), and HandleScopeData was in the totally wrong place. Some additional cleanup on the way, e.g. using the null pattern behind our external API. R=dcarney@chromium.org Review URL: https://codereview.chromium.org/139393002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Jan, 2014 1 commit
-
-
ulan@chromium.org authored
This is done similar to weak embedded objects in optimized code (r17102). The reference from optimized code to a cell is treated weakly in marking visitors if the cell points to a JSObject. After marking we iterate over all cells embedded in optimized code. If a cell is not marked but its value is marked, then we revive the cell by marking it. Otherwise, the cell value is dead, so we mark the code for deoptimization. BUG=v8:2073 TEST=cctest/test-heap/CellsInOptimizedCodeAreWeak LOG=Y R=hpayer@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/117483002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jan, 2014 3 commits
-
-
jochen@chromium.org authored
BUG=none R=mstarzinger@chromium.org, svenpanne@chromium.org LOG=y Review URL: https://codereview.chromium.org/131443008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
This flag will be passed to GC prologue/epilogue callbacks if GC was forced through GC extension. BUG= R=dcarney@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/104023011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
The version taking a Handle should be used instead. It's not used by Chromium and complicates the ongoing lexer work. R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/136413003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18556 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Jan, 2014 1 commit
-
-
svenpanne@chromium.org authored
LOG=y BUG=324225 R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/128233002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Jan, 2014 1 commit
-
-
svenpanne@chromium.org authored
Everything was private, so no object could ever be constructed, which implies that nobody uses it. Furthermore, it contained a TODO and was overly complicated, an #ifdef-less simple pimpl idiom would have been enough. LOG=y R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/128113002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Jan, 2014 1 commit
-
-
svenpanne@chromium.org authored
LOG=y BUG=v8:3073 R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/119983003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jan, 2014 2 commits
-
-
ulan@chromium.org authored
Revert r18451 "Revert r18449 "Reland r18383: More API cleanup." and r18450 "Unbreak build."" since necessary WebKit changes are rolled in Chromium. TBR=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/119753008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ulan@chromium.org authored
because of broken WebKit bots. TBR=svenpanne@chromium.org Review URL: https://codereview.chromium.org/119323006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-