- 10 Mar, 2017 1 commit
-
-
Sathya Gunasekaran authored
This fixes the catch predictions for the following builtins -- AsyncFunctionAwaitCaught AsyncFunctionAwaitUncaught PromiseResolveClosure ResolvePromise PromiseResolve Added tests for each. Added whitelist for builtins behind a flag. BUG=chromium:691875 Change-Id: I816cafdb69f0c9f1eefc440a0a44c36713d0b7dc Reviewed-on: https://chromium-review.googlesource.com/450894 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#43725}
-
- 09 Mar, 2017 1 commit
-
-
Camillo Bruni authored
Chrome no longer calls v8::Isolate::Dispose on shutdown, essentially preventing the use of V8 stats within chrome/content_shell. This CL adds a basic hook to the api that is then used to only print the stats. Chrome change: https://codereview.chromium.org/2693353002 Change-Id: I1481c14afe611e9c08ae67c815201a45940daa57 Reviewed-on: https://chromium-review.googlesource.com/452338Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#43706}
-
- 01 Mar, 2017 2 commits
-
-
bmeurer authored
Revert of [wasm] Initial signal handler (patchset #56 id:1090001 of https://codereview.chromium.org/2371833007/ ) Reason for revert: Breaks tree, i.e. https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN/builds/18928/steps/Check/logs/grow-memory Original issue's description: > [wasm] Initial signal handler > > This is basically the minimum viable signal handler for Wasm bounds checks. > It includes the TLS check and the fine grained instructions checks. These > two checks provide most of the safety for the signal handler. Future CLs will > add code range and data range checks for more robustness. > > The trap handling code and data structures are all in src/trap-handler, with > the code that actually runs in the signal handler confined to > src/trap-handler/signal-handler.cc. > > This changes adds a new V8 API that the embedder should call from a signal > handler that will give V8 the chance to handle the fault first. For hosts that > do not want to implement their own signal handler, we include the option to > install a simple one. This simple handler is also used for the tests. > > When a Wasm module is instantiated, information about each function is passed > to the trap handler, which is used to classify faults. These are removed during > the instance finalizer. > > Several future enhancements are planned before turning this on by default. > Obviously, the additional checks will be added to MaybeHandleFault. We are > also planning to add a two-level CodeObjectData table that is grouped by > isolates to make cleanup easier and also reduce potential for contending on > a single data structure. > > BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5277 > > Review-Url: https://codereview.chromium.org/2371833007 > Cr-Commit-Position: refs/heads/master@{#43523} > Committed: https://chromium.googlesource.com/v8/v8/+/a5af7fe9ee388a636675f4a6872b1d34fa7d1a7a TBR=ahaas@chromium.org,bradnelson@google.com,hpayer@chromium.org,jochen@chromium.org,mark@chromium.org,mseaborn@chromium.org,titzer@chromium.org,eholk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5277 Review-Url: https://codereview.chromium.org/2723133003 Cr-Commit-Position: refs/heads/master@{#43525}
-
eholk authored
This is basically the minimum viable signal handler for Wasm bounds checks. It includes the TLS check and the fine grained instructions checks. These two checks provide most of the safety for the signal handler. Future CLs will add code range and data range checks for more robustness. The trap handling code and data structures are all in src/trap-handler, with the code that actually runs in the signal handler confined to src/trap-handler/signal-handler.cc. This changes adds a new V8 API that the embedder should call from a signal handler that will give V8 the chance to handle the fault first. For hosts that do not want to implement their own signal handler, we include the option to install a simple one. This simple handler is also used for the tests. When a Wasm module is instantiated, information about each function is passed to the trap handler, which is used to classify faults. These are removed during the instance finalizer. Several future enhancements are planned before turning this on by default. Obviously, the additional checks will be added to MaybeHandleFault. We are also planning to add a two-level CodeObjectData table that is grouped by isolates to make cleanup easier and also reduce potential for contending on a single data structure. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5277 Review-Url: https://codereview.chromium.org/2371833007 Cr-Commit-Position: refs/heads/master@{#43523}
-
- 23 Feb, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5294 Change-Id: If45f25aae8de526027b7851cb4efe0ccf4a7c4b1 Reviewed-on: https://chromium-review.googlesource.com/444226 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43388}
-
- 21 Feb, 2017 1 commit
-
-
mtrofin authored
Native resources allocated by v8, as internal implementation detail, and held by a Foreign object, must be released when the Isolate is torn down. Example: wasm::WasmModule allocated by wasm compile, and held throughout the lifetime of the WebAssembly.Module object. This change: - Extends Managed<CppType> with a mechanism for doing just that - Separates the role of Managed<CppType> to be strictly an owner of the lifetime of the native resource. For cases where that's not desirable, we can polymorphically use Foregin. - moves managed.h out of wasm, since it's not wasm-specific. BUG=680065 Review-Url: https://codereview.chromium.org/2676513008 Cr-Commit-Position: refs/heads/master@{#43350}
-
- 13 Feb, 2017 2 commits
-
-
bmeurer authored
We cannot skip the @@hasInstance lookup in instanceof depending on a global protector cell, as the lookup of the property is observable via proxies or accessors. So remove the global protector and properly implement CSA::InstanceOf via GetPropertyStub, with an appropriate fast-path for Function.prototype[@@hasInstance] where we call the builtin code object directly if the function matches, skipping all the checks from the call sequence, and also avoid the redundant ToBoolean conversion on the result. R=yangguo@chromium.org TBR=ulan@chromium.org BUG=v8:5958 Review-Url: https://codereview.chromium.org/2684033012 Cr-Commit-Position: refs/heads/master@{#43137}
-
gsathya authored
Use private symbols to mark default promise handler, instead of calling out to default handlers defined in JS. We check for this symbol in PromiseHandle and perform the appropriate behavior as the default handlers. Catch prediction logic is updated to account for a symbol. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2695593002 Cr-Commit-Position: refs/heads/master@{#43135}
-
- 10 Feb, 2017 3 commits
-
-
mlippautz authored
BUG= Review-Url: https://codereview.chromium.org/2684233004 Cr-Commit-Position: refs/heads/master@{#43094}
-
Jochen Eisinger authored
R=mlippautz@chromium.org BUG= Change-Id: I4b25bcc1accd652e28a1fe4fc9776265afa1b75b Reviewed-on: https://chromium-review.googlesource.com/440944Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#43084}
-
yangguo authored
Collecting precise invocation counts need to be explicitly enabled. Once enabled, we disable optimization (optimized code does not increment invocation count, and may inline callees), and make sure feedback vectors interesting for code coverage is not garbage-collected. R=hpayer@chromium.org, jgruber@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2686063002 Cr-Commit-Position: refs/heads/master@{#43082}
-
- 08 Feb, 2017 2 commits
-
-
jbroman authored
Without doing this, a JSMessageObject can be kept alive by the isolate, which in turn keeps the context alive, until the message is cleared. BUG=v8:5941 Review-Url: https://codereview.chromium.org/2675203005 Cr-Commit-Position: refs/heads/master@{#43043}
-
yangguo authored
Previously, both type feedback vector and the shared function info of a function points to the matching type feedback metadata. This makes finding the shared function info of a type feedback vector difficult. Instead, we now point the type feeback vector to the shared function info, and find the metadata through the shared function info. Also remove the obsolete empty type feedback vector. R=hpayer@chromium.org, mvstanton@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2672363002 Cr-Commit-Position: refs/heads/master@{#43026}
-
- 30 Jan, 2017 2 commits
-
-
jochen authored
BUG=v8:5904,chromium:639217 R=mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2660103002 Cr-Commit-Position: refs/heads/master@{#42777}
-
petermarshall authored
We need it to be a PropertyCell so that we can list it as a dependency for optimised code. Also drive-by clean up some variable names in src/isolate-inl.h. BUG=v8:5895 Review-Url: https://codereview.chromium.org/2658573008 Cr-Commit-Position: refs/heads/master@{#42764}
-
- 25 Jan, 2017 1 commit
-
-
kozyatinskiy authored
- kDebugPromiseCreated(task, parent_task) This event occurs when promise is created (PromiseHookType::Init). V8Debugger uses this event to maintain task -> parent task map. - kDebugEnqueueAsyncFunction(task) This event occurs when first internal promise for async function is created. V8Debugger collects stack trace at this point. - kDebugEnqueuePromiseResolve(task), This event occurs when Promise fulfills with resolved status. V8Debugger collects stack trace at this point. - kDebugEnqueuePromiseReject(task), This event occurs when Promise fulfills with rejected status. V8Debugger collects stack trace at this point. - kDebugPromiseCollected, This event occurs when Promise is collected and no other chained callbacks can be added. V8Debugger removes information about async task for this promise. - kDebugWillHandle, This event occurs when chained promise function (either resolve or reject handler) is called. V8Debugger installs parent promise's stack (based on task -> parent_task map) as current if available or current promise's scheduled stack otherwise. - kDebugDidHandle, This event occurs after chained promise function has finished. V8Debugger restores asynchronous call chain to previous one. With this change all instrumentation calls are related to current promise (before WillHandle and DidHandle were related to next async task). Before V8Debugger supported only the following: - asyncTaskScheduled(task1) - asyncTaskStarted(task1) - asyncTaskFinished(task1) Now V8Debugger supports the following: - asyncTaskScheduled(parent_task) .. - asyncTaskCreated(task, parent_task), - asyncTaskStarted(task), uses parent_task scheduled stack - asyncTaskScheduled(task) - asyncTaskFinished(task) Additionally: WillHandle and DidHandle were migrated to PromiseHook API. More details: https://docs.google.com/document/d/1u19N45f1gSF7M39mGsycJEK3IPyJgIXCBnWyiPeuJFE BUG=v8:5738 R=dgozman@chromium.org,gsathya@chromium.org,yangguo@chromium.org Review-Url: https://codereview.chromium.org/2650803003 Cr-Commit-Position: refs/heads/master@{#42644}
-
- 17 Jan, 2017 2 commits
-
-
jochen authored
Instead, it is supposed to just return an empty context if it failed. Also don't invoke interceptors (we don't for the parts that deserialize from the snapshot anyways). BUG=v8:5830 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2636903002 Cr-Commit-Position: refs/heads/master@{#42404}
-
rmcilroy authored
Creates an AstStringConstants container which pre-initializes the string constants used by AstValueFactory. This ensures that all AstValueFactories will produce the same AstValue objects for constants, and so they can be used by the BytecodeGenerator without having to pass the AstValueFactory to it, enabling construction off-thread. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2630343002 Cr-Original-Commit-Position: refs/heads/master@{#42381} Committed: https://chromium.googlesource.com/v8/v8/+/d611496b8ed30af787d8668f96b400617c858508 Review-Url: https://codereview.chromium.org/2630343002 Cr-Commit-Position: refs/heads/master@{#42394}
-
- 16 Jan, 2017 2 commits
-
-
rmcilroy authored
Revert of [Parser] Introduce AstStringConstants to share constants across AstValueFactory (patchset #4 id:80001 of https://codereview.chromium.org/2630343002/ ) Reason for revert: Seems to break modules-namespace2 on gcstress. Original issue's description: > [Parser] Introduce AstStringConstants to share constants across AstValueFactory > > Creates an AstStringConstants container which pre-initializes the > string constants used by AstValueFactory. This ensures that all > AstValueFactories will produce the same AstValue objects for constants, > and so they can be used by the BytecodeGenerator without having to pass > the AstValueFactory to it, enabling construction off-thread. > > BUG=v8:5203 > > Review-Url: https://codereview.chromium.org/2630343002 > Cr-Commit-Position: refs/heads/master@{#42381} > Committed: https://chromium.googlesource.com/v8/v8/+/d611496b8ed30af787d8668f96b400617c858508 TBR=ahaas@chromium.org,marja@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5203 Review-Url: https://codereview.chromium.org/2638783002 Cr-Commit-Position: refs/heads/master@{#42382}
-
rmcilroy authored
Creates an AstStringConstants container which pre-initializes the string constants used by AstValueFactory. This ensures that all AstValueFactories will produce the same AstValue objects for constants, and so they can be used by the BytecodeGenerator without having to pass the AstValueFactory to it, enabling construction off-thread. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2630343002 Cr-Commit-Position: refs/heads/master@{#42381}
-
- 13 Jan, 2017 3 commits
-
-
kozyatinskiy authored
Inspector uses event name only for enqueue* events and doesn't really need name for other events. BUG=v8:5738 R=jgruber@chromium.org,gsathya@chromium.org TBR=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2628173005 Cr-Commit-Position: refs/heads/master@{#42339}
-
mstarzinger authored
This changes the {MessageLocation} structure to no longer contain a concrete {JSFunction} object but rather a {SharedFunctionInfo}. It is much easier by now to determine, and also the concrete closure is never actually being used. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2628973005 Cr-Commit-Position: refs/heads/master@{#42324}
-
jgruber authored
Prior to this, traces recorded through chrome://tracing would not include time spent in RunMicrotasks. BUG=v8:5382 Review-Url: https://codereview.chromium.org/2592793003 Cr-Commit-Position: refs/heads/master@{#42316}
-
- 12 Jan, 2017 2 commits
-
-
gsathya authored
Before, in `var p1 = p.then(() => {}) we would trigger the before/after callbacks with p as the associated promise, but we must call it with p1. Also removes promise from PromiseReactionJobInfo. Review-Url: https://codereview.chromium.org/2633443002 Cr-Commit-Position: refs/heads/master@{#42295}
-
clemensh authored
Wasm frames can be either compiled or interpreted. For interpreted wasm frames, there is only one physical stack frame representing an arbitrary stack of interpreted functions. Hence the physical stack frame needs to provide a summary of the underlying functions. Summaries were tailored for JavaScript frames before. Now they are universal. The refactored FrameSummaries are now also used in the FrameInspector, and from the StackFrame objects themselves, to avoid code duplication. All dispatch is implemented "manually", making the FrameSummary still stack-allocatable. BUG=v8:5822 R=yangguo@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2619353006 Cr-Commit-Position: refs/heads/master@{#42279}
-
- 11 Jan, 2017 1 commit
-
-
clemensh authored
and rename WasmFrame to WasmCompiledFrame. The WasmToInterpreterFrames are not used yet; this will follow in a follow-up CL (see tracking bug for the overall picture). Those frames will represent frames for WASM_TO_INTERPRETER stubs, which call from wasm code to the wasm interpreter, implemented in C++. They will support the Summarize method to inspect the stack frames in the wasm interpreter. R=yangguo@chromium.org, titzer@chromium.org BUG=v8:5822 Review-Url: https://codereview.chromium.org/2623773004 Cr-Commit-Position: refs/heads/master@{#42213}
-
- 10 Jan, 2017 1 commit
-
-
kozyatinskiy authored
... which were done after the promise has been resolved. Goal of this CL - change promise instrumentation to support better callbacks, chained after promise resolution and prepare instrumentation for adding new asyncTaskCreated instrumentation. Instrumentation changes: - asyncTaskScheduled(recurring) when promise is fulfilled or rejected, - asyncTaskCancelled when promise is collected (since [1] we can be sure that promise will survive scheduled microtasks). Minor changes: - async task type in inspector <-> debugger API transferred by enum instead of string, - Debug manages async task ids based on promise objects. More details: https://docs.google.com/document/d/1u19N45f1gSF7M39mGsycJEK3IPyJgIXCBnWyiPeuJFE [1] https://codereview.chromium.org/2581503003/ BUG=chromium:632829,v8:5738 R=dgozman@chromium.org,yangguo@chromium.org,gsathya@chromium.org Review-Url: https://codereview.chromium.org/2578923002 Cr-Commit-Position: refs/heads/master@{#42178}
-
- 03 Jan, 2017 1 commit
-
-
gsathya authored
-- Removes remaning debug from promise.js and moves it to c++ -- Changes debug_id to be a smi in PromiseReactionJobInfo and PromiseResolveThenableJobInfo. -- Changes debug_name to be a smi in PromiseReactionJobInfo and PromiseResolveThenableJobInfo. -- Adds PromiseDebugActionName and PromiseDebugActionType enums -- Adds PromiseDebugActionNameToString and PromiseDebugActionTypeToString helper methods -- Changes variable `status` to be int in runtime functions. -- Changes debug_id to start from 1, not 0 for easier bookkeeping. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2606093002 Cr-Commit-Position: refs/heads/master@{#42052}
-
- 29 Dec, 2016 1 commit
-
-
gsathya authored
This patch stores the promise, resolve, reject properties of the deferred object created by CreateInternalPromiseCapability and NewPromiseCapability directly on the promise (if the promise hasn't been fulfilled), otherwise they are stored on the PromiseReactionJobInfo. This patch removes the currently unused CreateInternalPromiseCapability and inlines the call to create the deferred promise object. NewPromiseCapability is the only function that works with a deferred. This patch results in a 8.5% improvement in benchmarks over 5 runs. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2590563003 Cr-Commit-Position: refs/heads/master@{#41991}
-
- 23 Dec, 2016 2 commits
-
-
gsathya authored
TBR=adamk@chromium.org Review-Url: https://codereview.chromium.org/2604483005 Cr-Commit-Position: refs/heads/master@{#41949}
-
gsathya authored
BUG=v8:5343 Review-Url: https://codereview.chromium.org/2604483002 Cr-Commit-Position: refs/heads/master@{#41947}
-
- 20 Dec, 2016 1 commit
-
-
clemensh authored
The new object will hold information which is shared by all clones of a WasmCompiledModule, e.g. the decoded asm.js offset table, and in the future also breakpoints. From there, we can set them on each new instantiation of any clone. While already changing lots of the code base, I also renamed all getters from "get_foo" to "foo", to conform to the style guide. R=titzer@chromium.org, yangguo@chromium.org BUG=v8:5732 Review-Url: https://codereview.chromium.org/2591653002 Cr-Commit-Position: refs/heads/master@{#41862}
-
- 19 Dec, 2016 1 commit
-
-
clemensh authored
When executing wasm code for testing, we did not create a WasmInstanceObject and link it to the generated code. This required some special handling at runtime (mainly for stack trace generation). This CL always provides the WasmInstanceObject, such that e.g. function names can be resolved the usual way. The module bytes referenced by the WasmCompiledModule linked with the WasmInstanceObject do not hold a valid wasm module yet. Instead, we just add the bytes we need, and make the objects in WasmModule point to those bytes (currently only used for function names). Those bytes will not be parsed at runtime anyway. R=titzer@chromium.org CC=jgruber@chromium.org BUG=v8:5620 Review-Url: https://codereview.chromium.org/2551053002 Cr-Commit-Position: refs/heads/master@{#41809}
-
- 16 Dec, 2016 3 commits
-
-
gsathya authored
This adds kInit, kResolve, kBefore and kAfter lifecycle hooks to promises. This also exposes an API to set the PromiseHook. BUG=v8:4643 Review-Url: https://codereview.chromium.org/2575313002 Cr-Commit-Position: refs/heads/master@{#41775}
-
ulan authored
The original patch was reverted because of performance regressions caused by removal of old heap sizing heuristics. This patch keeps the old heuristics and adds RAIL mode. BUG=chromium:613518 Review-Url: https://codereview.chromium.org/2576543002 Cr-Commit-Position: refs/heads/master@{#41773}
-
jochen authored
BUG=v8:5215 R=rmcilroy@chromium.org,marja@chromium.org,vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2573493002 Cr-Commit-Position: refs/heads/master@{#41767}
-
- 15 Dec, 2016 1 commit
-
-
gsathya authored
This will be used in PromiseHook. BUG=v8:4643 Review-Url: https://codereview.chromium.org/2581503003 Cr-Commit-Position: refs/heads/master@{#41730}
-
- 13 Dec, 2016 1 commit
-
-
gsathya authored
Splits PromiseHandle into two TF builtins to account for catch prediction. An exception in PromiseHandleReject builtin results in a "caught" prediction whereas an expception in PromiseHandle results in a "promise rejection" prediction. An extra is_exception_caught bit is added to Code to mark this catch prediction behavior. BUG=v8:5343 Review-Url: https://codereview.chromium.org/2572623002 Cr-Commit-Position: refs/heads/master@{#41683}
-
- 12 Dec, 2016 2 commits
-
-
hpayer authored
BUG= Review-Url: https://codereview.chromium.org/2566133002 Cr-Commit-Position: refs/heads/master@{#41654}
-
jochen authored
It doesn't schedule steps yet, but there are tests. BUG=v8:5215 R=rmcilroy@chromium.org,marja@chromium.org Review-Url: https://codereview.chromium.org/2558293004 Cr-Commit-Position: refs/heads/master@{#41650}
-