]> zoso.dev Git - buffer.git/commitdiff
use native copy for typed arrays
authorMathias Buus <mathiasbuus@gmail.com>
Sat, 5 Apr 2014 18:12:20 +0000 (20:12 +0200)
committerMathias Buus <mathiasbuus@gmail.com>
Sat, 5 Apr 2014 18:24:06 +0000 (20:24 +0200)
index.js

index 0d1d88aee1502e42ddc6678bb96757cfc13da481..911507bdf01b17c228339f0531448f82c3df85cd 100644 (file)
--- a/index.js
+++ b/index.js
@@ -389,9 +389,14 @@ Buffer.prototype.copy = function (target, target_start, start, end) {
   if (target.length - target_start < end - start)
     end = target.length - target_start + start
 
-  // copy!
-  for (var i = 0; i < end - start; i++)
-    target[i + target_start] = this[i + start]
+  var len = end - start
+
+  if (len < 100 || !Buffer._useTypedArrays) {
+    for (var i = 0; i < len; i++)
+      target[i + target_start] = this[i + start]
+  } else {
+    target._set(new Uint8Array(this.buffer, start, len), target_start)
+  }
 }
 
 function _base64Slice (buf, start, end) {