- 08 Jan, 2016 1 commit
-
-
bmeurer authored
There's no reason to have JavaScript wrappers for those accessors, since the meat is already in hand-written native code (via %_DateField). First step now to put them into native builtins. Next step will be to completely remove %_DateField. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1567353002 Cr-Commit-Position: refs/heads/master@{#33172}
-
- 05 Jan, 2016 1 commit
-
-
mvstanton authored
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/1559903003 Cr-Commit-Position: refs/heads/master@{#33108}
-
- 04 Jan, 2016 2 commits
-
-
mvstanton authored
This is preferable because in TurboFan we need to call it, and can't pass untagged external pointers on the stack. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1556913002 Cr-Commit-Position: refs/heads/master@{#33084}
-
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}
-
- 27 Dec, 2015 2 commits
-
-
bmeurer authored
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. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=chromium:535408, chromium:571299, v8:4629 LOG=n Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2 Cr-Commit-Position: refs/heads/master@{#33042} Review URL: https://codereview.chromium.org/1542963002 Cr-Commit-Position: refs/heads/master@{#33044}
-
bmeurer authored
Revert of [runtime] Introduce dedicated JSBoundFunction to represent bound functions. (patchset #14 id:260001 of https://codereview.chromium.org/1542963002/ ) Reason for revert: Breaks arm64 sim nosnap: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/805/steps/Check/logs/function-bind Original issue's description: > [runtime] Introduce dedicated JSBoundFunction to represent bound functions. > > 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. > > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel > BUG=chromium:535408, chromium:571299, v8:4629 > LOG=n > > Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2 > Cr-Commit-Position: refs/heads/master@{#33042} TBR=cbruni@chromium.org,hpayer@chromium.org,yangguo@chromium.org,akos.palfi@imgtec.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:535408, chromium:571299, v8:4629 Review URL: https://codereview.chromium.org/1552473002 Cr-Commit-Position: refs/heads/master@{#33043}
-
- 26 Dec, 2015 1 commit
-
-
bmeurer authored
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. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=chromium:535408, chromium:571299, v8:4629 LOG=n Review URL: https://codereview.chromium.org/1542963002 Cr-Commit-Position: refs/heads/master@{#33042}
-
- 23 Dec, 2015 1 commit
-
-
mvstanton authored
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.) TBR=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1537683002 Cr-Commit-Position: refs/heads/master@{#33024}
-
- 17 Dec, 2015 1 commit
-
-
Benedikt Meurer authored
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. R=yangguo@chromium.org BUG=chromium:535408 LOG=n Review URL: https://codereview.chromium.org/1535523003 . Cr-Commit-Position: refs/heads/master@{#32926}
-
- 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}
-
- 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}
-
- 04 Dec, 2015 2 commits
-
-
cbruni authored
BUG=v8:1543 LOG=N Review URL: https://codereview.chromium.org/1496503002 Cr-Commit-Position: refs/heads/master@{#32616}
-
bmeurer authored
Revert of Provide call counts for constructor calls, surface them as a vector IC. (patchset #4 id:60001 of https://codereview.chromium.org/1476413003/ ) 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 there is a request to make CallConstructStub look analogous. Enter ConstructICStub. > > BUG= > > Committed: https://crrev.com/66d5a9df62da458a51e8c7ed1811dc9660f4f418 > Cr-Commit-Position: refs/heads/master@{#32452} TBR=mvstanton@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1489413006 Cr-Commit-Position: refs/heads/master@{#32599}
-
- 03 Dec, 2015 1 commit
-
-
mstarzinger authored
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. R=bmeurer@chromium.org,yangguo@chromium.org TEST=mjsunit/es6/regress/regress-new-target-context Review URL: https://codereview.chromium.org/1492793002 Cr-Commit-Position: refs/heads/master@{#32548}
-
- 02 Dec, 2015 2 commits
-
-
bmeurer authored
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). R=mstarzinger@chromium.org BUG=v8:4583 LOG=n Review URL: https://codereview.chromium.org/1491223002 Cr-Commit-Position: refs/heads/master@{#32524}
-
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}
-
- 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}
-
mvstanton authored
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 is a request to make CallConstructStub look analogous. Enter ConstructICStub. BUG= Review URL: https://codereview.chromium.org/1476413003 Cr-Commit-Position: refs/heads/master@{#32452}
-
- 30 Nov, 2015 4 commits
-
-
bmeurer authored
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. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1484723003 Cr-Commit-Position: refs/heads/master@{#32407}
-
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}
-
- 27 Nov, 2015 4 commits
-
-
bmeurer authored
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. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel R=yangguo@chromium.org,mstarzinger@chromium.org Committed: https://crrev.com/d290f204938295bfecc5c8e645ccfcff6e80ddb8 Cr-Commit-Position: refs/heads/master@{#32375} Review URL: https://codereview.chromium.org/1480003002 Cr-Commit-Position: refs/heads/master@{#32381}
-
machenbach authored
Revert of [runtime] Replace global object link with native context link in all contexts. (patchset #3 id:40001 of https://codereview.chromium.org/1480003002/ ) Reason for revert: [Sheriff] Breaks: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/5472 Original issue's description: > [runtime] Replace global object link with native context link in all contexts. > > 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. > > R=yangguo@chromium.org > > Committed: https://crrev.com/d290f204938295bfecc5c8e645ccfcff6e80ddb8 > Cr-Commit-Position: refs/heads/master@{#32375} TBR=yangguo@chromium.org,mstarzinger@chromium.org,bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1478303002 Cr-Commit-Position: refs/heads/master@{#32377}
-
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}
-
bmeurer authored
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. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1480003002 Cr-Commit-Position: refs/heads/master@{#32375}
-
- 26 Nov, 2015 2 commits
-
-
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}
-
bmeurer authored
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). R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1475383002 Cr-Commit-Position: refs/heads/master@{#32336}
-
- 25 Nov, 2015 2 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}
-
- 24 Nov, 2015 2 commits
-
-
bmeurer authored
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. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1469833005 Cr-Commit-Position: refs/heads/master@{#32220}
-
bmeurer authored
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). R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1471893003 Cr-Commit-Position: refs/heads/master@{#32205}
-
- 23 Nov, 2015 1 commit
-
-
bmeurer authored
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. R=mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:4413, v8:4430 LOG=n Review URL: https://codereview.chromium.org/1469793002 Cr-Commit-Position: refs/heads/master@{#32172}
-
- 17 Nov, 2015 3 commits
-
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1453113002 Cr-Commit-Position: refs/heads/master@{#32044}
-
mvstanton authored
BUG= Review URL: https://codereview.chromium.org/1424153003 Cr-Commit-Position: refs/heads/master@{#32040}
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1442643009 Cr-Commit-Position: refs/heads/master@{#32023}
-