v8/src/js
bmeurer ca8623eaa4 [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

Review URL: https://codereview.chromium.org/1542963002

Cr-Commit-Position: refs/heads/master@{#33042}
2015-12-26 20:28:17 +00:00
..
array-iterator.js Rename IS_SPEC_OBJECT macro to IS_RECEIVER. 2015-12-17 09:44:02 +00:00
array.js Rename IS_SPEC_OBJECT macro to IS_RECEIVER. 2015-12-17 09:44:02 +00:00
arraybuffer.js Revert of [es6] Correctify and unify ArrayBuffer and SharedArrayBuffer constructors. (patchset #2 id:20001 of https://codereview.chromium.org/1500543002/ ) 2015-12-04 10:38:48 +00:00
collection-iterator.js Move error message makers off js builtins object. 2015-10-22 11:30:07 +00:00
collection.js [proxies] Better print for proxies in d8 2015-12-22 13:50:17 +00:00
date.js [bootstrapper] add checks for variable bindings in native scripts. 2015-12-01 14:28:19 +00:00
generator.js [runtime] Also migrate the Function and GeneratorFunction constructors to C++. 2015-12-22 14:15:53 +00:00
harmony-atomics.js [builtins] Get rid of a few %_ClassOf uses. 2015-11-12 08:34:02 +00:00
harmony-object-observe.js Native context: use import/export for Object observe related functions. 2015-10-15 08:32:47 +00:00
harmony-reflect.js Rename IS_SPEC_OBJECT macro to IS_RECEIVER. 2015-12-17 09:44:02 +00:00
harmony-regexp.js Reland of Add web compat workarounds for ES2015 RegExp semantics (patchset #3 id:40001 of https://codereview.chromium.org/1543723002/ ) 2015-12-22 09:16:56 +00:00
harmony-sharedarraybuffer.js Revert of [es6] Correctify and unify ArrayBuffer and SharedArrayBuffer constructors. (patchset #2 id:20001 of https://codereview.chromium.org/1500543002/ ) 2015-12-04 10:38:48 +00:00
harmony-simd.js Use new.target in favor of %_IsConstructCall intrinsic (1). 2015-11-30 10:48:32 +00:00
i18n.js Allow ICU to normalize time zones 2015-12-10 20:13:45 +00:00
iterator-prototype.js Install iterator meta objects via utils object. 2015-10-16 11:27:33 +00:00
json.js [proxies] Better print for proxies in d8 2015-12-22 13:50:17 +00:00
macros.py [proxies] Better print for proxies in d8 2015-12-22 13:50:17 +00:00
math.js Implement xorshift128+ for Math.random. 2015-11-24 13:18:44 +00:00
messages.js [proxies] Better print for proxies in d8 2015-12-22 13:50:17 +00:00
object-observe.js [proxies] Better print for proxies in d8 2015-12-22 13:50:17 +00:00
OWNERS Sanitize js OWNERS file. 2015-12-09 11:35:04 +00:00
prologue.js [runtime] Rewrite Function.prototype.toString in C++. 2015-12-22 06:33:39 +00:00
promise-extra.js Unstage non-standard Promise functions 2015-12-10 23:58:26 +00:00
promise.js Rename IS_SPEC_OBJECT macro to IS_RECEIVER. 2015-12-17 09:44:02 +00:00
proxy.js [proxies] Better print for proxies in d8 2015-12-22 13:50:17 +00:00
regexp.js Reland of Add web compat workarounds for ES2015 RegExp semantics (patchset #3 id:40001 of https://codereview.chromium.org/1543723002/ ) 2015-12-22 09:16:56 +00:00
runtime.js [es6] Correct Function.prototype.apply, Reflect.construct and Reflect.apply. 2015-12-17 08:41:19 +00:00
spread.js Remove flags for spread calls and arrays 2015-10-28 15:57:27 +00:00
string-iterator.js Rename IS_SPEC_OBJECT macro to IS_RECEIVER. 2015-12-17 09:44:02 +00:00
string.js [es6] implement RegExp.@@search. 2015-12-14 10:22:41 +00:00
symbol.js [proxies] Use JSReceiver::GetKeys() for more purposes 2015-12-04 15:20:57 +00:00
templates.js [runtime] Remove the very dangerous %_CallFunction intrinsic. 2015-11-05 11:48:21 +00:00
typedarray.js Remove --harmony-array-includes flag 2015-12-12 01:04:10 +00:00
uri.js Move error message makers off js builtins object. 2015-10-22 11:30:07 +00:00
v8natives.js [runtime] Introduce dedicated JSBoundFunction to represent bound functions. 2015-12-26 20:28:17 +00:00
weak-collection.js Rename IS_SPEC_OBJECT macro to IS_RECEIVER. 2015-12-17 09:44:02 +00:00