| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -443,22 +443,21 @@ Writable.prototype.pipe = function() { | |||
| 443 | 443 | function _write(stream, chunk, encoding, cb) { | |
| 444 | 444 | const state = stream._writableState; | |
| 445 | 445 | ||
| 446 | - if (typeof encoding === 'function') { | ||
| 447 | - cb = encoding; | ||
| 448 | - encoding = null; | ||
| 449 | - } | ||
| 450 | - | ||
| 451 | - if (!encoding) | ||
| 452 | - encoding = (state[kState] & kDefaultUTF8Encoding) !== 0 ? 'utf8' : state[kDefaultEncodingValue]; | ||
| 453 | - else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) | ||
| 454 | - throw new ERR_UNKNOWN_ENCODING(encoding); | ||
| 455 | - | ||
| 456 | - if (cb == null || typeof cb !== 'function') | ||
| 446 | + if (cb == null || typeof cb !== 'function') { | ||
| 457 | 447 | cb = nop; | |
| 448 | + } | ||
| 458 | 449 | ||
| 459 | 450 | if (chunk === null) { | |
| 460 | 451 | throw new ERR_STREAM_NULL_VALUES(); | |
| 461 | - } else if ((state[kState] & kObjectMode) === 0) { | ||
| 452 | + } | ||
| 453 | + | ||
| 454 | + if ((state[kState] & kObjectMode) === 0) { | ||
| 455 | + if (!encoding) { | ||
| 456 | + encoding = (state[kState] & kDefaultUTF8Encoding) !== 0 ? 'utf8' : state.defaultEncoding; | ||
| 457 | + } else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) { | ||
| 458 | + throw new ERR_UNKNOWN_ENCODING(encoding); | ||
| 459 | + } | ||
| 460 | + | ||
| 462 | 461 | if (typeof chunk === 'string') { | |
| 463 | 462 | if ((state[kState] & kDecodeStrings) !== 0) { | |
| 464 | 463 | chunk = Buffer.from(chunk, encoding); | |
@@ -487,11 +486,17 @@ function _write(stream, chunk, encoding, cb) { | |||
| 487 | 486 | errorOrDestroy(stream, err, true); | |
| 488 | 487 | return err; | |
| 489 | 488 | } | |
| 489 | + | ||
| 490 | 490 | state.pendingcb++; | |
| 491 | 491 | return writeOrBuffer(stream, state, chunk, encoding, cb); | |
| 492 | 492 | } | |
| 493 | 493 | ||
| 494 | 494 | Writable.prototype.write = function(chunk, encoding, cb) { | |
| 495 | + if (encoding != null && typeof encoding === 'function') { | ||
| 496 | + cb = encoding; | ||
| 497 | + encoding = null; | ||
| 498 | + } | ||
| 499 | + | ||
| 495 | 500 | return _write(this, chunk, encoding, cb) === true; | |
| 496 | 501 | }; | |
| 497 | 502 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -38,7 +38,7 @@ const GHI = new Uint8Array([0x47, 0x48, 0x49]); | |||
| 38 | 38 | assert(!(chunk instanceof Buffer)); | |
| 39 | 39 | assert(chunk instanceof Uint8Array); | |
| 40 | 40 | assert.strictEqual(chunk, ABC); | |
| 41 | - assert.strictEqual(encoding, 'utf8'); | ||
| 41 | + assert.strictEqual(encoding, undefined); | ||
| 42 | 42 | cb(); | |
| 43 | 43 | }) | |
| 44 | 44 | }); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments