- 04 Feb, 2016 1 commit
-
-
adamk authored
Adds a new runtime function, %DefineDataPropertyInLiteral, which takes a fifth argument specifying whether the property and value are syntactically such that the value is a function (or class) literal that should have its name set at runtime. The new runtime call also allows us to eliminate the now-redundant %DefineClassMethod runtime function. This should get much less ugly once we can desugar the "dynamic" part of object literals in the parser (but that work is currently blocked on having a performant way of desugaring literals). BUG=v8:3699, v8:3761 LOG=n Review URL: https://codereview.chromium.org/1626423003 Cr-Commit-Position: refs/heads/master@{#33756}
-
- 02 Feb, 2016 1 commit
-
-
bmeurer authored
There's no point in having %_IsFunction as inline intrinsic, as it is only used in non performance critical code, which is already full of runtime calls anyway, so %IsFunction will do the trick as well. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1658123002 Cr-Commit-Position: refs/heads/master@{#33660}
-
- 29 Jan, 2016 1 commit
-
-
bmeurer authored
If we deoptimize from TurboFan or Crankshaft into the body of a for-in loop and that for-in mode then switches to slow mode (i.e. has to call %ForInFilter), we have to record that feedback, because otherwise we might actually OSR into that loop assuming that it's fast mode still, or even worse recompile the function later when we call it again w/o having rerun the for-in loop in fullcodegen from the beginning (where was previously the only place we could learn). R=mstarzinger@chromium.org BUG=v8:3650 LOG=n Review URL: https://codereview.chromium.org/1638303008 Cr-Commit-Position: refs/heads/master@{#33612}
-
- 28 Jan, 2016 1 commit
-
-
neis authored
The body of a generator function can now refer to the generator's input value via a new "function.sent" expression. We extend the proposal at https://github.com/allenwb/ESideas/blob/master/Generator%20metaproperty.md in the obvious way to also apply to GeneratorResumeAbrupt. This will enable us to desugar yield*. The new syntax is behind a new --harmony-function-sent flag. BUG=v8:4700 LOG=n Review URL: https://codereview.chromium.org/1620253003 Cr-Commit-Position: refs/heads/master@{#33574}
-
- 27 Jan, 2016 2 commits
-
-
zhengxing.li authored
port 6131ab1e (r33509) original commit message: This CL implements PrepareForTailCall() mentioned in ES6 spec for full codegen, Crankshaft and Turbofan. When debugger is active tail calls are disabled. Tail calling can be enabled by --harmony-tailcalls flag. BUG= Review URL: https://codereview.chromium.org/1637163003 Cr-Commit-Position: refs/heads/master@{#33549}
-
neis authored
In a generator function, the parser rewrites a return statement into a "final" yield. A final yield used to close the generator, which was incorrect because the return may occur inside a try-finally clause and so the generator may not yet terminate. BUG= Review URL: https://codereview.chromium.org/1634553002 Cr-Commit-Position: refs/heads/master@{#33537}
-
- 25 Jan, 2016 3 commits
-
-
bmeurer authored
Cleanup %ForInPrepare runtime entry, and unify common logic with %ForInEnumerate (renamed from %GetPropertyNamesFast). Also introduce a TupleType to properly type JSForInPrepare and its projections w/o special hacks in the Typer. And fix %ForInNext and JSForInNext to be consistent with fullcodegen again (after the proxy refactorings last quarter). R=jarin@chromium.org BUG=v8:3650 LOG=n Review URL: https://codereview.chromium.org/1631583002 Cr-Commit-Position: refs/heads/master@{#33487}
-
zhengxing.li authored
port a0878333(r33460) original commit message: We already had hand-written optimized code for %_ToName in fullcodegen, but the optimizing compilers always went to the runtime for %_ToName, which is pretty bad for many of our builtins. So this CL moves the existing native code to a ToNameStub (similar to the existing ToStringStub), and uses the ToNameStub consistently in all compilers to actually implement %_ToName. BUG= Review URL: https://codereview.chromium.org/1622793006 Cr-Commit-Position: refs/heads/master@{#33483}
-
bmeurer authored
Now TurboFan always uses the newly introduced %ForInPrepare, no matter whether baseline is the interpreter or fullcodegen. For fullcodegen, we introduce a new PrepareId bailout point for this purpose. Drive-by-fix: Avoid the NoObservableSideEffectsScope in Crankshaft and use the PrepareId bailout point instead. R=jarin@chromium.org BUG=v8:3650 LOG=n Review URL: https://codereview.chromium.org/1630523002 Cr-Commit-Position: refs/heads/master@{#33480}
-
- 21 Jan, 2016 1 commit
-
-
zhengxing.li authored
port f48bf12f (r33426) original commit message: The PrepareId bailout location was used incorrectly in Crankshaft and, as it turns out, is not required anyway (once you do it right). Also there was some premature optimization going on with the CheckEnumCache (trying to load null from roots only once), plus we can be smarter about the null/undefined check anyway. The idea behind this changes is to prepare unification of the two different ForInPrepare implementations that we now have, with the end result being that we only use the new implementation that was recently added for the interpreter. BUG= Review URL: https://codereview.chromium.org/1611113002 Cr-Commit-Position: refs/heads/master@{#33428}
-
- 19 Jan, 2016 1 commit
-
-
nikolaos authored
After 1564083002, spread expressions are desugared and should not survive in the AST after parsing. This patch removes dead code related to this. It also eliminates the kSpread bailout reason and the concat_iterable_to_array_builtin. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1592713002 Cr-Commit-Position: refs/heads/master@{#33385}
-
- 12 Jan, 2016 4 commits
-
-
titzer authored
Change the CompilationInfo::IsCodePreAgingActive() predicate to CompilationInfo::GeneratePreagingPrologue() and handle the case of WASM functions, which should not be aged. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1577193003 Cr-Commit-Position: refs/heads/master@{#33232}
-
bmeurer authored
This migrates the remaining Date builtins to C++ and removes obsolete intrinsics and JavaScript wrappers. This reduces the overhead imposed by the Date builtins, and will allow us to optimize them later in the TurboFan compiler, while the interpreter doesn't need to worry about them. R=yangguo@chromium.org BUG=chromium:576574 LOG=n Committed: https://crrev.com/1e51af1a5c80b1650de47dd4bc8f846fa2d85281 Cr-Commit-Position: refs/heads/master@{#33228} Review URL: https://codereview.chromium.org/1579613002 Cr-Commit-Position: refs/heads/master@{#33231}
-
machenbach authored
Revert of [builtins] Refactor the remaining Date builtins. (patchset #2 id:20001 of https://codereview.chromium.org/1579613002/ ) Reason for revert: [Sheriff] Breaks https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%20debug/builds/5711 Original issue's description: > [builtins] Refactor the remaining Date builtins. > > This migrates the remaining Date builtins to C++ and removes obsolete > intrinsics and JavaScript wrappers. This reduces the overhead imposed > by the Date builtins, and will allow us to optimize them later in the > TurboFan compiler, while the interpreter doesn't need to worry about > them. > > R=yangguo@chromium.org > BUG=chromium:576574 > LOG=n > > Committed: https://crrev.com/1e51af1a5c80b1650de47dd4bc8f846fa2d85281 > Cr-Commit-Position: refs/heads/master@{#33228} TBR=yangguo@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:576574 Review URL: https://codereview.chromium.org/1574223002 Cr-Commit-Position: refs/heads/master@{#33230}
-
bmeurer authored
This migrates the remaining Date builtins to C++ and removes obsolete intrinsics and JavaScript wrappers. This reduces the overhead imposed by the Date builtins, and will allow us to optimize them later in the TurboFan compiler, while the interpreter doesn't need to worry about them. R=yangguo@chromium.org BUG=chromium:576574 LOG=n Review URL: https://codereview.chromium.org/1579613002 Cr-Commit-Position: refs/heads/master@{#33228}
-
- 07 Jan, 2016 1 commit
-
-
zhengxing.li authored
port a94d6d6e (r33108) original commit message: The mode requires an extra register, and since we aren't supporting it now, we can dispense with it. BUG= Review URL: https://codereview.chromium.org/1561943002 Cr-Commit-Position: refs/heads/master@{#33147}
-
- 05 Jan, 2016 1 commit
-
-
zhengxing.li authored
port 82ca2a41(r33084) original commit message: This is preferable because in TurboFan we need to call it, and can't pass untagged external pointers on the stack. BUG= Review URL: https://codereview.chromium.org/1557283002 Cr-Commit-Position: refs/heads/master@{#33102}
-
- 04 Jan, 2016 1 commit
-
-
jarin authored
BUG=572409 LOG=n Review URL: https://codereview.chromium.org/1555023002 Cr-Commit-Position: refs/heads/master@{#33078}
-
- 30 Dec, 2015 1 commit
-
-
cbruni authored
counts specified in runtime.h. In the vast majority of the cases when we call into the runtime we use the default number of arguments. Hence, there is not need to specify it again. This CL also removes TailCallExternalReference as there were no users. BUG= Review URL: https://codereview.chromium.org/1553703002 Cr-Commit-Position: refs/heads/master@{#33066}
-
- 28 Dec, 2015 1 commit
-
-
zhengxing.li authored
port 97def807 (r33044) original commit message: According to the ES2015 specification, bound functions are exotic objects, and thus don't need to be implemented as JSFunctions. So we introduce a new JSBoundFunction type to represent bound functions and make them optimizable. This already improves the performance of calling or constructing bound functions by 10-100x depending on the use case because we avoid the crazy dance between JavaScript and C++ that was implemented in v8natives.js previously. There's still room for improvement in the performance of actually creating bound functions, which is also relevant in practice, but we already have a plan how to accomplish that later. The mips/mips64 ports were contributed by akos.palfi@imgtec.com. BUG= Review URL: https://codereview.chromium.org/1548253002 Cr-Commit-Position: refs/heads/master@{#33046}
-
- 24 Dec, 2015 1 commit
-
-
zhengxing.li authored
port d3f074b2 (r33024) original commit message: We'll be able to optimize rest parameters in TurboFan similarly to the arguments array. This CL restores the previous behavior, and a follow-on will enable TurboFan optimization. (TBR for rossberg since we discussed the revert beforehand. The only changes are a few lines related to tests and rebasing.) BUG= Review URL: https://codereview.chromium.org/1545053002 Cr-Commit-Position: refs/heads/master@{#33034}
-
- 17 Dec, 2015 1 commit
-
-
zhengxing.li authored
port aafc3e54 (r32926) original commit message: The FIRST-LAST_NONCALLABLE_SPEC_OBJECT_TYPE range was accidentially used in field type tracking, where we should check for JSReceiver instead (there's no need to exclude JSProxy or JSFunction from tracking). And the use in %_ClassOf was actually wrong and didn't match the C++ implementation in JSReceiver::class_name() anymore. Now it's consistent again. BUG= Review URL: https://codereview.chromium.org/1537613002 Cr-Commit-Position: refs/heads/master@{#32937}
-
- 16 Dec, 2015 1 commit
-
-
bmeurer authored
Following up on https://crrev.com/1517243002, we use the %_GetSuperConstructor consistently for all super calls now (inlining the intrinsic code in fullcodegen). R=mstarzinger@chromium.org BUG=v8:3330 LOG=n Review URL: https://codereview.chromium.org/1529113002 Cr-Commit-Position: refs/heads/master@{#32890}
-
- 15 Dec, 2015 1 commit
-
-
zhengxing.li authored
X87: [proxy] fixing for-in for proxies, fixing harmony/proxy.js tests, improving error messages and some drive-by fixes. port df2a9297 (r32801) original commit message: BUG= Review URL: https://codereview.chromium.org/1523993003 Cr-Commit-Position: refs/heads/master@{#32853}
-
- 14 Dec, 2015 1 commit
-
-
bmeurer authored
Since the parser now desugars super constructor calls to simple primitives, we can also easily optimize those in fullcodegen w/ just a few simple lines of native code per architecture. This code in particular should be fast, so it seems worth the code in fullcodegen. BUG=v8:3330 LOG=n Review URL: https://codereview.chromium.org/1524673002 Cr-Commit-Position: refs/heads/master@{#32823}
-
- 11 Dec, 2015 3 commits
-
-
bmeurer authored
Instead desugar the default constructor for derived classes using the same mechanism we use for normal super constructor calls. TBR=rossberg@chromium.org R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1517243002 Cr-Commit-Position: refs/heads/master@{#32810}
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1517673002 Cr-Commit-Position: refs/heads/master@{#32806}
-
cbruni authored
[proxy] fixing for-in for proxies, fixing harmony/proxy.js tests, improving error messages and some drive-by fixes BUG=v8:1543 LOG=n patch from issue 1519473002 at patchset 1 (http://crrev.com/1519473002#ps1) Review URL: https://codereview.chromium.org/1516843002 Cr-Commit-Position: refs/heads/master@{#32801}
-
- 07 Dec, 2015 2 commits
-
-
zhengxing.li authored
X87: Revert of Provide call counts for constructor calls, surface them as a vector IC. (patchset #4 id:60001 of https://codereview.chromium.org/1476413003/ ) port e89e08ca (r32599) original commit message: Reason for revert: Seems to be (mostly) responsible for the most recent Speedometer regression, not 100% sure. Let's see what the bots have to say. Original issue's description: > Provide call counts for constructor calls, surface them as a vector IC. > > CallIC and CallConstructStub look so alike, at least in the feedback they gather even if the implementation differs...and CallIC has such a nice way of surfacing the feedback (CallICNexus), that ther > > BUG= > > Committed: https://crrev.com/66d5a9df62da458a51e8c7ed1811dc9660f4f418 > Cr-Commit-Position: refs/heads/master@{#32452} additional description: Revert "X87: Provide call counts for constructor calls, surface them as a vector IC." as r32599 does This reverts commit 54a9d349. BUG= Review URL: https://codereview.chromium.org/1506723002 Cr-Commit-Position: refs/heads/master@{#32638}
-
zhengxing.li authored
port 440a42b7 (r32548) original commit message: This passes the new.target value in a register instead of through a side-channel via the construct stub. Note that this marks the last consumer of said side-channel and the special slot in the construct stub frame can be removed as a follow-up. BUG= Review URL: https://codereview.chromium.org/1503923002 Cr-Commit-Position: refs/heads/master@{#32635}
-
- 04 Dec, 2015 1 commit
-
-
cbruni authored
BUG=v8:1543 LOG=N Review URL: https://codereview.chromium.org/1496503002 Cr-Commit-Position: refs/heads/master@{#32616}
-
- 03 Dec, 2015 2 commits
-
-
zhengxing.li authored
port 411c5b7f (r32524) original commit message: Also remove the ResultMode from ToBooleanStub and always return true or false and use the same mechanism in fullcodegen. This is in preparation for adding ToBoolean hints to TurboFan. Drive-by-fix: We can use the power of the ToBooleanIC in TurboFan now that the ResultMode is gone (and the runtime always returns true or false from the miss handler). BUG= Review URL: https://codereview.chromium.org/1500483002 Cr-Commit-Position: refs/heads/master@{#32543}
-
zhengxing.li authored
port 531dde9f (r32516) original commit message: The new step-in implementation no longer tries to predict the step-in target, so we don't need the arguments count nor call type anymore. BUG= Review URL: https://codereview.chromium.org/1493993002 Cr-Commit-Position: refs/heads/master@{#32540}
-
- 02 Dec, 2015 2 commits
-
-
yangguo authored
The new step-in implementation no longer tries to predict the step-in target, so we don't need the arguments count nor call type anymore. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1484893003 Cr-Commit-Position: refs/heads/master@{#32516}
-
zhengxing.li authored
port 66d5a9df (r32452) original commit message: CallIC and CallConstructStub look so alike, at least in the feedback they gather even if the implementation differs...and CallIC has such a nice way of surfacing the feedback (CallICNexus), that there BUG= Review URL: https://codereview.chromium.org/1491063003 Cr-Commit-Position: refs/heads/master@{#32488}
-
- 01 Dec, 2015 2 commits
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1479233002 Cr-Commit-Position: refs/heads/master@{#32470}
-
zhengxing.li authored
port 9e644881 (r32407) original commit message: This way we avoid the %_IsSmi magic that is required in TurboFan to (efficiently) check abitrary context slots for smi 0. Checking against "the hole" is common in the AstGraphBuilder and "the hole" is also used to mark other context slots as not initialized. BUG= Review URL: https://codereview.chromium.org/1486913002 Cr-Commit-Position: refs/heads/master@{#32441}
-
- 30 Nov, 2015 3 commits
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1483933002 Cr-Commit-Position: refs/heads/master@{#32403}
-
neis authored
This depends on issue 1476403004. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1479293002 Cr-Commit-Position: refs/heads/master@{#32401}
-
neis authored
Use {FIRST,LAST}_JS_RECEIVER_TYPE instead. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1486563002 Cr-Commit-Position: refs/heads/master@{#32393}
-