- 31 Mar, 2016 1 commit
-
-
verwaest authored
It for now only deals with fast-mode smi and object arrays with smi keys and internalized strings; and fast-mode named properties with an internalized key or symbol. BUG=v8:2472 LOG=n Review URL: https://codereview.chromium.org/1843613002 Cr-Commit-Position: refs/heads/master@{#35152}
-
- 30 Mar, 2016 1 commit
-
-
bmeurer authored
Migrate Math.ceil, Math.round and Math.trunc to TurboFan code stubs, similar to what we did with Math.floor, and make these builtins properly optimizable in TurboFan via appropriate simplified operators NumberCeil, NumberRound and NumberTrunc, which are intended to be reusable for ToInteger and ToLength optimizations that will be done in a followup CL. Also allows us to kill the funky %RoundNumber runtime function, which was quite heavy. Improve test coverage for Math.ceil and Math.trunc a lot, especially making sure that we also properly trigger the TurboFan builtin reducer case. R=jarin@chromium.org BUG=v8:4059 LOG=n Review URL: https://codereview.chromium.org/1841993002 Cr-Commit-Position: refs/heads/master@{#35135}
-
- 28 Mar, 2016 1 commit
-
-
bmeurer authored
This way we avoid the second deoptimization for the Math.floor and Math.ceil builtins when -0 is involved. We still deoptimize the inlined Crankshaft version in various cases, that's a separate issue. The algorithm used for implement CodeStubAssembler::Float64Floor is vaguely based on the fast math version used in the libm of various BSDs, but had to be reengineered to match the EcmaScript specification. R=epertoso@chromium.org BUG=v8:2890, v8:4059 LOG=n Review URL: https://codereview.chromium.org/1828253002 Cr-Commit-Position: refs/heads/master@{#35083}
-
- 22 Mar, 2016 1 commit
-
-
bmeurer authored
This CL adds support for builtins with JavaScript linkage written using the TurboFan CodeStubAssembler, but with a JSCall descriptor (which was already supported thanks to a previous patch by Ben Smith). As a first example, we convert the Math.sqrt builtin and thereby get rid of the %_MathSqrt intrinsic, which causes trouble for the representation selection pass in the JavaScript pipeline. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1824993002 Cr-Commit-Position: refs/heads/master@{#34989}
-
- 21 Mar, 2016 1 commit
-
-
mstarzinger authored
Now implemented as a builtin that delegates to the InstanceOfStub. That stub was parameterized to fallback to either Runtime_InstanceOf or to Runtime_OrdinaryHasInstance depending on the --harmony-instanceof flag. Once the feature stabilizes and the flag is no longer needed, we can get rid of this parameterization again. R=bmeurer@chromium.org BUG=v8:4447 LOG=n Review URL: https://codereview.chromium.org/1819813002 Cr-Commit-Position: refs/heads/master@{#34959}
-
- 08 Mar, 2016 1 commit
-
-
mstarzinger authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1773593002 Cr-Commit-Position: refs/heads/master@{#34572}
-
- 04 Mar, 2016 2 commits
-
-
machenbach authored
Revert of Reland "[api] Don't go to javascript to construct API functions" (patchset #1 id:1 of https://codereview.chromium.org/1756973002/ ) Reason for revert: [Sheriff] Breaks blink tests. Please fix upstream first. https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/5125 Original issue's description: > Reland "[api] Don't go to javascript to construct API functions" > > BUG= > R=verwaest@chromium.org > > Committed: https://crrev.com/d5d4f0b80f585878130bffb40ff8e960646823d8 > Cr-Commit-Position: refs/heads/master@{#34496} TBR=verwaest@chromium.org,bmeurer@chromium.org,jochen@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1767663002 Cr-Commit-Position: refs/heads/master@{#34502}
-
jochen authored
BUG= R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1756973002 Cr-Commit-Position: refs/heads/master@{#34496}
-
- 02 Mar, 2016 1 commit
-
-
machenbach authored
Revert of [api] Don't go to javascript to construct API functions (patchset #3 id:40001 of https://codereview.chromium.org/1756433002/ ) Reason for revert: [Sheriff] Breaks webkit unittests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/5043 Original issue's description: > [api] Don't go to javascript to construct API functions > > BUG= > R=bmeurer@chromium.org,verwaest@chromium.org > > Committed: https://crrev.com/21a5bfbd2ced6e4a3545bbde712630c0d8734c0b > Cr-Commit-Position: refs/heads/master@{#34411} TBR=bmeurer@chromium.org,verwaest@chromium.org,jochen@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1758623002 Cr-Commit-Position: refs/heads/master@{#34419}
-
- 01 Mar, 2016 1 commit
-
-
jochen authored
BUG= R=bmeurer@chromium.org,verwaest@chromium.org Review URL: https://codereview.chromium.org/1756433002 Cr-Commit-Position: refs/heads/master@{#34411}
-
- 29 Feb, 2016 1 commit
-
-
verwaest authored
This gets rid of the JavaScript wrapper. That way we can more quickly handle non-JSReceivers and indexed properties; and don't need to optimize the JavaScript wrapper either. BUG= Review URL: https://codereview.chromium.org/1742283002 Cr-Commit-Position: refs/heads/master@{#34356}
-
- 25 Feb, 2016 1 commit
-
-
bmeurer authored
Migrate Math.imul, Math.fround, Math.acos, Math.asin and Math.atan to C++ builtins, as these ones call into C++ anyway and so there's no need to have this extra wrapper around it. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1731543004 Cr-Commit-Position: refs/heads/master@{#34274}
-
- 24 Feb, 2016 2 commits
-
-
mythria authored
Revert of [Interpreter] Implements calls through CallICStub in the interpreter. (patchset #15 id:270001 of https://codereview.chromium.org/1688283003/ ) Reason for revert: It is not a good idea to call CallICStub from the builtin. It might be sensitive to the frame structure. Constructing a internal frame might cause problems. It is much better to inline the code related to the type feedback vector into the builtin. Original issue's description: > [Interpreter] Implements calls through CallICStub in the interpreter. > > Calls are implemented through CallICStub to collect type feedback. Adds > a new builtin called InterpreterPushArgsAndCallIC that pushes the > arguments onto stack and calls CallICStub. > > Also adds two new bytecodes CallIC and CallICWide to indicate calls have to > go through CallICStub. > > MIPS port contributed by balazs.kilvady. > > BUG=v8:4280, v8:4680 > LOG=N > > Committed: https://crrev.com/20362a2214c11a0f2ea5141b6a79e09458939cec > Cr-Commit-Position: refs/heads/master@{#34244} TBR=rmcilroy@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280, v8:4680 Review URL: https://codereview.chromium.org/1731253003 Cr-Commit-Position: refs/heads/master@{#34252}
-
mythria authored
Calls are implemented through CallICStub to collect type feedback. Adds a new builtin called InterpreterPushArgsAndCallIC that pushes the arguments onto stack and calls CallICStub. Also adds two new bytecodes CallIC and CallICWide to indicate calls have to go through CallICStub. MIPS port contributed by balazs.kilvady. BUG=v8:4280, v8:4680 LOG=N Review URL: https://codereview.chromium.org/1688283003 Cr-Commit-Position: refs/heads/master@{#34244}
-
- 19 Feb, 2016 1 commit
-
-
bmeurer authored
The DataView constructor calls into C++ anyway, and is easier to deal with this way, especially since we don't have the half initialized object floating through JavaScript. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1712163002 Cr-Commit-Position: refs/heads/master@{#34145}
-
- 17 Feb, 2016 4 commits
-
-
ishell authored
This CL introduces two new bytecodes TailCall and TailCallWide. BUG=v8:4698,v8:4687 LOG=N Review URL: https://codereview.chromium.org/1698273003 Cr-Commit-Position: refs/heads/master@{#34083}
-
bmeurer authored
Also move Object.is implementation to C++ builtin, which is faster than the current implementation. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1695743003 Cr-Commit-Position: refs/heads/master@{#34069}
-
bmeurer authored
There's no point in having the setup or the toString/valueOf methods in JavaScript. The full setup can be done during bootstrapping when the Boolean constructor is created, and the prototype methods don't benefit from JS + %_ at all. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1701273003 Cr-Commit-Position: refs/heads/master@{#34068}
-
mstarzinger authored
R=rossberg@chromium.org,bmeurer@chromium.org,verwaest@chromium.org BUG=v8:3956 LOG=n Review URL: https://codereview.chromium.org/1700993002 Cr-Commit-Position: refs/heads/master@{#34067}
-
- 16 Feb, 2016 1 commit
-
-
bmeurer authored
Drive-by-fix: Remove the (now) unused %_SetValueOf and %_JSValueGetValue intrinsics from the various compilers and the runtime. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1698343002 Cr-Commit-Position: refs/heads/master@{#34037}
-
- 11 Feb, 2016 1 commit
-
-
mvstanton authored
BUG= Committed: https://crrev.com/5833e8e8a437cd66405784263ccc45e73470fd42 Cr-Commit-Position: refs/heads/master@{#33870} Review URL: https://codereview.chromium.org/1683043003 Cr-Commit-Position: refs/heads/master@{#33890}
-
- 10 Feb, 2016 2 commits
-
-
machenbach authored
Revert of Implement symbol @@hasInstance for ES6 instanceof support. (patchset #2 id:20001 of https://codereview.chromium.org/1683043003/ ) Reason for revert: [Sheriff] Breaks: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/1382/ Original issue's description: > Implement symbol @@hasInstance for ES6 instanceof support. > > BUG= > > Committed: https://crrev.com/5833e8e8a437cd66405784263ccc45e73470fd42 > Cr-Commit-Position: refs/heads/master@{#33870} TBR=bmeurer@chromium.org,mvstanton@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1686123002 Cr-Commit-Position: refs/heads/master@{#33871}
-
mvstanton authored
BUG= Review URL: https://codereview.chromium.org/1683043003 Cr-Commit-Position: refs/heads/master@{#33870}
-
- 09 Feb, 2016 1 commit
-
-
epertoso authored
BUG= Committed: https://crrev.com/4d46b510caf534d770ce19a01a11b8796304471b Cr-Commit-Position: refs/heads/master@{#33812} Review URL: https://codereview.chromium.org/1609233002 Cr-Commit-Position: refs/heads/master@{#33851}
-
- 08 Feb, 2016 2 commits
-
-
machenbach authored
Revert of Do not eagerly instantiate accessors' JSFunction. (patchset #9 id:180001 of https://codereview.chromium.org/1609233002/ ) Reason for revert: [Sheriff] Breaks gcmole: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gcmole/builds/6260 Original issue's description: > Do not eagerly instantiate accessors' JSFunction. > > BUG= > > Committed: https://crrev.com/4d46b510caf534d770ce19a01a11b8796304471b > Cr-Commit-Position: refs/heads/master@{#33812} TBR=verwaest@chromium.org,epertoso@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1679683004 Cr-Commit-Position: refs/heads/master@{#33814}
-
epertoso authored
BUG= Review URL: https://codereview.chromium.org/1609233002 Cr-Commit-Position: refs/heads/master@{#33812}
-
- 05 Feb, 2016 1 commit
-
-
bmeurer authored
The implementation of Object.getOwnPropertyDescriptor always called into C++ anyway, so there's no need to have this JavaScript wrapper around at all. CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_chromium_rel_ng R=yangguo@chromium.org Committed: https://crrev.com/3fdd37b028f4711d0f6dcb038f575ce08ef0cfa3 Cr-Commit-Position: refs/heads/master@{#33379} Review URL: https://codereview.chromium.org/1606783002 Cr-Commit-Position: refs/heads/master@{#33773}
-
- 04 Feb, 2016 1 commit
-
-
caitpotter88 authored
BUG=v8:4725 LOG=N R=adamk@chromium.org, cbruni@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/1658773003 Cr-Commit-Position: refs/heads/master@{#33752}
-
- 28 Jan, 2016 1 commit
-
-
bmeurer authored
The previous versions of Math.max and Math.min made it difficult to optimize those (that's why we already have custom code in Crankshaft), and due to lack of ideas what to do about the variable number of arguments, we will probably need to stick in special code in TurboFan as well; so inlining those builtins is off the table, hence there's no real advantage in having them around as "not quite JS" with extra work necessary in the optimizing compilers to still make those builtins somewhat fast in cases where we cannot inline them (also there's a tricky deopt loop in Crankshaft related to Math.min and Math.max, but that will be dealt with later). So to sum up: Instead of trying to make Math.max and Math.min semi-fast in the optimizing compilers with weird work-arounds support %_Arguments %_ArgumentsLength, we do provide the optimal code as native builtins instead and call it a day (which gives a nice performance boost on some benchmarks). R=jarin@chromium.org Review URL: https://codereview.chromium.org/1641083003 Cr-Commit-Position: refs/heads/master@{#33582}
-
- 26 Jan, 2016 2 commits
-
-
rmcilroy authored
Rename IntepreterExceptionEntryHandler builtin to InterpreterEnterBytecodeDispatch and use it as the return address when building interpreter frames during deopt. This ensures that we restart execution of the outer frame at the correct bytecode. BUG=v8:4280,v8:4678 LOG=N Review URL: https://codereview.chromium.org/1633633002 Cr-Commit-Position: refs/heads/master@{#33512}
-
ishell authored
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=v8:4698 LOG=Y TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/1609893003 Cr-Commit-Position: refs/heads/master@{#33509}
-
- 22 Jan, 2016 1 commit
-
-
caitpotter88 authored
BUG=v8:4663 LOG=N TBR=hpayer@chromium.org R=ljharb@gmail.com, rossberg@chromium.org, adamk@chromium.org Review URL: https://codereview.chromium.org/1581033002 Cr-Commit-Position: refs/heads/master@{#33450}
-
- 20 Jan, 2016 4 commits
-
-
bmeurer authored
The Object.getOwnPropertyNames method always calls into C++ anyway, so there's no point in having the JavaScript wrapper around at all. Drive-by-fix: Inline GetOwnEnumerablePropertyNames into its single call site. CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_chromium_rel_ng R=yangguo@chromium.org Committed: https://crrev.com/bf027fe756f62b4abcac8aa08134c8c5ed055620 Cr-Commit-Position: refs/heads/master@{#33380} Review URL: https://codereview.chromium.org/1605803002 Cr-Commit-Position: refs/heads/master@{#33417}
-
mstarzinger authored
This implements a first prototype of stack unwinding for interpreted frames. The unwinding machinery performs a range-based lookup in the given handler table and potentially continues dispatching at the handler offset. Note that this does not yet correctly restore the context to the correct value when the handler is being entered. R=rmcilroy@chromium.org,oth@chromium.org BUG=v8:4674 LOG=n Review URL: https://codereview.chromium.org/1605633003 Cr-Commit-Position: refs/heads/master@{#33414}
-
hablich authored
Revert of [builtins] Migrate Object.getOwnPropertyDescriptor to C++. (patchset #1 id:1 of https://codereview.chromium.org/1606783002/ ) Reason for revert: Breaks roll: https://codereview.chromium.org/1603953002/ Original issue's description: > [builtins] Migrate Object.getOwnPropertyDescriptor to C++. > > The implementation of Object.getOwnPropertyDescriptor always called into > C++ anyway, so there's no need to have this JavaScript wrapper around at > all. > > R=yangguo@chromium.org > > Committed: https://crrev.com/3fdd37b028f4711d0f6dcb038f575ce08ef0cfa3 > Cr-Commit-Position: refs/heads/master@{#33379} TBR=yangguo@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1609023003 Cr-Commit-Position: refs/heads/master@{#33404}
-
hablich authored
Revert of [runtime] Migrate Object.getOwnPropertyNames to C++. (patchset #2 id:20001 of https://codereview.chromium.org/1605803002/ ) Reason for revert: Breaks roll: https://codereview.chromium.org/1603953002/ Original issue's description: > [runtime] Migrate Object.getOwnPropertyNames to C++. > > The Object.getOwnPropertyNames method always calls into C++ anyway, > so there's no point in having the JavaScript wrapper around at all. > > Drive-by-fix: Inline GetOwnEnumerablePropertyNames into its single > call site. > > R=yangguo@chromium.org > > Committed: https://crrev.com/bf027fe756f62b4abcac8aa08134c8c5ed055620 > Cr-Commit-Position: refs/heads/master@{#33380} TBR=yangguo@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1609173002 Cr-Commit-Position: refs/heads/master@{#33399}
-
- 19 Jan, 2016 2 commits
-
-
bmeurer authored
The Object.getOwnPropertyNames method always calls into C++ anyway, so there's no point in having the JavaScript wrapper around at all. Drive-by-fix: Inline GetOwnEnumerablePropertyNames into its single call site. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1605803002 Cr-Commit-Position: refs/heads/master@{#33380}
-
bmeurer authored
The implementation of Object.getOwnPropertyDescriptor always called into C++ anyway, so there's no need to have this JavaScript wrapper around at all. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1606783002 Cr-Commit-Position: refs/heads/master@{#33379}
-
- 15 Jan, 2016 2 commits
-
-
cbruni authored
When derived constructors return a non-object (or not undefined) we currently throw an exception directly in the callee context. This was achieved by desugaring the return statement for derived classes. To be spec compliamnt a separate ConstructStubForDerived is introduced. Instead of trowing directly, the desugared return statement inside a derived constructor only returns an integer to indicate an incompatible result. BUG=v8:4509 LOG=n Review URL: https://codereview.chromium.org/1593553002 Cr-Commit-Position: refs/heads/master@{#33336}
-
bmeurer authored
The Object.getOwnPropertySymbols() calls into C++ at least once on every possible path, so no point in having the JavaScript wrapper. Drive-by-cleanup: Also move Symbol.prototype creation to C++ as well. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1587153003 Cr-Commit-Position: refs/heads/master@{#33318}
-