- 09 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
There is no good reason to have the meat of most objects' initialization logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead, this CL changes the protocol between Heap and Factory to be AllocateRaw, and all object initialization work after (possibly retried) successful raw allocation happens in the Factory. This saves about 20KB of binary size on x64. Original review: https://chromium-review.googlesource.com/c/v8/v8/+/959533 Originally landed as r52416 / f9a2e24b Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Id072cbe6b3ed30afd339c7e502844b99ca12a647 Reviewed-on: https://chromium-review.googlesource.com/1000540 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52492}
-
- 06 Apr, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit f9a2e24b. Reason for revert: gc stress failures not all fixed by follow up. Original change's description: > [cleanup] Refactor the Factory > > There is no good reason to have the meat of most objects' initialization > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead, > this CL changes the protocol between Heap and Factory to be AllocateRaw, > and all object initialization work after (possibly retried) successful > raw allocation happens in the Factory. > > This saves about 20KB of binary size on x64. > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca > Reviewed-on: https://chromium-review.googlesource.com/959533 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52416} TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f No-Presubmit: true No-Tree-Checks: true No-Try: true Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52420}
-
Jakob Kummerow authored
There is no good reason to have the meat of most objects' initialization logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead, this CL changes the protocol between Heap and Factory to be AllocateRaw, and all object initialization work after (possibly retried) successful raw allocation happens in the Factory. This saves about 20KB of binary size on x64. Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca Reviewed-on: https://chromium-review.googlesource.com/959533 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52416}
-
- 29 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
In our internal code, we should only use pending exceptions. They will be converted to scheduled exceptions on the API boundary. Hence, the ErrorThrower just sets a pending exception; it should never have to think about scheduled exceptions. The new ScheduledErrorThrower inherits from ErrorThrower and reschedules any pending exceptions in its destructor (turning them into scheduled exceptions). In some situations, there might already be a scheduled exception, e.g. when calling other API methods (v8::Value::Get). In this case, the ErrorThrower should also not set another pending exception. For the reasons mentioned above, this can only be handled in the ScheduledErrorThrower, which is used the API methods. This fixes one DCHECK failure and one TODO about scheduled exceptions if no instance can be created, because the start function throws. R=mtrofin@chromium.org, mstarzinger@chromium.org BUG=v8:6232,chromium:736256 Change-Id: I4905be04c565df9495de18fb26adbb5c05d193d2 Reviewed-on: https://chromium-review.googlesource.com/548641 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46314}
-
- 26 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
Test that unicode identifiers can be used for imports and exports, and that unicode function names appear correctly in error messages. R=ahaas@chromium.org Change-Id: Ic6ac77159c275845886b2eb779cf59edb8cba9ea Reviewed-on: https://chromium-review.googlesource.com/548315 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46220}
-
- 02 May, 2017 2 commits
-
-
Clemens Hammacher authored
ErrorThrower::Reify() should only be called if an error is actually set. This CL introduces a Reset() method to replace the obsolete (now disallowed) usages. R=mtrofin@chromium.org BUG=chromium:717056 Change-Id: I41b989a9c7b33591ee26ec6d43540a38289ab54f Reviewed-on: https://chromium-review.googlesource.com/493506Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45039}
-
Clemens Hammacher authored
ErrorThrower is not concurrency safe, thus we should not use it from background tasks. Instead, allocate an ErrorThrower whenever we actually want (or might) throw. Pass the ErrorThrower from step 4 to step 5 explicitly. R=ahaas@chromium.org, mtrofin@chromium.org Change-Id: Ifb6b16cab7939ec9c81e4f2db59ee42d5ddd7f85 Reviewed-on: https://chromium-review.googlesource.com/489501 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45015}
-
- 30 Apr, 2017 1 commit
-
-
Clemens Hammacher authored
The error thrower did allocate the exception at the moment the error was detected. For async compilation, this meant in another step than when it was actually thrown. Since the HandleScope of the exception already died at that point, this would have lead to memory errors. With this refactoring, we only store the information needed to generate the exception in the ErrorThrower, and only generate the exception object once it is actually needed. With regression test. R=ahaas@chromium.org, mtrofin@chromium.org Also-by: ahaas@chromium.org Change-Id: Iffcab1f8d1cf5925e3643fcf0729ba9a84c7d277 Reviewed-on: https://chromium-review.googlesource.com/490085 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45000}
-
- 28 Apr, 2017 1 commit
-
-
Clemens Hammacher authored
This avoids generating redundant code for different template instantiations. I also introduce getters instead of accessing the fields directly. R=ahaas@chromium.org BUG=v8:6325 Change-Id: I3e0eca9ef6a01e0a3ebb73f4f357bcb59e120f43 Reviewed-on: https://chromium-review.googlesource.com/490166Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44976}
-
- 10 Apr, 2017 1 commit
-
-
Clemens Hammacher authored
- Store std::string instead of std::unique_ptr<char[]> for the error message. - Remove ErrorCode, which was just kSuccess and kError anyway. Error is now detected on whether error_msg_ is empty or not. - Refactor constructors for perfect forwarding; this will allow us to implement Result<std::unique_ptr<X*>>. - Refactor Decoder::toResult for perfect forwarding. - Remove output operators (operator<<) for Result; it was only used in the error case anyway. Print error message directly instead. The operator was problematic since it assumed the existence of an output operator for every T which is used in Result<T>. - Remove ModuleError and FunctionError, introduce general static Result<T>::Error method instead. R=ahaas@chromium.org Change-Id: I1e0f602a61ee9780fee2a3ed33147d431fb092ba Reviewed-on: https://chromium-review.googlesource.com/472748 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44518}
-
- 20 Jan, 2017 1 commit
-
-
rossberg authored
R=titzer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2640113005 Cr-Commit-Position: refs/heads/master@{#42556}
-
- 16 Dec, 2016 1 commit
-
-
rossberg authored
- Implement new WebAssembly.LinkError exception - Implement stricter checks for glboal imports - Add tests - Refactor handling of import names - Add TODOs for empty import names R=titzer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2584843002 Cr-Commit-Position: refs/heads/master@{#41764}
-
- 13 Oct, 2016 1 commit
-
-
rossberg authored
R=ahaas@chromium.org, titzer@chromium.org BUG=v8:5507 Review-Url: https://codereview.chromium.org/2421453002 Cr-Commit-Position: refs/heads/master@{#40280}
-
- 21 Sep, 2016 1 commit
-
-
ahaas authored
Set up Wasm Table and Memory constructors This only provides skeletons so far: the constructors work, but the types are not wired up with the import/export mechanism yet; methods are still nops. Also, fix errors generated from Wasm to be proper Error/TypeError instances instead of just strings. I took over this CL from rossberg@chromium.org. The original CL is https://codereview.chromium.org/2342623002 R=titzer@chromium.org, rossberg@chromium.org Review-Url: https://codereview.chromium.org/2350643003 Cr-Commit-Position: refs/heads/master@{#39588}
-
- 21 Jun, 2016 1 commit
-
-
rossberg authored
Implements: - WebAssembly object, - WebAssembly.Module constructor, - WebAssembly.Instance constructor, - WebAssembly.compile async method, - and Module and Instance instance objects. Also, changes ErrorThrower to support capturing errors in a promise reject. Since we cannot yet compile without fixing the Wasm memory, and cannot validate a module without compiling, the Module constructor and compile method don't do anything yet but checking that their argument is a suitable BufferSource. Instead of a compiled module, the hidden state of a Module object currently is just that buffer. BUG= Review-Url: https://codereview.chromium.org/2084573002 Cr-Commit-Position: refs/heads/master@{#37143}
-
- 14 Jun, 2016 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2067513002 Cr-Commit-Position: refs/heads/master@{#36949}
-
- 25 May, 2016 1 commit
-
-
titzer authored
This removes the last use of the old_functions section, which greatly simplifies encoding. R=bradnelson@chromium.org,aseemgarg@chromium.org,mtrofin@chromium.org BUG= Review-Url: https://codereview.chromium.org/2014533003 Cr-Commit-Position: refs/heads/master@{#36523}
-
- 11 May, 2016 1 commit
-
-
titzer authored
R=ahaas@chromium.org,mstarzinger@chromium.org BUG= Review-Url: https://codereview.chromium.org/1970543003 Cr-Commit-Position: refs/heads/master@{#36174}
-
- 11 Dec, 2015 1 commit
-
-
titzer authored
As discussed in person, this adds the code from v8-native-prototype into V8 proper, guarded by GYP flags that do not build the code by default. Passing wasm=on to 'make' or setting v8_wasm as a GYP flag activates building of this code. An additional header file is added to and exported from the compiler directory, src/compiler/wasm-compiler.h. This exposes a limited interface with opaque Node and Graph types to the decoder to build TF graphs, as well as functions to compile WASM graphs. The mjsunit tests added are blacklisted because they fail without the WASM object exposed to JS, which is also disabled by the build config option. This corresponds closely to https://github.com/WebAssembly/v8-native-prototype/commit/5981e06ebc9b1e578831d03100f17ebb77970ee0, with some formatting fixes and moving some files into src/compiler. R=mstarzinger@chromium.org, bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1504713014 Cr-Commit-Position: refs/heads/master@{#32794}
-