SLICE_ARGS(args[0], args[1])
char* data = parent->data_ + start;
- Local<String> string = String::New(data, end - start);
+ size_t len = strnlen(data, end - start);
+ Local<String> string = String::New(data, len);
return scope.Close(string);
}
HandleScope scope;
Buffer *parent = ObjectWrap::Unwrap<Buffer>(args.This());
SLICE_ARGS(args[0], args[1])
- char *data = parent->data_ + start;
- Local<String> string = String::New(data, end - start);
+ char* data = parent->data_ + start;
+ size_t len = strnlen(data, end - start);
+ Local<String> string = String::New(data, len);
return scope.Close(string);
}
+
Handle<Value> Buffer::Ucs2Slice(const Arguments &args) {
HandleScope scope;
Buffer *parent = ObjectWrap::Unwrap<Buffer>(args.This());
return scope.Close(string);
}
+
static const char *base64_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789+/";
// slice(0,0).length === 0
assert.equal(0, Buffer('hello').slice(0, 0).length);
+
+
+// toString('utf8') should not include null values
+var b = new Buffer(20);
+for (var i = 0; i < b.length; i++) {
+ b[i] = 0;
+}
+b.write('hello');
+assert.equal('hello', b.toString('utf8'));
+assert.equal('hello', b.toString('ascii'));
+
+