- 13 Jun, 2017 1 commit
-
-
Adam Klein authored
They were already implemented mostly in C++ (only error/negative cases were handled in script), so this is mostly just a cleanup. Only the constructors remain in script after this CL. Bug: v8:6354 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I5b3579337a8e33dc30d49c2da5cfd42baec697bb Reviewed-on: https://chromium-review.googlesource.com/531670Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#45924}
-
- 12 Jun, 2017 1 commit
-
-
Toon Verwaest authored
Distinguish the compilation caches instead by the shape of the key (cow fixed array map meaning eval or script cache). This allows us to remove the odd "key" argument from Shrink, EnsureCapacity and Rehash. Bug: v8:6474 Change-Id: Ibcad22813063c3a9050da13dc51359f5b59e1254 Reviewed-on: https://chromium-review.googlesource.com/531184Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#45873}
-
- 08 Jun, 2017 1 commit
-
-
Mythri authored
ThrowIfHole bytecodes were handled by introducing deopt points to check for a hole. To avoid deopt loops a hole check protector was used to generate control flow if there was a deopt due to a hole. However, the normal control flow version should be as fast as the deopt version in general. The deopt version could potentially consume less compile time but it may not be worth the complexity added. Hence simplifying it to only construct the control flow. Bug: v8:6383 Change-Id: Icace11f7a6e21e64e1cebd104496e3f559bc85f7 Reviewed-on: https://chromium-review.googlesource.com/525573Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#45783}
-
- 07 Jun, 2017 1 commit
-
-
Ross McIlroy authored
Adds support for lowering of ToPrimitiveToString and StringConcat bytecodes to the corresponding builtins. As part of this, moves the interpreter implementation of these operations into the appropriate builtin generators and add builtin support for them. Also adds TailCallRuntimeN operator to code-assembler which enables tail calling a runtime function when the arguments have already been pushed onto the stack. BUG=v8:6243 Change-Id: Id5c851bc42e4ff490d9a23a8990ae331c7eac73e Reviewed-on: https://chromium-review.googlesource.com/515362 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#45756}
-
- 06 Jun, 2017 4 commits
-
-
Igor Sheludko authored
Properly propagate the fact that the function has a statically known name from parser to SharedFunctionInfo objects. The empty string that has been set as name before this CL does not help to distinguish cases like: var o1 = { ''(){} }; var o1 = { [foo()](){} }; or var o2 = { get ''(){} }; var o2 = { get [foo()](){} }; This is a preliminary step for using different layouts for closure objects with and without computed names. TBR=bmeurer@chromium.org, marja@chromium.org Bug: v8:6459 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I10afa6f4bda7881c3714711a75f720f83c1d875d Reviewed-on: https://chromium-review.googlesource.com/522073 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#45744}
-
jgruber authored
This CL implements general infrastructure for block coverage together with initial support for if-statements. Coverage output can be generated in lcov format by d8 as follows: $ d8 --block-coverage --lcov=$(echo ~/simple-if.lcov) ~/simple-if.js $ genhtml ~/simple-if.lcov -o ~/simple-if $ chrome ~/simple-if/index.html A high level overview of the implementation follows: The parser now collects source ranges unconditionally for relevant AST nodes. Memory overhead is very low and this seemed like the cleanest and simplest alternative. Bytecode generation uses these ranges to allocate coverage slots and insert IncBlockCounter instructions (e.g. at the beginning of then- and else blocks for if-statements). The slot-range mapping is generated here and passed on through CompilationInfo, and is later accessible through the SharedFunctionInfo. The IncBlockCounter bytecode fetches the slot-range mapping (called CoverageInfo) from the shared function info and simply increments the counter. We don't collect native-context-specific counts as they are irrelevant to our use-cases. Coverage information is finally generated on-demand through Coverage::Collect. The only current consumer is a d8 front-end with lcov-style output, but the short-term goal is to expose this through the inspector protocol. BUG=v8:6000 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2882973002 Cr-Commit-Position: refs/heads/master@{#45737}
-
Mythri authored
Introduces ThrowReferenceErrorIfHole / ThrowSuperNotCalledIfHole / ThrowSuperAlreadyCalledIfNotHole bytecodes to handle hole checks. In the bytecode-graph builder they are handled by introducing a deopt point instead of adding explicit control flow. JumpIfNotHole / JumpIfNotHoleConstant bytecodes are removed since they are no longer required. Bug: v8:4280, v8:6383 Change-Id: I58b70c556b0ffa30e41a0cd44016874c3e9c5fe1 Reviewed-on: https://chromium-review.googlesource.com/509613 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45720}
-
Mircea Trofin authored
This wraps up the move to explicit APIs, i.e. instantiateStreaming/compileStreaming. Bug: Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Icc8280b2b3ad35acb90cc0beebe3acd7581179d7 Reviewed-on: https://chromium-review.googlesource.com/525141 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45719}
-
- 22 May, 2017 1 commit
-
-
Ross McIlroy authored
Special cases addition expressions where one of the sides is known to be a string to enable chains of string additions to be transformed into a series of ToPrimitiveToString operations followed by a single string concatenation at the end of the chain of additions. This should avoid creating temporary strings for each of the string additions (in essence this is an automated string builder). BUG=v8:6243 Change-Id: I44977d6dad00ee906f251c4bd9cab27e160c09d1 Reviewed-on: https://chromium-review.googlesource.com/493966 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#45453}
-
- 17 May, 2017 2 commits
-
-
tebbi authored
R=danno@chromium.org Review-Url: https://codereview.chromium.org/2814683002 Cr-Commit-Position: refs/heads/master@{#45380}
-
bmeurer authored
Migrate the Object.keys builtin to the CodeStubAssembler and use the enum cache backing store whenever it is available. This gives a nice speedup of 1.5x to 2x when using Object.keys on fast-mode objects that have (or can have) an enum cache. R=cbruni@chromium.org BUG=v8:5269,v8:6405 Review-Url: https://codereview.chromium.org/2853393002 Cr-Commit-Position: refs/heads/master@{#45361}
-
- 16 May, 2017 2 commits
-
-
Leszek Swirski authored
Generate the code (extra runtime calls) for --trace-ignition support at compile time, based on a #define (similar to TRACE_MAPS). Then check for --trace-ignition at run-time when deciding whether to actually print anything. This should make --trace-ignition less painful to use. Note that --trace-igition is disabled by default, even on debug builds. It has to be enabled with the gn arg "v8_enable_trace_ignition=true" As a drive-by, TRACE_MAPS is renamed to V8_TRACE_MAPS, for consistency, and SFI unique index (needed both by --trace-ignition and --trace-maps) is cleaned up to be behind another #define. Change-Id: I8dd0c62d0e6b7ee9c75541d45eb729dc03acbee9 Reviewed-on: https://chromium-review.googlesource.com/506203 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45346}
-
Ross McIlroy authored
Now that the optimized code hangs off the feedback vector, it is possible to check whether a function has optimized code available every time it's called in the interpreter entry trampoline. If optimized code exists, the interpreter entry trampoline 'self-heals' the closure to point to the optimized code and links the closure into the optimized code list. BUG=v8:6246 Change-Id: I53b095db2a75ae4824c8195faf8649d766c86118 Reviewed-on: https://chromium-review.googlesource.com/501967Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45328}
-
- 10 May, 2017 3 commits
-
-
Mircea Trofin authored
This reverts commit 619dfed4. Original CL: https://chromium-review.googlesource.com/c/494968/ Bug: Change-Id: Ib4a1f481e46f1972420cc8f8d2192bb6c470e08d Reviewed-on: https://chromium-review.googlesource.com/501650 Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45240}
-
Mircea Trofin authored
This reverts commit 45bbf804. Reason for revert: Still some flakes. Original change's description: > Reland "Introducing an event loop mechanism for d8." > > This reverts commit 02595c60. > > Original CL: https://chromium-review.googlesource.com/c/494968/ > > Bug: > Change-Id: I7441ed91ebb4a087cdf437ae3239f9b021110a11 > Reviewed-on: https://chromium-review.googlesource.com/500947 > Reviewed-by: Bill Budge <bbudge@chromium.org> > Commit-Queue: Mircea Trofin <mtrofin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45212} TBR=bradnelson@chromium.org,bbudge@chromium.org,mtrofin@chromium.org,jochen@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: Change-Id: Idf2ea0431865104042a68bd2dac944a9725bf3f9 Reviewed-on: https://chromium-review.googlesource.com/501370Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45215}
-
Mircea Trofin authored
This reverts commit 02595c60. Original CL: https://chromium-review.googlesource.com/c/494968/ Bug: Change-Id: I7441ed91ebb4a087cdf437ae3239f9b021110a11 Reviewed-on: https://chromium-review.googlesource.com/500947Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45212}
-
- 09 May, 2017 1 commit
-
-
Michael Achenbach authored
This reverts commit 7dcc8eff. Reason for revert: Some flakes still (see comments) and breaks predictable testing: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20predictable/builds/11452 Original change's description: > Revert "Revert "Introducing an event loop mechanism for d8."" > > This reverts commit f7c25da6. > > Reason for revert: Fixed > > Original change's description: > > Revert "Introducing an event loop mechanism for d8." > > > > This reverts commit de964dbe. > > > > Reason for revert: > > https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/17958 > > > > Original change's description: > > > Introducing an event loop mechanism for d8. > > > > > > This mechanism ensures APIs like wasm async complete their work, > > > without requiring use of natives (%APIs). > > > > > > The mechanism is similar to the one used in content_shell, > > > which should allow us to easily port tests in that environment. > > > > > > Review-Url: https://codereview.chromium.org/2842843005 > > > Cr-Original-Commit-Position: refs/heads/master@{#44908} > > > Bug: > > > Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344 > > > Reviewed-on: https://chromium-review.googlesource.com/494968 > > > Commit-Queue: Mircea Trofin <mtrofin@google.com> > > > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#45165} > > > > TBR=bradnelson@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > > > Change-Id: Iafec2615d705d1990c57229cab3a988c00b5e12f > > Reviewed-on: https://chromium-review.googlesource.com/498630 > > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#45166} > > TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Change-Id: Ic3c782e918326e291a6cb9bb349c609e9a340b09 > Reviewed-on: https://chromium-review.googlesource.com/498430 > Reviewed-by: Mircea Trofin <mtrofin@chromium.org> > Commit-Queue: Mircea Trofin <mtrofin@google.com> > Cr-Commit-Position: refs/heads/master@{#45172} TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I21ffba7141db0bfb4a3275b6e1bf4fb399800ed2 Reviewed-on: https://chromium-review.googlesource.com/500128Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45177}
-
- 08 May, 2017 4 commits
-
-
Mircea Trofin authored
This reverts commit f7c25da6. Reason for revert: Fixed Original change's description: > Revert "Introducing an event loop mechanism for d8." > > This reverts commit de964dbe. > > Reason for revert: > https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/17958 > > Original change's description: > > Introducing an event loop mechanism for d8. > > > > This mechanism ensures APIs like wasm async complete their work, > > without requiring use of natives (%APIs). > > > > The mechanism is similar to the one used in content_shell, > > which should allow us to easily port tests in that environment. > > > > Review-Url: https://codereview.chromium.org/2842843005 > > Cr-Original-Commit-Position: refs/heads/master@{#44908} > > Bug: > > Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344 > > Reviewed-on: https://chromium-review.googlesource.com/494968 > > Commit-Queue: Mircea Trofin <mtrofin@google.com> > > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#45165} > > TBR=bradnelson@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Change-Id: Iafec2615d705d1990c57229cab3a988c00b5e12f > Reviewed-on: https://chromium-review.googlesource.com/498630 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45166} TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org,v8-reviews@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ic3c782e918326e291a6cb9bb349c609e9a340b09 Reviewed-on: https://chromium-review.googlesource.com/498430Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Mircea Trofin <mtrofin@google.com> Cr-Commit-Position: refs/heads/master@{#45172}
-
Michael Achenbach authored
This reverts commit de964dbe. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/17958 Original change's description: > Introducing an event loop mechanism for d8. > > This mechanism ensures APIs like wasm async complete their work, > without requiring use of natives (%APIs). > > The mechanism is similar to the one used in content_shell, > which should allow us to easily port tests in that environment. > > Review-Url: https://codereview.chromium.org/2842843005 > Cr-Original-Commit-Position: refs/heads/master@{#44908} > Bug: > Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344 > Reviewed-on: https://chromium-review.googlesource.com/494968 > Commit-Queue: Mircea Trofin <mtrofin@google.com> > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45165} TBR=bradnelson@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Iafec2615d705d1990c57229cab3a988c00b5e12f Reviewed-on: https://chromium-review.googlesource.com/498630Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45166}
-
Mircea Trofin authored
This mechanism ensures APIs like wasm async complete their work, without requiring use of natives (%APIs). The mechanism is similar to the one used in content_shell, which should allow us to easily port tests in that environment. Review-Url: https://codereview.chromium.org/2842843005 Cr-Original-Commit-Position: refs/heads/master@{#44908} Bug: Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344 Reviewed-on: https://chromium-review.googlesource.com/494968 Commit-Queue: Mircea Trofin <mtrofin@google.com> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#45165}
-
Loo Rong Jie authored
Bug:v8:5510 R=yangguo@chromium.org,jgruber@chromium.org Change-Id: Ieb355110bd858efe2495a6271ffeda67d41af129 Reviewed-on: https://chromium-review.googlesource.com/497153Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Loo Rong Jie <loorongjie@gmail.com> Cr-Commit-Position: refs/heads/master@{#45151}
-
- 05 May, 2017 1 commit
-
-
bmeurer authored
The collection builtins (Map, Set, WeakMap, WeakSet) are still written in JavaScript and make heavy use of %_ClassOf, which is kind of expensive compared to a simple instance type check. Change that to use simple instance type checks instead. R=jarin@chromium.org BUG=v8:6261,v8:6278,v8:6344 Review-Url: https://codereview.chromium.org/2814773005 Cr-Original-Commit-Position: refs/heads/master@{#45106} Committed: https://chromium.googlesource.com/v8/v8/+/28170099fd1efc84a724ef133f335fec521c0852 Review-Url: https://codereview.chromium.org/2814773005 Cr-Commit-Position: refs/heads/master@{#45124}
-
- 04 May, 2017 2 commits
-
-
bmeurer authored
Revert of [js] Avoid %_ClassOf for collection builtins. (patchset #4 id:60001 of https://codereview.chromium.org/2814773005/ ) Reason for revert: Breaks node.js integration bot: https://build.chromium.org/p/client.v8.fyi/builders/V8%20-%20node.js%20integration/builds/5374/steps/build%20addons%20and%20test%20node.js/logs/stdio Original issue's description: > [js] Avoid %_ClassOf for collection builtins. > > The collection builtins (Map, Set, WeakMap, WeakSet) are still written > in JavaScript and make heavy use of %_ClassOf, which is kind of > expensive compared to a simple instance type check. Change that to use > simple instance type checks instead. > > R=jarin@chromium.org > BUG=v8:6261,v8:6278,v8:6344 > > Review-Url: https://codereview.chromium.org/2814773005 > Cr-Commit-Position: refs/heads/master@{#45106} > Committed: https://chromium.googlesource.com/v8/v8/+/28170099fd1efc84a724ef133f335fec521c0852 TBR=jarin@chromium.org,adamk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6261,v8:6278,v8:6344 Review-Url: https://codereview.chromium.org/2860123002 Cr-Commit-Position: refs/heads/master@{#45108}
-
bmeurer authored
The collection builtins (Map, Set, WeakMap, WeakSet) are still written in JavaScript and make heavy use of %_ClassOf, which is kind of expensive compared to a simple instance type check. Change that to use simple instance type checks instead. R=jarin@chromium.org BUG=v8:6261,v8:6278,v8:6344 Review-Url: https://codereview.chromium.org/2814773005 Cr-Commit-Position: refs/heads/master@{#45106}
-
- 26 Apr, 2017 1 commit
-
-
cwhan.tunz authored
- Throw TypeError in ValidateTypedArray, matching JSC, SpiderMonkey and ChakraCore. - Validate typed arrays at start of each typed array prototype methods in src/js/typedarrays.js - Add tests to check detached buffers - Remove an unnecessary parameter of TypedArraySpeciesCreate in src/js/typedarrays.js - Standardize TypedArray.prototype.subarray - Update test262.status to pass detached buffer tests Reland of https://codereview.chromium.org/2778623003 BUG=v8:4648, v8:4665, v8:4953 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2827443002 Cr-Commit-Position: refs/heads/master@{#44878}
-
- 24 Apr, 2017 1 commit
-
-
Daniel Ehrenberg authored
- Split out code for Intl objects into src/objects/ - Rename i18n to intl (except for the name of the build flag) - Use build system more broadly to turn on/off Intl code - Delete a little bit of dead code Bug: v8:5751 Change-Id: I41bf2825a5cb0df20824922b17c24cae637984da Reviewed-on: https://chromium-review.googlesource.com/481284Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#44801}
-
- 20 Apr, 2017 1 commit
-
-
jkummerow authored
So that we can delete object properties without a runtime call. The builtin implements a few fast paths (for now only deletion of dictionary properties), and calls the runtime for all other cases. Review-Url: https://codereview.chromium.org/2810363003 Cr-Commit-Position: refs/heads/master@{#44740}
-
- 19 Apr, 2017 2 commits
-
-
Peter Marshall authored
This includes a fastpath in the ElementsAccessor for the source array being a JSArray with FastSmi or FastDouble packed kinds. This is probably a pretty common usage, where an array is passed in as a way of initializing the TypedArray at creation (as there is not other syntax to do this). e.g. new Float64Array([1.0, 1.0, 1.0]) for some sort of vector application. BUG= v8:5977 Change-Id: Ice4ad9fc29f56b1c4b0b30736a1330efdc289003 Reviewed-on: https://chromium-review.googlesource.com/465126Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#44722}
-
jgruber authored
This changes the message from "method_name is not generic" to "method_name requires that 'this' be a primitive_name object" BUG=v8:6206 Review-Url: https://codereview.chromium.org/2814043006 Cr-Original-Commit-Position: refs/heads/master@{#44683} Committed: https://chromium.googlesource.com/v8/v8/+/21b104e3b83569b52539ecaa83e68a3646065101 Review-Url: https://codereview.chromium.org/2814043006 Cr-Commit-Position: refs/heads/master@{#44713}
-
- 18 Apr, 2017 3 commits
-
-
machenbach authored
Revert of [errors] Improve NotGeneric error message (patchset #3 id:40001 of https://codereview.chromium.org/2814043006/ ) Reason for revert: Please schedule rebasing layout test first: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/15036 https://github.com/v8/v8/wiki/Blink-layout-tests Original issue's description: > [errors] Improve NotGeneric error message > > This changes the message from > > "method_name is not generic" > > to > > "method_name requires that 'this' be a primitive_name object" > > BUG=v8:6206 > > Review-Url: https://codereview.chromium.org/2814043006 > Cr-Commit-Position: refs/heads/master@{#44683} > Committed: https://chromium.googlesource.com/v8/v8/+/21b104e3b83569b52539ecaa83e68a3646065101 TBR=littledan@chromium.org,yangguo@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6206 Review-Url: https://codereview.chromium.org/2825123002 Cr-Commit-Position: refs/heads/master@{#44701}
-
jgruber authored
This changes the message from "method_name is not generic" to "method_name requires that 'this' be a primitive_name object" BUG=v8:6206 Review-Url: https://codereview.chromium.org/2814043006 Cr-Commit-Position: refs/heads/master@{#44683}
-
mtrofin authored
Today, the semantics of: WebAssembly.instantiate and WebAssembly.compile().then(new WebAssemblyInstance) are subtly different, to the point where attempting the proposed change uncovered bugs. In the future, it's possible that .instantiate actually have different semantics - if we pre-specialized to the provided ffi, for example. Right now that's not the case. This CL: - gets our implementation closer to what developers may write using the compile -> new Instance alternative, in particular wrt promise creation. By reusing code paths, we uncover more bugs, and keep maintenance cost lower. - it gives us the response-based WebAssembly.instantiate implicitly. Otherwise, we'd need that same implementation on the blink side. The negative is maintenance: imagine if the bugs I mentioned could only be found when running in Blink. BUG=chromium:697028 Review-Url: https://codereview.chromium.org/2806073002 Cr-Original-Commit-Position: refs/heads/master@{#44592} Committed: https://chromium.googlesource.com/v8/v8/+/7829af3275ff4644a2d0a1270abe1a1e4415e9fb Review-Url: https://codereview.chromium.org/2806073002 Cr-Commit-Position: refs/heads/master@{#44669}
-
- 13 Apr, 2017 1 commit
-
-
Leszek Swirski authored
Currently we count optimizations to decide to disable optimization, and count deopts to detect this decision and allow re-enabling optimizations after a while. However, throwing out TurboFan OSR code and GC optimized code evictions do not count as deopts, which means that the optimization count increases without increasing the deopt count. This increased optimization count disables further optimization -- which is bad, because these are not "true" deopts -- and can stop the optimization from being re-enabled, because the deopt count can't go high enough. Instead, we now only ever look at deopts to disable/re-enable optimization, and opt counts are only used for naming log files and in tests. Change-Id: I0c7d6be497545449a38cf952cd2f007ee51982ba Reviewed-on: https://chromium-review.googlesource.com/468811 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44647}
-
- 12 Apr, 2017 4 commits
-
-
hablich authored
Revert of [wasm] instantiate expressed in terms of compile (patchset #6 id:140001 of https://codereview.chromium.org/2806073002/ ) Reason for revert: Roll blocker: https://bugs.chromium.org/p/chromium/issues/detail?id=710824 Original issue's description: > [wasm] instantiate expressed in terms of compile > > Today, the semantics of: > > WebAssembly.instantiate > > and > > WebAssembly.compile().then(new WebAssemblyInstance) > > are subtly different, to the point where attempting the proposed > change uncovered bugs. > > In the future, it's possible that .instantiate actually have different > semantics - if we pre-specialized to the provided ffi, for example. > Right now that's not the case. > > This CL: > - gets our implementation closer to what developers may write using > the compile -> new Instance alternative, in particular wrt promise > creation. By reusing code paths, we uncover more bugs, and keep > maintenance cost lower. > > - it gives us the response-based WebAssembly.instantiate implicitly. > Otherwise, we'd need that same implementation on the blink side. The > negative is maintenance: imagine if the bugs I mentioned could only be > found when running in Blink. > > BUG=chromium:697028 > > Review-Url: https://codereview.chromium.org/2806073002 > Cr-Commit-Position: refs/heads/master@{#44592} > Committed: https://chromium.googlesource.com/v8/v8/+/7829af3275ff4644a2d0a1270abe1a1e4415e9fb TBR=bradnelson@chromium.org,ahaas@chromium.org,adamk@chromium.org,mtrofin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:697028 Review-Url: https://codereview.chromium.org/2810203002 Cr-Commit-Position: refs/heads/master@{#44614}
-
jgruber authored
This adds a fast path to skip runtime calls to GetSubstitution when the replacer string does not contain a '$' char. Extended background: String.prototype.replace is (roughly) structured as follows: * Check if {searchValue} has a @@replace Symbol, and delegate to that if so. We currently implement efficient fast paths when {searchValue} is a String or a fast RegExp. * A specialized fast path for single-char {searchValue}, "long" subject string, and String {replaceValue} that do not contain '$' chars (yes, this fast path is very specialized). * Check for the location of the first match using StringIndexOf, and exit early if no match is found. * Finally build the return value, which is 'prefix + replacement + suffix', where replacement is either the result of calling {replaceValue} (if it is callable), or GetSubstitution(ToString({replaceValue})) otherwise. There's several spots that could be improved. StringIndexOf currently calls into C++ runtime for all but the simple 1-byte, 1-char {searchValue} case. We need to finally add support for remaining cases. The runtime call to GetSubstitution can be skipped if the replacer string does not contain any '$' syntax. This CL handles that case. BUG= Review-Url: https://codereview.chromium.org/2813843002 Cr-Commit-Position: refs/heads/master@{#44606}
-
Sathya Gunasekaran authored
This change mirrors the semantics for derived class constructors. This change doesn't affect non class constructors. This change could potentially break web compat. More details: https://github.com/tc39/ecma262/pull/469 Bug=v8:5536 Change-Id: I519599949523733332d0b35e4f8d9ecb01cac495 Reviewed-on: https://chromium-review.googlesource.com/461225Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#44594}
-
mtrofin authored
Today, the semantics of: WebAssembly.instantiate and WebAssembly.compile().then(new WebAssemblyInstance) are subtly different, to the point where attempting the proposed change uncovered bugs. In the future, it's possible that .instantiate actually have different semantics - if we pre-specialized to the provided ffi, for example. Right now that's not the case. This CL: - gets our implementation closer to what developers may write using the compile -> new Instance alternative, in particular wrt promise creation. By reusing code paths, we uncover more bugs, and keep maintenance cost lower. - it gives us the response-based WebAssembly.instantiate implicitly. Otherwise, we'd need that same implementation on the blink side. The negative is maintenance: imagine if the bugs I mentioned could only be found when running in Blink. BUG=chromium:697028 Review-Url: https://codereview.chromium.org/2806073002 Cr-Commit-Position: refs/heads/master@{#44592}
-
- 11 Apr, 2017 3 commits
-
-
littledan authored
The goal of this patch was to refactor NumberFormat parameter handling to be usable by a PluralRules implementation. Along the way, I found and fixed a couple minor issues where options handling differed from the specification, and removed some dead code. Regression tests are added as test262 tests. With this change, the overall flow more closely resembles the specification plus this editorial change which is out for review: https://github.com/tc39/ecma402/pull/130/files BUG=v8:6015,v8:6016 R=yangguo,jungshik Review-Url: https://codereview.chromium.org/2717613005 Cr-Commit-Position: refs/heads/master@{#44571}
-
gsathya authored
This patch implements the runtime semantics of dynamic import. We create a new ASTNode so that we can pass the JSFunction closure() to the runtime function from which we get the script_url. d8 implements the embedder logic required to load and evaluate the modules. The API is mostly implemented as specified. BUG=8:5785 Review-Url: https://codereview.chromium.org/2703563002 Cr-Commit-Position: refs/heads/master@{#44551}
-
aseemgarg authored
BUG=v8:4614 R=binji@chromium.org,jarin@chromium.org Review-Url: https://codereview.chromium.org/2799863002 Cr-Commit-Position: refs/heads/master@{#44542}
-