35b6aa3849
The spec got rid of `CheckObjectCoercible` a while back, and so should we. This change is not observable in most of the affected cases since `ToObject` is up near the top of most Array method algorithms. An example of an observable effect of this change occurs for the following input: Array.prototype.sort.call(null, 1); Behavior before applying the patch (incorrect message): TypeError: Array.prototype.sort called on null or undefined Expected behavior: TypeError: The comparison function must be either a function or undefined This patch removes `CheckObjectCoercible` and adds tests to ensure the few observable cases are addressed correctly. The patch also adds a missing `ToObject(this)` to `Array.prototype.lastIndexOf` which would otherwise become observable as a result of `CheckObjectCoercible` being removed. BUG=v8:3577,v8:6921 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ia086095076c4bf4d8d58dab26bc28df02994ed01 Reviewed-on: https://chromium-review.googlesource.com/718577 Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#48800} |
||
---|---|---|
.. | ||
benchmarks | ||
cctest | ||
common | ||
debugger | ||
fuzzer | ||
inspector | ||
intl | ||
js-perf-test | ||
memory | ||
message | ||
mjsunit | ||
mkgrokdump | ||
mozilla | ||
preparser | ||
promises-aplus | ||
test262 | ||
unittests | ||
wasm-spec-tests | ||
webkit | ||
bot_default.gyp | ||
bot_default.isolate | ||
BUILD.gn | ||
default.gyp | ||
default.isolate | ||
optimize_for_size.gyp | ||
optimize_for_size.isolate | ||
perf.gyp | ||
perf.isolate |