- 28 Dec, 2015 2 commits
-
-
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}
-
zhengxing.li authored
As the operand in double register is put into stack, the SP delta should be increased too similar to the operand of kX87Push is in double slot of stack. BUG= Review URL: https://codereview.chromium.org/1549133002 Cr-Commit-Position: refs/heads/master@{#33045}
-
- 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 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 Review URL: https://codereview.chromium.org/1542963002 Cr-Commit-Position: refs/heads/master@{#33042}
-
v8-autoroll authored
Rolling v8/tools/clang to 48322a540c208cda85790c2a6df4c4d335b191e1 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1552433002 Cr-Commit-Position: refs/heads/master@{#33041}
-
- 25 Dec, 2015 1 commit
-
-
v8-autoroll authored
Rolling v8/tools/clang to 58034a11a42065e1af1263dfead64df24cb879b9 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1545193002 Cr-Commit-Position: refs/heads/master@{#33040}
-
- 24 Dec, 2015 6 commits
-
-
jarin authored
Review URL: https://codereview.chromium.org/1544743004 Cr-Commit-Position: refs/heads/master@{#33039}
-
paul.lind authored
Per request in https://codereview.chromium.org/1047213002/ These files will continue to have a lot of churn in next two months as we finish support for MIPS r6 instruction set. When things settle down, we will do a clang-format --full to clean them up. For now, we'd prefer to be able to do easy diffs, and will do incremental re-formats as we make changes. BUG= Review URL: https://codereview.chromium.org/1546973003 Cr-Commit-Position: refs/heads/master@{#33038}
-
thakis authored
Follow-up to https://codereview.chromium.org/1495653002, and makes it easier to maybe have a clang/win build of v8 at some point in the future. BUG=none LOG=n Review URL: https://codereview.chromium.org/1549053002 Cr-Commit-Position: refs/heads/master@{#33037}
-
ivica.bogosavljevic authored
In Builtins::Generate_Construct, the system was trying to call ConstructProxy on a Proxy object without a constructor because it was checking the wrong bit in the Proxy object's supported operation mask. TEST=test262/built-ins/Proxy/create-target-is-not-constructor BUG= Review URL: https://codereview.chromium.org/1545983002 Cr-Commit-Position: refs/heads/master@{#33036}
-
zhengxing.li authored
port 866f9e6e (r33026) original commit message: BUG= Review URL: https://codereview.chromium.org/1541323005 Cr-Commit-Position: refs/heads/master@{#33035}
-
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}
-
- 23 Dec, 2015 19 commits
-
-
cbruni authored
atOrUndefined() will return undefined if the index is >= length() BUG= Review URL: https://codereview.chromium.org/1541413002 Cr-Commit-Position: refs/heads/master@{#33033}
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1549793003 Cr-Commit-Position: refs/heads/master@{#33032}
-
ishell authored
Previous CL (https://codereview.chromium.org/1522413002) has a typo. BUG=chromium:571402,chromium:514080,chromium:527994,v8:4325 LOG=N Review URL: https://codereview.chromium.org/1541403002 Cr-Commit-Position: refs/heads/master@{#33031}
-
mbrandy authored
Revert mistaken removal of JumpIfBlack prototype. R=hpayer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:561449 LOG=n Review URL: https://codereview.chromium.org/1544043002 Cr-Commit-Position: refs/heads/master@{#33030}
-
ishell authored
BUG=chromium:570131 LOG=N Review URL: https://codereview.chromium.org/1546933002 Cr-Commit-Position: refs/heads/master@{#33029}
-
mbrandy authored
Port d3f074b2 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. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1549743003 Cr-Commit-Position: refs/heads/master@{#33028}
-
hablich authored
NOTRY=true TBR=rmcilroy,machenbach Review URL: https://codereview.chromium.org/1547913003 Cr-Commit-Position: refs/heads/master@{#33027}
-
hpayer authored
BUG=chromium:561449 LOG=n Review URL: https://codereview.chromium.org/1542113002 Cr-Commit-Position: refs/heads/master@{#33026}
-
Michael Hablich authored
BUG=v8:4642 LOG=N NOTRY=true TBR=machenbach@chromium.org,mvstanton@chromium.org Review URL: https://codereview.chromium.org/1549663004 . Cr-Commit-Position: refs/heads/master@{#33025}
-
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}
-
cbruni authored
Essentially a revert of https://codereview.chromium.org/1346013005 but preserving the refactorings in elements.cc which happened in the mean time. drive-by-fix: pass isolate as argument to more functions in elements.cc. BUG=v8:4606 LOG=y Review URL: https://codereview.chromium.org/1543563002 Cr-Commit-Position: refs/heads/master@{#33023}
-
hablich authored
NOTRY=true TBR=rmcilroy,machenbach Review URL: https://codereview.chromium.org/1541373002 Cr-Commit-Position: refs/heads/master@{#33022}
-
hablich authored
BUG=v8:4642 LOG=N NOTRY=true R=machenbach@chromium.org,mvstanton@chromium.org Review URL: https://codereview.chromium.org/1542253002 Cr-Commit-Position: refs/heads/master@{#33021}
-
mythria authored
Changes LoadGlobal, StoreGlobal, LoadNamedProperty, and StoreNamedProperty to accept the name of variable instead of index into the constant pool entry. Also made GetConstantPoolEntry as a private function since it is no longer used outside of BytecodeArrayBuilder. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1546643002 Cr-Commit-Position: refs/heads/master@{#33020}
-
mythria authored
Adds support for deleting a variable in a lookup slot. Adds a new bytecode, its implementation and tests. Also adds support for this bytecode to the bytecode graph builder. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1542083002 Cr-Commit-Position: refs/heads/master@{#33019}
-
zhengxing.li authored
port 739c0187 (r33011) original commit message: BUG= Review URL: https://codereview.chromium.org/1544013002 Cr-Commit-Position: refs/heads/master@{#33018}
-
zhengxing.li authored
port 4acca53e(r32996) original commit message: There's actually no point trying to do Function.prototype.toString in JavaScript, as it always calls into C++ at least once, so it only complicates things (esp. once we start optimizing bound functions). Drive-by-fix: Rename FunctionApply and FunctionCall builtins to also reflect the fact that these are builtins in the Function.prototype and not on Function itself. BUG= Review URL: https://codereview.chromium.org/1548483003 Cr-Commit-Position: refs/heads/master@{#33017}
-
mtrofin authored
I believe the code reads easier after this change. The original code probably dates back to when we had 4 gap positions. Now that there are only 2, the logic can be simpler by avoiding a loop and instead treating each case explicitly: no gaps; gaps just at end; gaps at start and maybe end. That way, it is also easier to understand how the moves get pushed downwards. This is what got me to make this change in the first place: trying to work out a finer grained move optimization. BUG= Review URL: https://codereview.chromium.org/1543973002 Cr-Commit-Position: refs/heads/master@{#33016}
-
mbrandy authored
Port 739c0187 R=jarin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1549493005 Cr-Commit-Position: refs/heads/master@{#33015}
-
- 22 Dec, 2015 8 commits
-
-
mbrandy authored
Port 4acca53e Original commit message: There's actually no point trying to do Function.prototype.toString in JavaScript, as it always calls into C++ at least once, so it only complicates things (esp. once we start optimizing bound functions). Drive-by-fix: Rename FunctionApply and FunctionCall builtins to also reflect the fact that these are builtins in the Function.prototype and not on Function itself. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:535408 LOG=n Review URL: https://codereview.chromium.org/1544833002 Cr-Commit-Position: refs/heads/master@{#33014}
-
cbruni authored
Add API-accessors for [[ProxyTarget]], [[ProxyHandler]]. Additionally create new proxies and revoke proxies via the API. BUG=v8:1543 LOG=n Review URL: https://codereview.chromium.org/1542943002 Cr-Commit-Position: refs/heads/master@{#33013}
-
bmeurer authored
These constructors always go through C++ at least twice anyway, so there's not really a point in trying to implement them in JavaScript. R=yangguo@chromium.org BUG=chromium:535408 LOG=n Review URL: https://codereview.chromium.org/1548623002 Cr-Commit-Position: refs/heads/master@{#33012}
-
jarin authored
Review URL: https://codereview.chromium.org/1542093002 Cr-Commit-Position: refs/heads/master@{#33011}
-
cbruni authored
Function proxies would not be printed so far since they ended up in Function.prototype.toString which only works with Function as a receiver but no Proxy. Additionally added support for more gracefully dealing with recursive __proto__ structures introduced by proxies. drive-by-fix: use IS_PROXY if possible in .js files. BUG=v8:1543 LOG=n Committed: https://crrev.com/8bfb7189a3472bc9d0820a1bd4534eaaf78ff847 Cr-Commit-Position: refs/heads/master@{#32985} Review URL: https://codereview.chromium.org/1530293004 Cr-Commit-Position: refs/heads/master@{#33010}
-
yangguo authored
R=caitpotter88@gmail.com, littledan@chromium.org Review URL: https://codereview.chromium.org/1542813003 Cr-Commit-Position: refs/heads/master@{#33009}
-
yangguo authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1541143002 Cr-Commit-Position: refs/heads/master@{#33008}
-
cbruni authored
Creating proto-recursive proxies might lead to instanceof while-looping endlessly in Object::HasInPrototypeChain (For traps we already have stack guards in place to prevent stack overflows). We prevent this by limiting the number of proxies we visit in PrototypeIterator to a magic large number. LOG=n BUG=v8:1534 Review URL: https://codereview.chromium.org/1542583003 Cr-Commit-Position: refs/heads/master@{#33007}
-