- 12 Jan, 2016 1 commit
-
-
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 4 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}
-
zhengxing.li authored
port 47502a23 (r32381) original commit message: Previously all contexts had a link to the global object, but what is required in most cases (except for the global load, store and delete case) is the native context. This also removes the second dummy global object that was still linked to every native context. We will add a different mechanism to ensure that builtins do not pollute the actual global object during bootstrapping. Drive-by-fix: Unify some MacroAssembler magic and drop obsolete stuff. BUG= Review URL: https://codereview.chromium.org/1481353002 Cr-Commit-Position: refs/heads/master@{#32387}
-
- 27 Nov, 2015 3 commits
-
-
jochen authored
Requires passing an explicit Isolate* to a bunch of static Assembler methods. BUG=v8:2487 R=yangguo@chromium.org,jkummerow@chromium.org LOG=n Review URL: https://codereview.chromium.org/1474323002 Cr-Commit-Position: refs/heads/master@{#32376}
-
zhengxing.li authored
port 199bbdb4 (r32351) original commit message: Moves all files related to AST and scopes into ast/, and all files related to scanner & parser to parsing/. Also eliminates a couple of spurious dependencies. BUG= Review URL: https://codereview.chromium.org/1476353002 Cr-Commit-Position: refs/heads/master@{#32358}
-
zhengxing.li authored
port d3e5db04 (r32336) original commit message: Up until now we sometimes pass Smi 0 around as closure and expect the runtime to translate that appropriately. But we need to be careful in some places to not confuse the Smi 0 with a real closure. However, we could instead just pass the correct closure extracted from the native context. This addresses three long-standing TODOs in the JSTypedLowering pass. Drive-by-fix: Further unify error message reporting for ToObject (we had a special message in case of ToObject error in with context creation). BUG= Review URL: https://codereview.chromium.org/1474243002 Cr-Commit-Position: refs/heads/master@{#32356}
-
- 26 Nov, 2015 1 commit
-
-
rossberg authored
Moves all files related to AST and scopes into ast/, and all files related to scanner & parser to parsing/. Also eliminates a couple of spurious dependencies. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1481613002 Cr-Commit-Position: refs/heads/master@{#32351}
-
- 25 Nov, 2015 4 commits
-
-
bmeurer authored
ES6 section 12.2.8.1 states that flags for regular expression literals must be checked during parsing and invalid flags are early errors. This change adapts the Scanner and (Pre)Parser to act according to the spec. This is also a prerequisite to unify the handling of literal creation (for Objects, Arrays, Regexps, and at some point Classes). R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1472323002 Cr-Commit-Position: refs/heads/master@{#32273}
-
bmeurer authored
This is the initial step towards refactoring the regexp literation creation code to make it less obscure and more similar to the mechanism we use to create array and object literals. There's now a new runtime entry %CreateRegExpLiteral with the same interface as the entries for array and object literals, except that we still pass the flags as string. Instead of embedding the hand written native to clone JSRegExp instances we now have a FastCloneRegExpStub, which behaves similar to the other FastCloneShallowArrayStub and FastCloneShallowObjectStub that we already had. R=mlippautz@chromium.org, yangguo@chromium.org Review URL: https://codereview.chromium.org/1475823003 Cr-Commit-Position: refs/heads/master@{#32255}
-
zhengxing.li authored
port 1b1db135 (r32220) original commit message: Change the runtime entries and their associated code stubs for object and array literal creation to take the closure instead of the raw literals pointer. This is way easier to deal with (and cleaner) in TurboFan. BUG= Review URL: https://codereview.chromium.org/1472273002 Cr-Commit-Position: refs/heads/master@{#32244}
-
zhengxing.li authored
port 9846f386 (r32205) original commit message: The literal index is being pushed onto the stack while evaluating the non-constant subexpressions, but never used in fullcodegen (and hence not used in the optimizing compilers). BUG= Review URL: https://codereview.chromium.org/1477673002 Cr-Commit-Position: refs/heads/master@{#32241}
-
- 24 Nov, 2015 1 commit
-
-
zhengxing.li authored
port 374b6ea2 (r32172) original commit message: There's no point in collecting feedback for super constructor calls, because in all (interesting) cases we can gather (better) feedback from other sources (i.e. via inlining or via using a LOAD_IC to get to the [[Prototype]] of the target). So CallConstructStub is now only used for new Foo(...args) sites where we want to collect feedback in the baseline compiler. The optimizing compilers, Reflect.construct and super constructor calls use the Construct builtin directly, which allows us to remove some weird code from the CallConstructStub (and opens the possibility for more code sharing with the CallICStub, maybe even going for a ConstructICStub). Also remove the 100% redundant HCallNew instruction, which is just a wrapper for the Construct builtin anyway (indirectly via the CallConstructStub). Drive-by-fix: Drop unused has_function_cache bit on Code objects. BUG= Review URL: https://codereview.chromium.org/1471193002 Cr-Commit-Position: refs/heads/master@{#32197}
-
- 18 Nov, 2015 3 commits
-
-
zhengxing.li authored
port 14ec485c (r32044) original commit message: BUG= Review URL: https://codereview.chromium.org/1457673003 Cr-Commit-Position: refs/heads/master@{#32073}
-
zhengxing.li authored
port e75e6254 (r32040) original commit message: BUG= Review URL: https://codereview.chromium.org/1461533002 Cr-Commit-Position: refs/heads/master@{#32068}
-
zhengxing.li authored
port 07c1d181 (r32023) original commit message: BUG= Review URL: https://codereview.chromium.org/1458633003 Cr-Commit-Position: refs/heads/master@{#32067}
-
- 16 Nov, 2015 1 commit
-
-
adamk authored
All uses of Token::INIT also have access to the relevant VariableMode, so there's no reason to have more than one token representing an initializing assignment. Review URL: https://codereview.chromium.org/1431873006 Cr-Commit-Position: refs/heads/master@{#32016}
-