- 15 Feb, 2017 23 commits
-
-
caitp authored
Some of these functions are invoked by BytecodeGenerator due to parser desugarings, and moving the context indices cause BytecodeExpectationsPrinter to render them as something useful/meaningful. BUG= R=jgruber@chromium.org, adamk@chromium.org Review-Url: https://codereview.chromium.org/2695323002 Cr-Commit-Position: refs/heads/master@{#43225}
-
caitp authored
When --harmony-async-iteration is enabled, it is now possible to use the for-await-of loop, which uses the Async Iteration protocol rather than the ordinary ES6 Iteration protocol. the Async-from-Sync Iterator object is not implemented in this CL, and so for-await-of loops will abort execution if the iterated object does not have a Symbol.asyncIterator() method. Async-from-Sync Iterators are implemented seperately in https://codereview.chromium.org/2645313003/ BUG=v8:5855, v8:4483 R=neis@chromium.org, littledan@chromium.org, adamk@chromium.org Review-Url: https://codereview.chromium.org/2637403008 Cr-Commit-Position: refs/heads/master@{#43224}
-
Michael Lippautz authored
BUG= Change-Id: I7215f298d7da4f5104449cc9198588801642bba1 Reviewed-on: https://chromium-review.googlesource.com/443126Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43223}
-
Peter Marshall authored
The mips64 implementation always ended up in the slowpath due to some loads that were the wrong width, so that is also fixed here. BUG=v8:5974 Change-Id: Ie448a1fab5b7fca87597c5a1bf75443864e30c28 Reviewed-on: https://chromium-review.googlesource.com/443247 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43222}
-
littledan authored
These experimental natives previously only installed functions to the appropriate parent. In this patch, the exports container is retained so that the bootstrapper may install the functions instead. This change is intended to reduce startup time. SharedArrayBuffer retains some experimental natives exported from JS; this may be addressed in a follow-on patch. The patch includes some minor cleanup of the bootstrap process by removing "experimental exports", which was unused. R=yangguo@chromium.org BUG=v8:5880 CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng Review-Url: https://codereview.chromium.org/2683083003 Cr-Commit-Position: refs/heads/master@{#43221}
-
Marja Hölttä authored
- Different places used is_simple to mean different things; renamed one. - No need to do Scope::SetHasNoSimpleParameters multiple times. - Normally we create VAR parameters with a name, or (for destructuring parameters), TEMPORARY parmeters with an empty name. *Except* for destructuring rest parameters; then we create VAR a parameter with an empty name. This CL makes the empty-named parameter TEMPORARY instead of VAR. - This makes it clear that Parser::DeclareFormalParameters declares exactly those params which Parser::BuildParamerterInitializationBlock doesn't declare. - This unification doesn't change any functionality, but it makes sense to do since I'll need to make PreParser emulate what Parser does; this way I don't need to emulate the weird behavior. BUG=v8:5501 Change-Id: Ifa6c116bc5908f4e03a36e74f47558888d1582bd Reviewed-on: https://chromium-review.googlesource.com/443106Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#43220}
-
bbudge authored
LOG=N BUG=v8:4124, v8:5948 Review-Url: https://codereview.chromium.org/2694063005 Cr-Commit-Position: refs/heads/master@{#43219}
-
Michael Starzinger authored
This handles all arithmetic binary operations except addition during the early type-hint lowering (i.e. during graph construction). We still use static type information to potentially further reduce the speculative operations down to pure operations during the typed lowering phase. R=bmeurer@chromium.org Change-Id: I8b93fd7c46ec8e5b81234a49624d503520c3d082 Reviewed-on: https://chromium-review.googlesource.com/443105Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43218}
-
cwhan.tunz authored
- Add benchmark for sorting of Float64Array - Rename existing typedarray.js to copywithin.js BUG=v8:5953 R=bmeurer@chromium.org, caitp@chromium.org, petermarshall@chromium.org Review-Url: https://codereview.chromium.org/2691423003 Cr-Commit-Position: refs/heads/master@{#43217}
-
clemensh authored
This CL changes the datastructure to store live variables from a std::bitset<256> to a std::vector<bool> to support an arbitrary number of locals. Unfortunately, std::vector<bool> does not define |= and &= operators, so I added them on the Environment class. R=vegorov@chromium.org, mstarzinger@chromium.org, machenbach@chromium.org BUG=v8:5970 Review-Url: https://codereview.chromium.org/2694103005 Cr-Commit-Position: refs/heads/master@{#43216}
-
clemensh authored
Isolate::Dispose calls i::Isolate::TearDown, which again calls i::Isolate::DumpAndResetCompilationStats. We need this to be called on each exit path for dumping runtime call stats. R=cbruni@chromium.org, bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2694933004 Cr-Commit-Position: refs/heads/master@{#43215}
-
jbroman authored
The API class is v8::ArrayBuffer; JSArrayBuffer is the internal counterpart, but its name should not appear in a public API comment. Review-Url: https://codereview.chromium.org/2692853007 Cr-Commit-Position: refs/heads/master@{#43214}
-
caitp authored
- Removes shared InnerArrayCopyWithin JS builtin from src/js/array.js - Implements %TypedArray%.prototype.copyWithin as a C++ builtin, which relies on std::memmove rather than accessing individual eleements. - Fixes the case where copyWithin is invoked on a TypedArray with a detached buffer. - Add tests to ensure that +/-Infinity (for all 3 parameters) is handled correctly by the algorithm The C++ version gets through the benchmark more than 25000 times as quickly as the JS implementation. BUG=v8:5925, v8:5929, v8:4648 R=cbruni@chromium.org, adamk@chromium.org, littledan@chromium.org Review-Url: https://codereview.chromium.org/2697593002 Cr-Commit-Position: refs/heads/master@{#43213}
-
jkummerow authored
Down from 16 * kPointerSize. Modern compilers have good inlining support for memcpy(), so our custom C++ loop is only beneficial for very short loops (if at all). BUG=v8:5395 Review-Url: https://codereview.chromium.org/2438583002 Cr-Commit-Position: refs/heads/master@{#43212}
-
bmeurer authored
Make use of the previously introduced String feedback for compare operations in TurboFan. R=jarin@chromium.org BUG=v8:5267,v8:5400 Committed: https://crrev.com/5d4253ecfb6ddcbbd7eb5654e728efa9559284a2 Cr-Original-Commit-Position: refs/heads/master@{#41163} Review-Url: https://codereview.chromium.org/2523463002 Cr-Commit-Position: refs/heads/master@{#43211}
-
jgruber authored
Instead of calling the LoadGlobalIC stub, bytecode handlers now inline logic for LoadGlobalIC. The LoadGlobalICData case takes a fast path which omits name loading and frame construction. BUG=v8:5917 Review-Url: https://codereview.chromium.org/2684973002 Cr-Commit-Position: refs/heads/master@{#43210}
-
Igor Sheludko authored
... and don't clear ICs during GC. The IC clearing used to prevent memory leaks but it's not necessary anymore because all the handlers that need to embed objects already use weak cells. This CL unblocks inlining of IC dispatchers into bytecode handlers. BUG=v8:5917 Change-Id: I229b9ba8dba44f431dfbe8ac5370d855e3e84dd6 Reviewed-on: https://chromium-review.googlesource.com/442127 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#43209}
-
Michael Starzinger authored
This allows part of typed lowering that is solely based on type-hints to run as part of the graph construction. The lowering in question does not inspect types and hence doesn't require the typer to have run before. We insert the speculative simplied-level operations in favor of the generic JavaScript-level variants. R=bmeurer@chromium.org Change-Id: I5f0549fc1e4ff607622ee9059e6232a32f77db2e Reviewed-on: https://chromium-review.googlesource.com/442584Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43208}
-
yangguo authored
Use d8 with --lcov=<file> to append coverage info to a file. The result can be fed into genhtml(1). R=jgruber@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2695823003 Cr-Commit-Position: refs/heads/master@{#43207}
-
ishell@chromium.org authored
BUG= Change-Id: I859fef6b18e51cca80343a89e2b6f38eee95d408 Reviewed-on: https://chromium-review.googlesource.com/442428 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#43206}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/0fdcf96..5af1827 Rolling v8/test/wasm-js: https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+log/ab1673f..680fa9a Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/7f34a59..7336c94 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/404d542..7764539 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I915a059ba5e6abbfee4bfc2887477994b80243ac Reviewed-on: https://chromium-review.googlesource.com/442905Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#43205}
-
vabr authored
ParserBase::is_any_identifier currently does not recognise Token::ESCAPED_STRICT_RESERVED_WORD as an identifier. This seems different from what ParserBase::ParseIdentifierName does, and also prevents "l\u0065t", unlike "let", from becoming a label. This CL extends is_any_identifier to also accept ESCAPED_STRICT_RESERVED_WORD. BUG=v8:5692 Review-Url: https://codereview.chromium.org/2695973003 Cr-Commit-Position: refs/heads/master@{#43204}
-
vabr authored
The method ExpressionUnexpectedToken is not referenced anywhere apart from its definition. This CL removes it. The association with the bug below is only through discovering the dead code when working on a fix for that bug. BUG=v8:5692 Review-Url: https://codereview.chromium.org/2688413009 Cr-Commit-Position: refs/heads/master@{#43203}
-
- 14 Feb, 2017 17 commits
-
-
eholk authored
Previously we captured the PC before calling EnsureSpace in RecordProtectedInstruction. Sometimes EnsureSpace would resize and move the buffer, which would invalidate the previously captured PC and trip an assert when writing RelocInfo. With this change, we do not capture the PC until after we've ensured there's enough space, which ensures the PC will be valid. BUG= Review-Url: https://codereview.chromium.org/2690523003 Cr-Commit-Position: refs/heads/master@{#43202}
-
eholk authored
BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5507 Review-Url: https://codereview.chromium.org/2660903003 Cr-Original-Commit-Position: refs/heads/master@{#42821} Committed: https://chromium.googlesource.com/v8/v8/+/eb9b5edffb8c5acb0abdff0729901f95dbd3ccac Review-Url: https://codereview.chromium.org/2660903003 Cr-Commit-Position: refs/heads/master@{#43201}
-
clemensh authored
Use them to encode int32 constants properly. This reduces the generated wasm size in the unity benchmark from 21.6 MB to 16.8 MB (-22.2%). This hopefully also translates to increased performance especially on mobile because of lower memory usage. R=bradnelson@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2692943002 Cr-Commit-Position: refs/heads/master@{#43200}
-
ahaas authored
R=bmeurer@chromium.org, v8-arm-ports@googlegroups.com BUG=v8:5951 Review-Url: https://codereview.chromium.org/2685943003 Cr-Original-Commit-Position: refs/heads/master@{#43090} Committed: https://chromium.googlesource.com/v8/v8/+/c46ccef921ee754d60283d132b9d19f64ae7b1ff Review-Url: https://codereview.chromium.org/2685943003 Cr-Commit-Position: refs/heads/master@{#43199}
-
clemensh authored
because that's what it actually does. In the next step, I will introduce EmitVarInt again with the correct semantics, and use it in EmitI32Const and other places where we don't do proper varint encoding currently. R=bradnelson@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2694633003 Cr-Commit-Position: refs/heads/master@{#43198}
-
vabr authored
CreateNumberFormat of src/js/i18n.js implements http://www.ecma-international.org/ecma-402/1.0/#sec-11.1.1.1, but has a typo in step 33a. The spec says that the default value for minimumSignificantDigits should be 1, while the script set it to 0. This CL fixes that typo and adds a test for that. BUG=v8:5554 Review-Url: https://codereview.chromium.org/2694673003 Cr-Commit-Position: refs/heads/master@{#43197}
-
adamk authored
R=littledan@chromium.org, marja@chromium.org, vogelheim@chromium.org NOTRY=true Review-Url: https://codereview.chromium.org/2690123003 Cr-Commit-Position: refs/heads/master@{#43196}
-
Marja Hölttä authored
It's needed by code-stubs.h and it was defined in objects-inl.h. That cannot work without violating the include rules. BUG=v8:5402 R=mstarzinger@chromium.org Change-Id: Icb84b97de5622df8cf76e9fc4d117982901c99d9 Reviewed-on: https://chromium-review.googlesource.com/441845 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43195}
-
Ross McIlroy authored
BUG=v8:5203 Change-Id: Iee83ac42fc17bb455ea2104540d2d3bc60260a42 Reviewed-on: https://chromium-review.googlesource.com/441705Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#43194}
-
vabr authored
After https://github.com/tc39/ecma262/pull/642, Date.UTC no longer requires the month argument to be specified. The spec provides 0 as its default value. This CL updates the builtins-date.cc code to reflect that and drops the test suppression for test262/built-ins/Date/UTC/return-value. BUG=v8:5534 Review-Url: https://codereview.chromium.org/2689173003 Cr-Commit-Position: refs/heads/master@{#43193}
-
Ross McIlroy authored
Add the function literal to eager_literals before recursing into the literal. This ensures that the order of eager_literals reflects the order in which the functions will be called, which in-turn ensures it is compiled first by the compiler-dispatcher. BUG=v8:5203 Change-Id: I0e334a7d1ee93cf67936adbadd2883e40acb1cc5 Reviewed-on: https://chromium-review.googlesource.com/441825Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#43192}
-
Daniel Clifford authored
Change-Id: Id10be318965d7ec81af8fce8ec230557d3bf1369 Reviewed-on: https://chromium-review.googlesource.com/442126Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#43191}
-
Michael Achenbach authored
BUG=chromium:691954 NOTRY=true R=tandrii@chromium.org TBR=jarin@chromium.org Change-Id: Id57ed8206a19abb09a7e9835c876d3a932405658 Reviewed-on: https://chromium-review.googlesource.com/442424Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#43190}
-
Georg Neis authored
BUG= Change-Id: I4a5db9bc045a63e710d0115523ab23b98e7c7ae6 Reviewed-on: https://chromium-review.googlesource.com/442504Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#43189}
-
ishell@chromium.org authored
... and revert "[runtime] Mark maps created as a result of field type or representation generalization as migration targets." because it regresses performance of too many map checks in optimized code. BUG=v8:5444, chromium:680995 Change-Id: I84038d75425df3709a81e5fdcc6c0db32939060d Reviewed-on: https://chromium-review.googlesource.com/442125Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43188}
-
jbroman authored
The string will be internalized anyhow when the first object is instantiated, and since templates are eternal, the string will be eternal anyhow even if the template is never instantiated. Review-Url: https://codereview.chromium.org/2697683002 Cr-Commit-Position: refs/heads/master@{#43187}
-
mstarzinger authored
R=bmeurer@chromium.org TEST=unittests/JSTypedLoweringTest Review-Url: https://codereview.chromium.org/2694063003 Cr-Commit-Position: refs/heads/master@{#43186}
-