| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 
							- "use strict";
 
- var BOMChar = '\uFEFF';
 
- exports.PrependBOM = PrependBOMWrapper
 
- function PrependBOMWrapper(encoder, options) {
 
-     this.encoder = encoder;
 
-     this.addBOM = true;
 
- }
 
- PrependBOMWrapper.prototype.write = function(str) {
 
-     if (this.addBOM) {
 
-         str = BOMChar + str;
 
-         this.addBOM = false;
 
-     }
 
-     return this.encoder.write(str);
 
- }
 
- PrependBOMWrapper.prototype.end = function() {
 
-     return this.encoder.end();
 
- }
 
- //------------------------------------------------------------------------------
 
- exports.StripBOM = StripBOMWrapper;
 
- function StripBOMWrapper(decoder, options) {
 
-     this.decoder = decoder;
 
-     this.pass = false;
 
-     this.options = options || {};
 
- }
 
- StripBOMWrapper.prototype.write = function(buf) {
 
-     var res = this.decoder.write(buf);
 
-     if (this.pass || !res)
 
-         return res;
 
-     if (res[0] === BOMChar) {
 
-         res = res.slice(1);
 
-         if (typeof this.options.stripBOM === 'function')
 
-             this.options.stripBOM();
 
-     }
 
-     this.pass = true;
 
-     return res;
 
- }
 
- StripBOMWrapper.prototype.end = function() {
 
-     return this.decoder.end();
 
- }
 
 
  |