toots / buffer-browserify

node's buffer module, but for the browser.
MIT License
52 stars 33 forks source link

Buffer.isBuffer returns false for Buffers #31

Open thlorenz opened 11 years ago

thlorenz commented 11 years ago

I ran into this while writing a browser side Writable Stream. The problem is basically that Buffer.isBuffer(buf) returns false although it is one. This is due to buf instanceof Buffer returning false -- I tried this in the browser console as well.

I commented on my workaround here.

You could use this project as a test bed, i.e.:

npm install d3-gauge-writable
npm explore d3-gauge-writable
npm start

You should then be able to debug into d3-gauge-writable assuming you enabled source maps on your browser.

mscdex commented 11 years ago

@toots Any chance of getting this fixed? I'm currently having to manually change Buffer.isBuffer() to use util.isBuffer()'s logic (similar to @thlorenz's workaround) because require('stream').Readable uses Buffer.isBuffer() in chunkInvalid() and that always fails with the current Buffer.isBuffer() implementation.

toots commented 11 years ago

Hi guys. Unfortunately, I don't have a lot of time to investigate this at the moment. I'd be happy to consider a PR, although I am concerned as to why buf instanceof Buffer isn't returning the expected value. Maybe there's something more important going on here..

mscdex commented 11 years ago

I think this may be related to substack/node-browserify#513 in which two copies of Buffer are injected into bundles.