Ruben Bridgewater
7a23fc0760
buffer: coerce offset to integer
...
The offset was formerly coerced to a integer and this reimplements
that.
PR-URL: https://github.com/nodejs/node/pull/18215
Fixes: https://github.com/nodejs/node/issues/18208
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2018-01-24 13:12:51 +01:00
sreepurnajasti
45307fde5c
lib: use american spelling as per style guide
...
PR-URL: https://github.com/nodejs/node/pull/18226
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Jon Moss <me@jonathanmoss.me >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
2018-01-19 12:59:20 +01:00
Rich Trott
9fea7eae9a
buffer: check byteLength in readUInt(B|L)E
...
PR-URL: https://github.com/nodejs/node/pull/11146
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2018-01-05 12:40:26 +01:00
Sebastian Van Sande
d964ffeec3
buffer: check byteLength in readInt(B|L)E
...
The 'byteLength' argument should be required and of type 'number'.
It should have a value between 1 and 6.
PR-URL: https://github.com/nodejs/node/pull/11146
Fixes: https://github.com/nodejs/node/issues/10515
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2018-01-05 12:37:38 +01:00
Ben Noordhuis
df30fd586d
buffer: optimize readDouble and readFloat methods
...
Compute the floating point number in JavaScript to avoid having to call
out to the C++ runtime. The improvements are not insubstantial:
improvement confidence p.value
value="big" endian="BE" type="Double" noAssert="false" 292.86 % *** 1.688367e-08
value="big" endian="BE" type="Double" noAssert="true" 353.19 % *** 6.079414e-10
value="big" endian="BE" type="Float" noAssert="false" 406.21 % *** 1.730122e-07
value="big" endian="BE" type="Float" noAssert="true" 450.81 % *** 6.909242e-07
value="big" endian="LE" type="Double" noAssert="false" 268.39 % *** 8.625486e-09
value="big" endian="LE" type="Double" noAssert="true" 310.66 % *** 2.798332e-15
value="big" endian="LE" type="Float" noAssert="false" 382.99 % *** 3.412057e-07
value="big" endian="LE" type="Float" noAssert="true" 394.60 % *** 1.406742e-07
value="inf" endian="BE" type="Double" noAssert="false" 312.91 % *** 7.407943e-12
value="inf" endian="BE" type="Double" noAssert="true" 392.47 % *** 3.821179e-08
value="inf" endian="BE" type="Float" noAssert="false" 466.01 % *** 8.953363e-08
value="inf" endian="BE" type="Float" noAssert="true" 460.76 % *** 5.381256e-09
value="inf" endian="LE" type="Double" noAssert="false" 279.50 % *** 2.390682e-09
value="inf" endian="LE" type="Double" noAssert="true" 335.30 % *** 3.587173e-09
value="inf" endian="LE" type="Float" noAssert="false" 439.77 % *** 1.057133e-07
value="inf" endian="LE" type="Float" noAssert="true" 426.72 % *** 4.353408e-09
value="nan" endian="BE" type="Double" noAssert="false" 271.18 % *** 2.281526e-05
value="nan" endian="BE" type="Double" noAssert="true" 312.63 % *** 1.974975e-07
value="nan" endian="BE" type="Float" noAssert="false" 429.17 % *** 2.416228e-07
value="nan" endian="BE" type="Float" noAssert="true" 461.39 % *** 1.956714e-08
value="nan" endian="LE" type="Double" noAssert="false" 267.03 % *** 9.938479e-12
value="nan" endian="LE" type="Double" noAssert="true" 276.93 % *** 7.842481e-08
value="nan" endian="LE" type="Float" noAssert="false" 415.97 % *** 8.082710e-07
value="nan" endian="LE" type="Float" noAssert="true" 433.68 % *** 1.030200e-07
value="small" endian="BE" type="Double" noAssert="false" 273.20 % *** 9.071652e-11
value="small" endian="BE" type="Double" noAssert="true" 326.25 % *** 3.120167e-08
value="small" endian="BE" type="Float" noAssert="false" 845.61 % *** 8.044170e-08
value="small" endian="BE" type="Float" noAssert="true" 868.61 % *** 2.944539e-08
value="small" endian="LE" type="Double" noAssert="false" 251.29 % *** 5.613930e-09
value="small" endian="LE" type="Double" noAssert="true" 286.82 % *** 8.149603e-10
value="small" endian="LE" type="Float" noAssert="false" 824.87 % *** 1.199729e-08
value="small" endian="LE" type="Float" noAssert="true" 834.35 % *** 4.799620e-08
value="zero" endian="BE" type="Double" noAssert="false" 216.70 % *** 3.872293e-12
value="zero" endian="BE" type="Double" noAssert="true" 239.31 % *** 6.439601e-09
value="zero" endian="BE" type="Float" noAssert="false" 353.75 % *** 3.639974e-07
value="zero" endian="BE" type="Float" noAssert="true" 388.86 % *** 7.074318e-10
value="zero" endian="LE" type="Double" noAssert="false" 179.34 % *** 5.230763e-06
value="zero" endian="LE" type="Double" noAssert="true" 199.66 % *** 2.177589e-11
value="zero" endian="LE" type="Float" noAssert="false" 299.55 % *** 9.961978e-08
value="zero" endian="LE" type="Float" noAssert="true" 333.30 % *** 2.470764e-08
PR-URL: https://github.com/nodejs/node/pull/17775
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-12-27 19:47:16 +01:00
cjihrig
cd174df353
buffer: throw on failed fill attempts
...
If fill() attempts to write a string to a buffer, but fails
silently, then uninitialized memory could be leaked. This commit
causes fill() to throw if the string write operation fails.
Refs: https://github.com/nodejs/node/issues/17423
PR-URL: https://github.com/nodejs/node/pull/17427
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
2017-12-06 12:02:47 -05:00
Anna Henningsen
69a68c0b24
buffer: zero-fill buffer allocated with invalid content
...
Zero-fill when `Buffer.alloc()` receives invalid fill data.
A solution like https://github.com/nodejs/node/pull/17427 which switches
to throwing makes sense, but is likely a breaking change.
This suggestion leaves the behaviour of `buffer.fill()` untouched,
since any change to it would be a breaking change, and lets
`Buffer.alloc()` check whether any filling took place or not.
PR-URL: https://github.com/nodejs/node/pull/17428
Refs: https://github.com/nodejs/node/pull/17427
Refs: https://github.com/nodejs/node/issues/17423
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com >
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2017-12-05 12:35:10 +01:00
buji
6244070c48
buffer: don't predefine error
...
PR-URL: https://github.com/nodejs/node/pull/17021
Fixes: https://github.com/nodejs/node/issues/16994
Reviewed-By: Evan Lucas <evanlucas@me.com >
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2017-11-18 20:44:56 +01:00
Weijia Wang
e22b8d0c46
lib: improve the usage of TypeError[INVALID_ARG_TYPE]
...
The initials of expected in TypeError[ERR_INVALID_ARG_TYPE]
are inconsistent. This change is to unify them.
PR-URL: https://github.com/nodejs/node/pull/16401
Fixes: https://github.com/nodejs/node/issues/16383
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2017-11-12 11:04:06 -08:00
Bryan English
8172f4547e
buffer: move setupBufferJS to internal
...
Stashing it away in internal/buffer so that it can't be used in
userland, but can still be used in internals.
PR-URL: https://github.com/nodejs/node/pull/16391
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-10-25 10:36:17 -07:00
Weijia Wang
e79a61cf80
buffer: buffer.transcode to use internal/errors
...
`buffer.transcode` is still using raw TypeError. This change is to
convert it to use internal/errors.
Ref: https://github.com/nodejs/node/issues/11273
PR-URL: https://github.com/nodejs/node/pull/16352
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
2017-10-23 19:17:44 +05:30
Timothy Gu
7907534a8d
lib: faster type checks for some types
...
PR-URL: https://github.com/nodejs/node/pull/15663
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Benedikt Meurer <benedikt.meurer@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-10-01 23:58:59 -03:00
Anatoli Papirovski
fc1fa4e2c4
buffer: improve Buffer.from performance
...
Using == null in code paths that are expected to mostly receive
objects, arrays or other more complex data types is not
ideal because typecasting these types is very slow. Change
to instead check === null || === undefined. Also move one
variable assignment in fromString after an if condition
that doesn't need it (and returns if truthy).
PR-URL: https://github.com/nodejs/node/pull/15178
Refs: https://jsperf.com/triple-equals-vs-double-equals/3
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
2017-09-11 00:05:28 -03:00
Marcelo Gobelli
08984b26d3
buffer: increase coverage by removing dead code
...
buffer.js:L196 `if (value == null)` guarantees `obj != null`
so L406+L418 are unnecessary.
PR-URL: https://github.com/nodejs/node/pull/15100
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-09-01 17:33:33 -04:00
Weijia Wang
9e0f771224
buffer: improve error messages
...
Some errors in buffer module losed some arguments or received
wrong arguments when they were created. This PR added these
losing arguments and fixed the wrong arguments.
PR-URL: https://github.com/nodejs/node/pull/14975
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2017-08-24 14:49:47 -07:00
Anna Henningsen
9ecc440642
buffer: fix MAX_LENGTH constant export
...
This was a typo and accidentally returned the wrong value.
Fixes: https://github.com/nodejs/node/issues/14819
Ref: https://github.com/nodejs/node/pull/13467
PR-URL: https://github.com/nodejs/node/pull/14821
Reviewed-By: Evan Lucas <evanlucas@me.com >
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2017-08-17 20:32:26 +02:00
James M Snell
355523fcfb
buffer: refactor module.exports, imports
...
* Move to more efficient module.exports pattern
* Refactor requires
* Eliminate circular dependency on internal/buffer
* Add names to some functions
* Fix circular dependency error in assert.js
PR-URL: https://github.com/nodejs/node/pull/13807
Reviewed-By: Refael Ackermann <refack@gmail.com >
2017-07-24 07:24:53 -07:00
Rich Trott
e0340af455
buffer: fix indentation nits
...
Fix indentation issues that will be flagged by upcoming stricter
linting.
PR-URL: https://github.com/nodejs/node/pull/14224
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-17 00:31:35 -07:00
starkwang
dbfe8c4ea2
errors,buffer: port errors to internal/errors
...
PR-URL: https://github.com/nodejs/node/pull/13976
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2017-07-12 17:00:30 -04:00
Rich Trott
e6e6b07e51
buffer: remove MAX_SAFE_INTEGER check on length
...
MAX_SAFE_INTEGER is millions of times larger than the largest buffer
allowed in Node.js. There is no need to squash the length down to
MAX_SAFE_INTEGER. Removing that check results in a small but
statistically significant increase for Buffer.from() operating on
ArrayBuffers in some situations.
PR-URL: https://github.com/nodejs/node/pull/14131
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com >
2017-07-11 18:25:09 -07:00
Rich Trott
0d22858d67
lib: remove excess indentation
...
In anticipation of stricter linting for indentation, remove instances of
extra indentation that will be flagged by the new rules.
PR-URL: https://github.com/nodejs/node/pull/14090
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2017-07-07 13:18:19 -07:00
Rich Trott
095c0de94d
benchmark,lib,test: use braces for multiline block
...
For if/else and loops where the bodies span more than one line, use
curly braces.
PR-URL: https://github.com/nodejs/node/pull/13828
Ref: https://github.com/nodejs/node/pull/13623#discussion_r123048602
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-06-23 14:43:20 -07:00
James M Snell
22cf25cf2d
buffer: support boxed strings and toPrimitive
...
Add support for `Buffer.from(new String('...'))` and
`Buffer.from({[Symbol.toPrimitive]() { return '...'; }})`
PR-URL: https://github.com/nodejs/node/pull/13725
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2017-06-19 15:27:01 -07:00
Ruben Bridgewater
c474f88987
lib: fix typos
...
PR-URL: https://github.com/nodejs/node/pull/13741
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Roman Reiss <me@silverwind.io >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com >
2017-06-19 18:18:56 +02:00
Anna Henningsen
1e2905f46a
buffer: add constants object
...
Add `buffer.constants`, containing length limits for `Buffer` and
`string` instances.
This could be useful for programmers to tell whether a value can
be turned into a string or not.
Ref: https://github.com/nodejs/node/issues/13465
PR-URL: https://github.com/nodejs/node/pull/13467
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2017-06-16 19:48:51 +02:00
larissayvette
234353a1b8
lib,src: refactor buffer out of range index
...
PR-URL: https://github.com/nodejs/node/pull/11296
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
2017-05-27 21:11:26 -07:00
Anna Henningsen
28ddac2ec2
buffer: fix indexOf for empty searches
...
Make searches for empty subsequences do exactly what
`String.prototype.indexOf()` does.
Fixes: https://github.com/nodejs/node/issues/13023
PR-URL: https://github.com/nodejs/node/pull/13024
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com >
2017-05-18 23:16:40 +02:00
Anna Henningsen
d56a7e640f
src: do proper StringBytes error handling
...
- Return `MaybeLocal`s from `StringBytes::Encode`
- Add an `error` out parameter to pass JS exceptions to the callers
(instead of directly throwing)
- Simplify some of the string generation methods in `string_bytes.cc`
by unifying the `EXTERN_APEX` logic
- Reduce usage of deprecated V8 APIs.
- Remove error handling logic from JS, the `buffer.*Slice()` methods
now throw errors themselves.
- Left TODO comments for future semver-major error message
improvements.
This paves the way for better error messages coming out of the
StringBytes methods.
Ref: https://github.com/nodejs/node/issues/3175
PR-URL: https://github.com/nodejs/node/pull/12765
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2017-05-03 19:21:32 +02:00
James M Snell
d2d32ea5a2
buffer: add pending deprecation warning
...
The pending deprecation warning is off by default.
Launch the node process with --pending-deprecation
or NODE_PENDING_DEPRECATION=1 env var set.
PR-URL: https://github.com/nodejs/node/pull/11968
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com >
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-04-19 09:15:57 -07:00
Brian White
7cd0d4f644
buffer: fix backwards incompatibility
...
4a86803f6 introduced a backwards incompatibility by accident
and was not caught due to an existing test that wasn't strict enough.
This commit fixes both the backwards incompatibility and the test.
PR-URL: https://github.com/nodejs/node/pull/12439
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-04-18 08:47:11 -07:00
Rich Trott
096508dfa9
tools,lib: enable strict equality lint rule
...
Enablie a lint rule to require `===` and `!==` instead of `==` and `!=`
except in some well-defined cases:
* comparing against `null` as a shorthand for also checking for
`undefined`
* comparing the result of `typeof`
* comparing literal values
In cases where `==` or `!=` are being used as optimizations, use an
ESLint comment to disable the `eqeqeq` rule for that line explicitly. I
rather like this because it's a signal that the usage is intentional and
not a mistake.
PR-URL: https://github.com/nodejs/node/pull/12446
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-04-18 08:20:24 -07:00
Brian White
e0f0f2664e
buffer: use slightly faster NaN check
...
PR-URL: https://github.com/nodejs/node/pull/12286
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com >
2017-04-14 18:01:43 -04:00
Brian White
4749ec2aa3
buffer: optimize write()
...
PR-URL: https://github.com/nodejs/node/pull/12361
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-04-14 22:36:46 +02:00
Brian White
3ee4a1a281
buffer: optimize toString()
...
PR-URL: https://github.com/nodejs/node/pull/12361
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-04-14 22:36:42 +02:00
Brian White
4a86803f60
buffer: optimize from() and byteLength()
...
PR-URL: https://github.com/nodejs/node/pull/12361
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-04-14 22:35:59 +02:00
alejandro
51587b2202
buffer: preallocate array with buffer length
...
Because the final array length is known, it's better to allocate its
final length at initialization time to avoid future reallocations.
Also add an explicit buffer length greater than 0 comparison so
it's more readable, avoids the internal ToBoolean call and follows the
standard Node.js API format (as it can be checked in other similar
structures where 'length > 0' is preferred over 'length')
PR-URL: https://github.com/nodejs/node/pull/11733
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Brian White <mscdex@mscdex.net >
2017-04-05 18:36:09 -07:00
Rich Trott
1e6186e902
buffer,util: refactor for performance
...
internal/util.js definied toInteger() and toLength() but they were only
used by buffer.js. Inlining these small functions results in a small but
statistically-significant performance gain.
PR-URL: https://github.com/nodejs/node/pull/12153
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-04-04 09:39:09 -07:00
James M Snell
7eb1b4658e
buffer: zero fill Buffer(num) by default
...
PR-URL: https://github.com/nodejs/node/pull/12141
Ref: https://github.com/nodejs/CTC/issues/89
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Prince John Wesley <princejohnwesley@gmail.com >
Reviewed-By: Evan Lucas <evanlucas@me.com >
2017-04-03 09:57:24 -07:00
Anna Henningsen
6d93508369
buffer: expose FastBuffer on internal/buffer
...
PR-URL: https://github.com/nodejs/node/pull/11048
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
2017-03-29 05:14:16 +02:00
Rich Trott
39bba4dff8
buffer: remove unneeded eslint-disable comment
...
lib/buffer.js uses a function declaration for `Buffer`. So it never
uses an instance of `Buffer` in the global scope. Therefore the
disabling of the `require-buffer` custom rule is not needed. Remove the
comment.
PR-URL: https://github.com/nodejs/node/pull/11906
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Roman Reiss <me@silverwind.io >
2017-03-20 19:13:59 -07:00
James M Snell
98e54b0bd4
meta: restore original copyright header
...
A prior io.js era commit inappropriately removed the
original copyright statements from the source. This
restores those in any files still remaining from that
edit.
Ref: https://github.com/nodejs/TSC/issues/174
Ref: https://github.com/nodejs/node/pull/10599
PR-URL: https://github.com/nodejs/node/pull/10155
Note: This PR was required, reviewed-by and approved
by the Node.js Foundation Legal Committee and the TSC.
There is no `Approved-By:` meta data.
2017-03-10 11:23:48 -08:00
Rich Trott
4c05d6a0b7
buffer: refactor Buffer.prototype.inspect()
...
Replace toString().match().join() with toString().replace().trim(). This
enables the elimination of a length check becuase replace() will return
empty string if Buffer is empty whereas match() returns null.
PR-URL: https://github.com/nodejs/node/pull/11600
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2017-03-02 09:39:03 -08:00
Nikolai Vavilov
00c86cc8e9
buffer: remove Uint8Array check
...
This makes write[U]Int* operations on Buffer with `noAssert=false` about 3
times faster.
PR-URL: https://github.com/nodejs/node/pull/11324
Refs: https://github.com/nodejs/node/issues/11245
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Trevor Norris <trev.norris@gmail.com >
2017-02-16 16:55:56 +02:00
James M Snell
4b8b7e9d2b
buffer: refactor slowToString
...
Since slowToString only has one callsite, refactor to eliminate
the use of call.
PR-URL: https://github.com/nodejs/node/pull/11358
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-02-15 12:09:57 -08:00
James M Snell
1e21d05632
buffer: avoid use of arguments
...
Avoid use of arguments in Buffer.prototype.toString()
PR-URL: https://github.com/nodejs/node/pull/11358
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-02-15 12:09:47 -08:00
Ben Noordhuis
fd8587eb38
lib: replace \u2019 with regular ascii quote
...
The previous commit stores baked-in files with non-ASCII characters
as UTF-16. Replace the \u2019 with a regular quote character so that
the files they're in can be stored as one-byte strings. The UTF-16
functionality is still tested by the Unicode diagram in lib/timers.js.
PR-URL: https://github.com/nodejs/node/pull/11129
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-02-13 19:16:47 +01:00
Nikolai Vavilov
9a0829d728
buffer: stricter argument checking in toString
...
This prevents the confusing behavior of `buf.toString(0, 5)` by
disallowing passing `0` as the encoding.
PR-URL: https://github.com/nodejs/node/pull/11120
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2017-02-05 14:14:53 +02:00
James M Snell
5de3cf099c
lib: add static identifier codes for all deprecations
...
Assigns a static identifier code to all runtime and documentation
only deprecations. The identifier code is included in the emitted
DeprecationWarning.
Also adds a deprecations.md to the API docs to provide a central
location where deprecation codes can be referenced and explained.
PR-URL: https://github.com/nodejs/node/pull/10116
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com >
Reviewed-By: Michal Zasso <targos@protonmail.com >
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com >
2017-01-30 11:11:57 -08:00
Brian White
9e0f6a5eb4
buffer: improve compare() performance
...
PR-URL: https://github.com/nodejs/node/pull/10927
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-01-25 01:42:42 -05:00
dcposch@dcpos.ch
39f65e6656
buffer: fix comments in bidirectionalIndexOf
...
PR-URL: https://github.com/nodejs/node/pull/10162
Fixes: https://github.com/nodejs/node/issues/9801
Reviewed-By: Roman Reiss <me@silverwind.io >
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
Reviewed-By: Trevor Norris <trev.norris@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
2017-01-25 00:37:50 +01:00