-
franzih authored
Rewrite decodeURI and decodeURIComponent as builtin functions and install them in the bootstrapper. Delete unused runtime functions: - TruncateString - NewString - OneByteSeqStringGetChar - OneByteSeqStringSetChar - TwoByteSeqStringGetChar - TwoByteSeqStringSetChar Add regression test for decoding large strings. Clusterfuzz detected a problem with %TruncateString, see https://bugs.chromium.org/p/chromium/issues/detail?id=612109#c6 This is automatically fixed by this rewrite because %TruncateString is deleted anyways. Crude benchmark on 585 decodeURI and decodeURIComponent tests averaged over five runs: * builtin functions real 0m9.69s user 2m39.8816s sys 0m12.6398s * JS functions calling into the runtime e.g., for %TruncateString real 0m11.0598s user 3m6.7026s sys 0m13.5756s By running: $ time tools/run-tests.py --arch=x64 --mode=Release --buildbot test262/built-ins/decodeURI* mjsunit/uri >>> Running tests for x64.Release BUG=v8:4912, chromium:612109 R=yangguo@chromium.org, bmeurer@chromium.org Review-Url: https://codereview.chromium.org/1994733003 Cr-Commit-Position: refs/heads/master@{#36543}
8c31bd81