commit | c0a5eed219f1d1d9f8634560489cd541e6ed5d4c | [log] [tgz] |
---|---|---|
author | Drew Ritter <drew.ritter@mapd.com> | Wed Jun 27 10:28:00 2018 -0700 |
committer | James E. King III <jking@apache.org> | Tue Jul 03 08:15:49 2018 -0400 |
tree | f72eba9dcdc961dbcdae2f3e7c17619f219856b0 | |
parent | 129f332d72facda5d06f87e2b4e5e08bea0b6b44 [diff] |
THRIFT-4592: change readI32 to use Array.reverse/Array.pop vs Array.shift, which is expensive for big arrays in V8
diff --git a/lib/js/src/thrift.js b/lib/js/src/thrift.js index 2b385a3..39e6db1 100644 --- a/lib/js/src/thrift.js +++ b/lib/js/src/thrift.js
@@ -1319,7 +1319,11 @@ if (f.length === 0) { r.value = undefined; } else { - r.value = f.shift(); + if (!f.isReversed) { + f.reverse(); + f.isReversed = true; + } + r.value = f.pop(); } } else if (f instanceof Object) { for (var i in f) {