From 4e77e16330079b1af040788794c1e8ddfe20b2fb Mon Sep 17 00:00:00 2001
From: Feross Aboukhadijeh <feross@feross.org>
Date: Mon, 20 Jan 2014 00:05:48 -0800
Subject: [PATCH] Fix: In node 0.8 + 0.10, Uint8Array.prototype.set is
 undefined

---
 index.js | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/index.js b/index.js
index dc3a534..afb970a 100644
--- a/index.js
+++ b/index.js
@@ -84,7 +84,7 @@ function Buffer (subject, encoding, noZero) {
   if (Buffer._useTypedArrays && typeof Uint8Array === 'function' &&
       subject instanceof Uint8Array) {
     // Speed optimization -- use set if we're copying from a Uint8Array
-    Uint8Array.prototype.set.call(buf, subject)
+    buf._set(subject)
   } else if (isArrayish(subject)) {
     // Treat array-ish objects as a byte array
     for (i = 0; i < length; i++) {
@@ -857,8 +857,13 @@ var BP = Buffer.prototype
 function augment (arr) {
   arr._isBuffer = true
 
-  arr.get = BP.get // deprecated
-  arr.set = BP.set // deprecated
+  // save reference to original Uint8Array get/set methods before overwriting
+  arr._get = arr.get
+  arr._set = arr.set
+
+  // deprecated, will be removed in node 0.13+
+  arr.get = BP.get
+  arr.set = BP.set
 
   arr.write = BP.write
   arr.toString = BP.toString
-- 
2.34.1