Move Buffer into own module

This commit is contained in:
Ryan Dahl 2010-03-19 20:50:29 -07:00
parent ac684f3583
commit 025116f8d0
8 changed files with 36 additions and 18 deletions

20
lib/buffer.js Normal file
View File

@ -0,0 +1,20 @@
var Buffer = process.binding('buffer').Buffer;
exports.Buffer = Buffer;
Buffer.prototype.toString = function () {
return this.utf8Slice(0, this.length);
};
Buffer.prototype.toJSON = function () {
return this.utf8Slice(0, this.length);
/*
var s = "";
for (var i = 0; i < this.length; i++) {
s += this[i].toString(16) + " ";
}
return s;
*/
};

View File

@ -18,7 +18,7 @@ var binding = process.binding('net');
// represent buffer.used) that can be seeked around would be easier. I'm not
// yet convinced that every use-case can be fit into that abstraction, so
// waiting to implement it until I get more experience with this.
var Buffer = process.Buffer;
var Buffer = require('buffer').Buffer;
var IOWatcher = process.IOWatcher;
var assert = process.assert;

View File

@ -1176,6 +1176,15 @@ static Handle<Value> Binding(const Arguments& args) {
binding_cache->Set(module, exports);
}
} else if (!strcmp(*module_v, "buffer")) {
if (binding_cache->Has(module)) {
exports = binding_cache->Get(module)->ToObject();
} else {
exports = Object::New();
Buffer::Initialize(exports);
binding_cache->Set(module, exports);
}
} else if (!strcmp(*module_v, "natives")) {
if (binding_cache->Has(module)) {
exports = binding_cache->Get(module)->ToObject();
@ -1184,6 +1193,7 @@ static Handle<Value> Binding(const Arguments& args) {
// Explicitly define native sources.
// TODO DRY/automate this?
exports->Set(String::New("assert"), String::New(native_assert));
exports->Set(String::New("buffer"), String::New(native_buffer));
exports->Set(String::New("child_process"),String::New(native_child_process));
exports->Set(String::New("dns"), String::New(native_dns));
exports->Set(String::New("events"), String::New(native_events));
@ -1301,7 +1311,6 @@ static void Load(int argc, char *argv[]) {
// Initialize the C++ modules..................filename of module
Buffer::Initialize(process); // buffer.cc
IOWatcher::Initialize(process); // io_watcher.cc
IdleWatcher::Initialize(process); // idle_watcher.cc
Timer::Initialize(process); // timer.cc

View File

@ -1,10 +1,6 @@
process.mixin(require("../common"));
net = require("net");
process.Buffer.prototype.toString = function () {
return this.utf8Slice(0, this.length);
};
var tests_run = 0;
function fdPassingTest(path, port) {

View File

@ -1,11 +1,6 @@
process.mixin(require("../common"));
net = require("net");
process.Buffer.prototype.toString = function () {
return this.utf8Slice(0, this.length);
};
path = process.ARGV[2];
greeting = process.ARGV[3];

View File

@ -1,8 +1,9 @@
require("../common");
assert = require("assert");
var Buffer = require('buffer').Buffer;
var b = new process.Buffer(1024);
var b = new Buffer(1024);
puts("b.length == " + b.length);
assert.equal(1024, b.length);
@ -52,7 +53,7 @@ for (var j = 0; j < 100; j++) {
// unpack
var b = new process.Buffer(10);
var b = new Buffer(10);
b[0] = 0x00;
b[1] = 0x01;
b[2] = 0x03;

View File

@ -9,7 +9,8 @@ var HTTPParser = process.binding('http_parser').HTTPParser;
var parser = new HTTPParser("request");
var buffer = new process.Buffer(1024);
var Buffer = require('buffer').Buffer;
var buffer = new Buffer(1024);
var request = "GET /hello HTTP/1.1\r\n\r\n";

View File

@ -2,10 +2,6 @@ require("../common");
net = require("net");
process.Buffer.prototype.toString = function () {
return this.utf8Slice(0, this.length);
};
var tests_run = 0;
function pingPongTest (port, host) {