- 15 Jul, 2015 1 commit
-
-
littledan authored
This patch removes the MathMax call from String.prototype.includes in order to improve performance. With some quick and dirty benchmarking, (test case courtesy of the node folks) a sizable performance gain is visible: d8> function testIndexOf() { var stringArray = [ 'hello', 'world', '123', 'abc' ]; return stringArray.some(function(val, idx, arr) { return val.indexOf('world') !== -1 })} d8> function testIncludes() { var stringArray = [ 'hello', 'world', '123', 'abc' ]; return stringArray.some(function(val, idx, arr) { return val.includes('world') })} d8> function testTime(fn) { var before = Date.now(); fn(); return Date.now() - before; } d8> testTime(function() { for (var i = 0; i < 10000000; i++) { testIncludes() } }) 2244 d8> testTime(function() { for (var i = 0; i < 10000000; i++) { testIndexOf() } }) 2212 Compare that to before the test, when the performance difference was much larger: d8> testTime(function() { for (var i = 0; i < 10000000; i++) { testIndexOf() } }) 2223 d8> testTime(function() { for (var i = 0; i < 10000000; i++) { testIncludes() } }) 2650 In my runs, performance of both functions drifts up and down, but running them in quick succession back and forth shows a roughly consistent delta of about this magnitude. String.prototype.includes is still slightly (maybe 5%) slower than String.prototype.indexOf, but the effect is significantly reduced. R=adamk BUG=v8:3807 LOG=Y Review URL: https://codereview.chromium.org/1231673008 Cr-Commit-Position: refs/heads/master@{#29665}
-
- 14 Jul, 2015 37 commits
-
-
binji authored
See http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/4695/steps/Check%20%28flakes%29/logs/d8-worker-sharedarray.. BUG=v8:4306 R=machenbach@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true LOG=n Review URL: https://codereview.chromium.org/1241713003 Cr-Commit-Position: refs/heads/master@{#29664}
-
binji authored
Reland of d8 workers: make sure Shell::Quit is only called once (patchset #1 id:1 of https://codereview.chromium.org/1235083004/) Reason for revert: Looks like the failure is unrelated to my change (still fails after the revert). See http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/856/steps/webkit_unit_tests/logs/stdio Original issue's description: > Revert of d8 workers: make sure Shell::Quit is only called once (patchset #5 id:80001 of https://codereview.chromium.org/1230403003/) > > Reason for revert: > Breaks webkit_unit_tests. See http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/853/steps/webkit_unit_tests/logs/stdio > > Original issue's description: > > d8 workers: make sure Shell::Quit is only called once > > > > When running with isolates, Quit can be called simultaneously by two threads. > > If this happens, then both threads try to clean up the Workers, which could > > crash. > > > > BUG=v8:4279 > > R=jarin@chromium.org > > R=machenbach@chromium.org > > LOG=n > > > > Committed: https://crrev.com/76184292b392d107609f21662a949b58bb1e258c > > Cr-Commit-Position: refs/heads/master@{#29654} > > TBR=jarin@chromium.org,machenbach@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:4279 > > Committed: https://crrev.com/6b2c6eb75678747afca59b4a78ace597e218145d > Cr-Commit-Position: refs/heads/master@{#29656} TBR=jarin@chromium.org,machenbach@chromium.org,adamk@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4279 Review URL: https://codereview.chromium.org/1224203004 Cr-Commit-Position: refs/heads/master@{#29663}
-
littledan authored
Duplicate parameters are banned both overall in strict mode and also in arrow functions. Our error message for both cases blamed strict mode, which is confusing. This patch fixes the message to point to arrow functions as a possible source as well. R=wingo, adamk LOG=N Review URL: https://codereview.chromium.org/1236863008 Cr-Commit-Position: refs/heads/master@{#29662}
-
littledan authored
For destructuring bind, the parser needs to complain about things which are inappropriate to have on the left-hand side. Previously, regexp literals and template literals were let through the parser inappropriately. This patch turns those into errors. This patch also fixes off-by-one errors in reporting the location of this type of error for strings and numbers. Before the patch, the error would look like: d8> var {x: 3} = {x: 4} (d8):1: SyntaxError: Unexpected number var {x: 3} = {x: 4} ^ SyntaxError: Unexpected number And with the patch, the error is d8> var {x: 3} = {x: 4} (d8):1: SyntaxError: Unexpected number var {x: 3} = {x: 4} ^ SyntaxError: Unexpected number R=rossberg Review URL: https://codereview.chromium.org/1236803003 Cr-Commit-Position: refs/heads/master@{#29661}
-
bbudge authored
Adds SameValue and SameValueZero functions for float and double. These will be used for HeapNumber and SIMD values. LOG=N BUG=v8:4124 Review URL: https://codereview.chromium.org/1234073003 Cr-Commit-Position: refs/heads/master@{#29660}
-
mbrandy authored
Labels which are not associated with branches (e.g. labels which record the location of the embedded constant pool or jump tables) should not be tracked for the purpose of trampoline generation. This also improves management of the high water mark in the buffer which triggers trampoline generation such that it is reset whenever the number of tracked branches drops to zero. These changes should help minimize unnecessary trampoline and (subsequent) slow branch generation. R=dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1237213002 Cr-Commit-Position: refs/heads/master@{#29659}
-
binji authored
Note: the previous try was reverted for occasional flaky tests. This continued after the revert, and should be fixed by https://codereview.chromium.org/1226143003. Previously, the serialization code would call Externalize for every transferred ArrayBuffer or SharedArrayBuffer, but that function can only be called once. If the buffer is already externalized, we should call GetContents instead. Also fix use-after-free bug when transferring ArrayBuffers. The transferred ArrayBuffer must be internalized in the new isolate, or be managed by the Shell. The current code gives it to the isolate externalized and frees it immediately afterward when the SerializationData object is destroyed. BUG=chromium:497295 R=jarin@chromium.org LOG=n Review URL: https://codereview.chromium.org/1223813008 Cr-Commit-Position: refs/heads/master@{#29658}
-
adamk authored
Return both --harmony-spreadcalls and --harmony-spread-arrays to staging, in preparation for disabling those features on the M45 branch. There are no known bugs in spread calls, but without rest and spread arrays it seems appropriate to leave all of them out rather than only supporting a singular use of the '...' operator. BUG=v8:4298 LOG=y Review URL: https://codereview.chromium.org/1230773005 Cr-Commit-Position: refs/heads/master@{#29657}
-
binji authored
Revert of d8 workers: make sure Shell::Quit is only called once (patchset #5 id:80001 of https://codereview.chromium.org/1230403003/) Reason for revert: Breaks webkit_unit_tests. See http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/853/steps/webkit_unit_tests/logs/stdio Original issue's description: > d8 workers: make sure Shell::Quit is only called once > > When running with isolates, Quit can be called simultaneously by two threads. > If this happens, then both threads try to clean up the Workers, which could > crash. > > BUG=v8:4279 > R=jarin@chromium.org > R=machenbach@chromium.org > LOG=n > > Committed: https://crrev.com/76184292b392d107609f21662a949b58bb1e258c > Cr-Commit-Position: refs/heads/master@{#29654} TBR=jarin@chromium.org,machenbach@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4279 Review URL: https://codereview.chromium.org/1235083004 Cr-Commit-Position: refs/heads/master@{#29656}
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1228373004 Cr-Commit-Position: refs/heads/master@{#29655}
-
binji authored
When running with isolates, Quit can be called simultaneously by two threads. If this happens, then both threads try to clean up the Workers, which could crash. BUG=v8:4279 R=jarin@chromium.org R=machenbach@chromium.org LOG=n Review URL: https://codereview.chromium.org/1230403003 Cr-Commit-Position: refs/heads/master@{#29654}
-
binji authored
The length property can be monkey-patched, so use the native function instead. R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1227913006 Cr-Commit-Position: refs/heads/master@{#29653}
-
balazs.kilvady authored
BUG= Review URL: https://codereview.chromium.org/1237753004 Cr-Commit-Position: refs/heads/master@{#29652}
-
ishell authored
Follow-up for "Enable loads and stores to global vars through property cell shortcuts installed into parent script context." Review URL: https://codereview.chromium.org/1236523004 Cr-Commit-Position: refs/heads/master@{#29651}
-
verwaest authored
Remove duplicate flattening. Defining accessors doesn't call out, so don't assert that the context doesn't change. BUG=v8:4137 LOG=n Review URL: https://codereview.chromium.org/1233073003 Cr-Commit-Position: refs/heads/master@{#29650}
-
verwaest authored
BUG=v8:4137 LOG=n Review URL: https://codereview.chromium.org/1228803005 Cr-Commit-Position: refs/heads/master@{#29649}
-
verwaest authored
BUG=chromium:509961 LOG=n Review URL: https://codereview.chromium.org/1241613003 Cr-Commit-Position: refs/heads/master@{#29648}
-
mstarzinger authored
This adapts JSCallConstruct nodes to represent both, ordinary 'new' constructor calls as well as 'super' constructor calls. Note that we still bailout for super calls for now. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1234023003 Cr-Commit-Position: refs/heads/master@{#29647}
-
conradw authored
BUG=v8:3956 LOG=N Review URL: https://codereview.chromium.org/1235983002 Cr-Commit-Position: refs/heads/master@{#29646}
-
verwaest authored
BUG=v8:4137 LOG=n Review URL: https://codereview.chromium.org/1238533003 Cr-Commit-Position: refs/heads/master@{#29645}
-
chunyang.dai authored
port 01f40e6a (r29618). original commit message: BUG= Review URL: https://codereview.chromium.org/1233033004 Cr-Commit-Position: refs/heads/master@{#29644}
-
chunyang.dai authored
port 6ddcd327 (r29617) original commit message: Cleanup Generate_JSConstructStubHelper a bit. BUG= Review URL: https://codereview.chromium.org/1237013002 Cr-Commit-Position: refs/heads/master@{#29643}
-
chunyang.dai authored
port 0a19e449 (r29568) original commit message: If we do it too early, we might get a constant pool between the reloc info and the actual slot. Review URL: https://codereview.chromium.org/1228923003 Cr-Commit-Position: refs/heads/master@{#29642}
-
chunyang.dai authored
port a0129a25 (r29591). original commit message: BUG= Review URL: https://codereview.chromium.org/1232383003 Cr-Commit-Position: refs/heads/master@{#29641}
-
verwaest authored
Remove map-copying for global objects. This was an old (broken) requirement that has been fixed for a while. BUG= Review URL: https://codereview.chromium.org/1235113002 Cr-Commit-Position: refs/heads/master@{#29640}
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1222223002 Cr-Commit-Position: refs/heads/master@{#29639}
-
yangguo authored
--debug-code causes full-codegen on arm64 to emit different number of calls, which confuses the debugger when on-stack replacing code with recompiled debug version on-stack. BUG=chromium:507070 TBR=mstarzinger@chromium.org LOG=N Review URL: https://codereview.chromium.org/1228353004 Cr-Commit-Position: refs/heads/master@{#29638}
-
machenbach authored
TBR=jochen@chromium.org, rmcilroy@chromium.org, hablich@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/1234573003 Cr-Commit-Position: refs/heads/master@{#29637}
-
yangguo authored
The new implemtation counts the number of calls (or continuations) before the PC to find the corresponding PC in the new code. R=mstarzinger@chromium.org BUG=chromium:507070 LOG=N Review URL: https://codereview.chromium.org/1235603002 Cr-Commit-Position: refs/heads/master@{#29636}
-
bmeurer authored
BUG=v8:4295 LOG=n TBR=jochen@chromium.org Review URL: https://codereview.chromium.org/1241533003 Cr-Commit-Position: refs/heads/master@{#29635}
-
paul.lind authored
Several users of kKindSpecificFlags1Offset (aliased as kFullCodeFlags) were reading/writing bytes -- not endian agnostic. TEST=mjsunit/debug-setexceptionbreak, mjsunit/debug-mirror-cache, mjsunit/regress/regress-94873, others... BUG= Review URL: https://codereview.chromium.org/1236143002 Cr-Commit-Position: refs/heads/master@{#29634}
-
ulan authored
Some implementations of std::lower_bound require weak-strict ordering. The comparison operator must be assymetric, which doesn't hold for less_equals. Review URL: https://codereview.chromium.org/1232613002 Cr-Commit-Position: refs/heads/master@{#29633}
-
paul.lind authored
Review URL: https://codereview.chromium.org/1230063011 Cr-Commit-Position: refs/heads/master@{#29632}
-
chunyang.dai authored
port e50c861b (r29562) original commit message: BUG= Review URL: https://codereview.chromium.org/1232833002 Cr-Commit-Position: refs/heads/master@{#29631}
-
chunyang.dai authored
port 8965b683 (r29561) original commit message: Break point at calls are currently set via IC. To change this, we need to set debug break slots instead. We also need to distinguish those debug break slots as calls to support step-in. To implement this, we add a data field to debug break reloc info to indicate non-call debug breaks or in case of call debug breaks, the number of arguments. We can later use this to find the callee on the evaluation stack in Debug::PrepareStep. BUG= Review URL: https://codereview.chromium.org/1233823002 Cr-Commit-Position: refs/heads/master@{#29630}
-
chunyang.dai authored
port 4b38c158 (r29527). original commit message: We actually need round to zero truncation to implement the counterpart of LDoubleToI in TurboFan, which tries to convert a double to an integer as required for keyed load/store optimizations. Drive-by-cleanup: Reduce some code duplication in the InstructionSelector implementations. BUG= Review URL: https://codereview.chromium.org/1227923003 Cr-Commit-Position: refs/heads/master@{#29629}
-
chunyang.dai authored
port 737b8573 (r29539) original commit message: - Add a TurboFanIC class, derived from TurboFanCodeStub, that automatically distinguishes between versions of the IC called from optimized and unoptimized code. - Add appropriate InterfaceDescriptors for both the versions of the stub called from unoptimized and optimized code - Change the MathFloor TF stub generator to output either the for-optimized or for-unoptimized version based on the minor_key parameter. BUG= Review URL: https://codereview.chromium.org/1235823002 Cr-Commit-Position: refs/heads/master@{#29628}
-
- 13 Jul, 2015 2 commits
-
-
mbrandy authored
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com Review URL: https://codereview.chromium.org/1239583002 Cr-Commit-Position: refs/heads/master@{#29627}
-
binji authored
* Fix embarrassing bug in DeserializeValue, using a static buffer in multithreaded code. * Fix thread leak when Worker.terminate() is not called. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1226143003 Cr-Commit-Position: refs/heads/master@{#29626}
-