Weijia Wang
ac23e6557f
buffer: move process.binding('buffer') to internalBinding
...
PR-URL: https://github.com/nodejs/node/pull/22370
Refs: https://github.com/nodejs/node/issues/22160
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Denys Otrishko <shishugi@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2018-10-15 19:01:20 +08:00
Anna Henningsen
cc31d8b2d4
src: remove public API for option variables
...
PR-URL: https://github.com/nodejs/node/pull/23069
Reviewed-By: Gus Caplan <me@gus.host >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Shingo Inoue <leko.noor@gmail.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
2018-10-03 14:08:06 -07:00
Rich Trott
f8d69911be
errors: use ERR_OUT_OF_RANGE for index errors
...
Remove ERR_INDEX_OUT_OF_RANGE in favor of ERR_OUT_OF_RANGE which is
capable of providing more detail. (In one instance, use
ERR_BUFFER_OUT_OF_BOUNDS which is more accurate in that one instance.)
PR-URL: https://github.com/nodejs/node/pull/22969
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Weijia Wang <starkwang@126.com >
2018-09-26 19:36:50 -07:00
Joyee Cheung
c67d3d0c3c
src: remove calls to SetWrapperClassId()
...
We have migrated from the deprecated RetainedObjectInfo API to
the new EmbedderGraph API, so there is no need to take care
of wrapper class ids anymore since they are dedicated to the
deprecated API (the new API uses a graph instead of ids to retrieve
info about nodes).
PR-URL: https://github.com/nodejs/node/pull/22975
Refs: https://github.com/nodejs/node/pull/21741
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2018-09-23 19:26:11 -04:00
Anna Henningsen
4286dcf17f
src: refactor Environment::GetCurrent() usage
...
Make `Environment::GetCurrent()` return `nullptr` if the current
`Context` is not a Node.js context, and for the relevant usage of
this function, either:
- Switch to the better `GetCurrent(args)` variant
- Turn functions in to no-ops where it makes sense
- Make it a `CHECK`, i.e. an API requirement, where it make sense
- Leave a `TODO` comment for verifying what, if anything, is to be done
PR-URL: https://github.com/nodejs/node/pull/22819
Reviewed-By: Gus Caplan <me@gus.host >
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
2018-09-17 17:20:27 +02:00
Ujjwal Sharma and Michaël Zasso
f464ac3c74
src: remove calls to deprecated v8 functions (IntegerValue)
...
Remove all calls to deprecated v8 functions (here:
Value::IntegerValue) inside the code (src directory only).
Co-authored-by: Michaël Zasso <targos@protonmail.com >
PR-URL: https://github.com/nodejs/node/pull/22129
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2018-09-05 13:42:38 +02:00
Anna Henningsen
71f633a32f
src: allow UTF-16 in generic StringBytes decode call
...
This allows removing a number of special cases in other
parts of the code, at least one of which was incorrect
in expecting aligned input when that was not guaranteed.
Fixes: https://github.com/nodejs/node/issues/22358
PR-URL: https://github.com/nodejs/node/pull/22622
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2018-09-03 22:33:42 +02:00
Ujjwal Sharma
37cd10a116
src: remove calls to deprecated v8 functions (Uint32Value)
...
Remove all calls to deprecated v8 functions (here:
Value::Uint32Value) inside the code (src directory only).
PR-URL: https://github.com/nodejs/node/pull/22143
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Denys Otrishko <shishugi@gmail.com >
2018-09-02 16:32:15 +02:00
Ujjwal Sharma and Michaël Zasso
a55c57b8c4
src: rework (mostly internal) functions to use Maybes
...
Rework all affected functions to use Maybes, thus improving error
handling substantially in internal functions, API functions as well as
utilities.
Co-authored-by: Michaël Zasso <targos@protonmail.com >
PR-URL: https://github.com/nodejs/node/pull/21935
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2018-09-02 14:25:16 +02:00
Michaël Zasso
b2f0cfa6b0
src: use String::Utf8Length with isolate
...
PR-URL: https://github.com/nodejs/node/pull/22531
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2018-08-29 12:28:19 +02:00
Michaël Zasso
a64fd7f320
src: use String::Write{OneByte,Utf8} with isolate
...
PR-URL: https://github.com/nodejs/node/pull/22531
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2018-08-29 12:28:14 +02:00
Tobias Nießen
3504850a00
buffer: remove superfluous assignment
...
PR-URL: https://github.com/nodejs/node/pull/21844
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Minwoo Jung <minwoo@nodesource.com >
Reviewed-By: Yuta Hiroto <hello@hiroppy.me >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2018-07-17 21:45:27 +02:00
XhmikosR
998f9ffd42
src,tools: use https://nodejs.org URL when possible.
...
PR-URL: https://github.com/nodejs/node/pull/21719
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Gus Caplan <me@gus.host >
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Jon Moss <me@jonathanmoss.me >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
2018-07-14 11:57:59 +02:00
Timothy Gu
65f617314d
src: start annotating native code side effect
...
PR-URL: https://github.com/nodejs/node/pull/21458
Refs: https://github.com/nodejs/node/issues/20977
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Gus Caplan <me@gus.host >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2018-06-25 23:15:35 -04:00
Tobias Nießen
39f209649f
src: add CHECK_NULL/CHECK_NOT_NULL macros
...
This change introduces CHECK_NULL and CHECK_NOT_NULL macros
similar to their definition in v8 and replaces instances of
CHECK/CHECK_EQ/CHECK_NE with these where it seems appropriate.
PR-URL: https://github.com/nodejs/node/pull/20914
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
2018-05-26 12:29:31 +02:00
Anna Henningsen
1f3fbd43b7
src: remove MarkIndependent() calls
...
The method has been deprecated in upstream V8, with messaging
indicating that it is the default for handles to be independent
now anyway.
PR-URL: https://github.com/nodejs/node/pull/20108
Refs: https://github.com/v8/v8/commit/71ad48fb8f214e80518ba0419796e4c571351255
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2018-04-22 11:23:29 +02:00
Joyee Cheung
8b1b36bfc5
src: throw ERR_BUFFER_OUT_OF_BOUNDS in node_buffer.cc
...
PR-URL: https://github.com/nodejs/node/pull/20121
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com >
2018-04-19 12:09:28 +08:00
Joyee Cheung
2c23e31c31
src: throw ERR_INVALID_ARG_TYPE in C++ argument checks
...
- Moves THROW_AND_RETURN_IF_NOT_BUFFER and
THROW_AND_RETURN_IF_NOT_STRING from node_crypto.cc to
node_errors.h so it can be reused.
- Move THROW_AND_RETURN_UNLESS_BUFFER in util.h to
node_buffer.cc and call THROW_AND_RETURN_IF_NOT_BUFFER
there. The only other reference to THROW_AND_RETURN_UNLESS_BUFFER in
node_i18n.cc can be safely replaced by an assertion since
the argument will be checked in JS land.
- Migrate ERR_INVALID_ARG_TYPE errors in C++. We can move the
checks to JS land if possible later without having to
go semver-major.
PR-URL: https://github.com/nodejs/node/pull/20121
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com >
2018-04-19 12:09:26 +08:00
Joyee Cheung
7e269f5266
src: migrate ERR_INDEX_OUT_OF_RANGE in C++
...
This patch migrates the "Index out of range" errors in C++
to errors with the code `ERR_INDEX_OUT_OF_RANGE` which have
equivalents in JavaScript.
PR-URL: https://github.com/nodejs/node/pull/20121
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com >
2018-04-19 12:09:24 +08:00
Sarat Addepalli
c6c957d3cc
src: fix upcoming V8 deprecation warnings
...
PR-URL: https://github.com/nodejs/node/pull/19490
Fixes: https://github.com/nodejs/node/issues/18909
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com >
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2018-03-23 08:50:03 +01:00
Ruben Bridgewater
1411b30f46
buffer: move c++ float functions to js
...
This ports the Buffer#write(Double|Float)(B|L)E functions to JS.
This fixes a security issue concerning type confusion and fixes
another possible crash in combination with `noAssert`.
In addition to that it will also significantly improve the write
performance.
Fixes: https://github.com/nodejs/node/issues/12179
Fixes: https://github.com/nodejs/node/issues/8724
PR-URL: https://github.com/nodejs/node/pull/18395
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
2018-03-02 19:23:57 +00:00
Ruben Bridgewater
177b7314cf
buffer: improve Buffer#fill performance
...
1) This improves the performance for Buffer#fill by using shortcuts.
2) It also ports throwing errors to JS. That way they contain the
proper error code.
3) Using negative `end` values will from now on result in an error
instead of just doing nothing.
4) Passing in `null` as encoding is from now on accepted as 'utf8'.
PR-URL: https://github.com/nodejs/node/pull/18790
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2018-03-02 02:09:24 +00:00
Ben Noordhuis
d4024815b7
src: remove unnecessary Reset() calls
...
The previous commit made persistent handles auto-reset on destruction.
This commit removes the Reset() calls that are now no longer necessary.
PR-URL: https://github.com/nodejs/node/pull/18656
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 >
2018-02-21 15:24:18 +01:00
Ben Noordhuis
992703f2b5
src: prevent persistent handle resource leaks
...
Replace v8::Persistent with node::Persistent, a specialization that
resets the persistent handle on destruction. Prevents accidental
resource leaks when forgetting to call .Reset() manually.
I'm fairly confident this commit fixes a number of resource leaks that
have gone undiagnosed so far.
PR-URL: https://github.com/nodejs/node/pull/18656
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 >
2018-02-21 15:24:18 +01:00
Anna Henningsen
da3078835a
src: introduce internal buffer slice constructor
...
Add a C++ variant of `Buffer.from(arrayBuffer, offset, length)`.
PR-URL: https://github.com/nodejs/node/pull/18030
Reviewed-By: James M Snell <jasnell@gmail.com >
2018-01-18 22:42:24 +01:00
cjihrig
1e802539b2
buffer: throw when filling with empty buffers
...
Prior to this commit, Node would enter an infinite loop when
attempting to fill a non-zero length buffer with a zero length
buffer. This commit introduces a thrown exception in this scenario.
PR-URL: https://github.com/nodejs/node/pull/18129
Fixes: https://github.com/nodejs/node/issues/18128
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com >
2018-01-17 09:05:52 -05: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
Rich Trott
d4cd8c2a77
doc: use American spellings per style guide
...
PR-URL: https://github.com/nodejs/node/pull/17471
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Jon Moss <me@jonathanmoss.me >
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2017-12-06 16:52:31 -08: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
Leko
19221d1d6f
src: use non-deprecated versions of ->To*() utils
...
Squashed from multiple commits:
- src: replace ->To*(isolate) with ->To*(context).ToLocalChecked()
- test: use .As<Object> on Exception::Error
> Exception::Error always returns an object, so e.As<Object>() should also work fine
See https://github.com/nodejs/node/pull/17343#discussion_r153232027
- test: use .As<Object> instead of ->ToObject
we already checked that its a buffer
- src: use FromMaybe instead of ToLocalChecked
It fixed this test case: 19a1b2e414
- src: pass context to Get()
Dont pass Local<Context> is deprecated soon.
So we migrate to maybe version.
- src: return if Get or ToObject return an empty before call ToLocalChecked
Refs: https://github.com/nodejs/node/issues/17244
PR-URL: https://github.com/nodejs/node/pull/17343
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com >
2017-12-01 20:37:58 +01:00
Daniel Bevenius
e32bbbf4d7
src: use nullptr instead of NULL
...
PR-URL: https://github.com/nodejs/node/pull/17373
Reviewed-By: Jon Moss <me@jonathanmoss.me >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com >
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2017-12-01 07:45:00 +01:00
Yihong Wang
8680bb9f1a
src: explicitly register built-in modules
...
Previously, built-in modules are registered before main() via
__attribute__((constructor)) mechanism in GCC and similiar
mechanism in MSVC. This causes some issues when node is built as
static library. Calling module registration function for built-in
modules in node::Init() helps to avoid the issues.
Signed-off-by: Yihong Wang <yh.wang@ibm.com >
PR-URL: https://github.com/nodejs/node/pull/16565
Refs: https://github.com/nodejs/node/pull/14986#issuecomment-332758206
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2017-11-13 23:17:34 +00:00
Joyee Cheung
cdb263d3ba
src: do not include x.h if x-inl.h is included
...
PR-URL: https://github.com/nodejs/node/pull/16548
Fixes: https://github.com/nodejs/node/issues/16519
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com >
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2017-10-30 18:56:38 +08:00
Ben Noordhuis
1b7372f2fb
src: replace ASSERT with CHECK
...
Builds always have asserts enabled so there is no point distinguishing
between debug-only checks and run-time checks. Replace calls to ASSERT
and friends with their CHECK counterparts.
Fixes: https://github.com/nodejs/node/issues/14461
PR-URL: https://github.com/nodejs/node/pull/14474
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Nikolai Vavilov <vvnicholas@gmail.com >
Reviewed-By: XadillaX <admin@xcoder.in >
2017-07-27 17:11:08 +02:00
James M Snell
ed21cb1774
util: implement WHATWG Encoding Standard API
...
Provide an (initially experimental) implementation of the WHATWG Encoding
Standard API (`TextDecoder` and `TextEncoder`). The is the same API
implemented on the browser side.
By default, with small-icu, only the UTF-8, UTF-16le and UTF-16be decoders
are supported. With full-icu enabled, every encoding other than iso-8859-16
is supported.
This provides a basic test, but does not include the full web platform
tests. Note: many of the web platform tests for this would fail by default
because we ship with small-icu by default.
A process warning will be emitted on first use to indicate that the
API is still experimental. No runtime flag is required to use the
feature.
Refs: https://encoding.spec.whatwg.org/
PR-URL: https://github.com/nodejs/node/pull/13644
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2017-07-24 14:04:13 -07: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
Anna Henningsen
9d723e85fb
buffer: remove pointless C++ utility methods
...
PR-URL: https://github.com/nodejs/node/pull/12760
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com >
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com >
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-05-02 14:19:51 -07:00
Anna Henningsen
9d522225e7
src: reduce number of exported symbols
...
Use `static` definitions and anonymous namespaces to reduce the
number of symbols that are exported from the `node` binary.
PR-URL: https://github.com/nodejs/node/pull/12366
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-04-14 22:47:29 +02:00
Timothy Gu
faa447b256
src: allow ArrayBufferView as instance of Buffer
...
PR-URL: https://github.com/nodejs/node/pull/12223
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-04-12 10:02:59 -07:00
Rich Trott
682573c11d
buffer: remove error for malformatted hex string
...
Remove error message when a hex string of an incorrect length is sent
to .write() or .fill().
PR-URL: https://github.com/nodejs/node/pull/12012
Fixes: https://github.com/nodejs/node/issues/3770
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com >
2017-03-28 11:31:10 -07:00
Timothy Gu
4fb9b1226f
src, buffer: do not segfault on out-of-range index
...
Also add test cases for partial writes and invalid indices.
PR-URL: https://github.com/nodejs/node/pull/11927
Fixes: https://github.com/nodejs/node/issues/8724
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-03-21 21:53:57 -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
Anna Henningsen
beca3244e2
buffer: allow Uint8Array input to methods
...
Allow all methods on `buffer` and `Buffer` to take `Uint8Array`
arguments where it makes sense. On the native side, there is
effectively no difference, and as a bonus the `isUint8Array`
check is faster than `instanceof Buffer`.
PR-URL: https://github.com/nodejs/node/pull/10236
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Trevor Norris <trev.norris@gmail.com >
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com >
2016-12-21 07:48:14 +01:00
Anna Henningsen
9ee915be76
buffer: handle UCS2 .fill() properly on BE
...
There was a byte-order mismatch for `buffer#fill` on big-endian
platforms. Weirdly, the tests seemed to expect that wrong behaviour.
PR-URL: https://github.com/nodejs/node/pull/9837
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Trevor Norris <trev.norris@gmail.com >
2016-12-12 16:58:40 +01:00
James M Snell
e8eaaa7724
buffer: add buffer.transcode
...
Add buffer.transcode(source, from, to) method. Primarily uses ICU
to transcode a buffer's content from one of Node.js' supported
encodings to another.
Originally part of a proposal to add a new unicode module. Decided
to refactor the approach towrds individual PRs without a new module.
Refs: https://github.com/nodejs/node/pull/8075
PR-URL: https://github.com/nodejs/node/pull/9038
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2016-10-25 10:12:02 -07:00
Trevor Norris
7bffe23da0
buffer: fix range checks for slice()
...
Using the black magic of Symbol.toPrimitive the numeric value of
start/end can be changed when Uint32Value() is called once
Buffer::Fill() is entered. Allowing the CHECK() to be bypassed.
The bug report was only for "start", but the same can be done with
"end". Perform checks for both in node::Buffer::Fill() to make sure the
issue can't be triggered, even if process.binding is used directly.
Include tests for each case. Along with a check to make sure the last
time the value is accessed returns -1. This should be enough to make
sure Buffer::Fill() is receiving the correct value. Along with two tests
against process.binding directly.
Fixes: https://github.com/nodejs/node/issues/9149
PR-URL: https://github.com/nodejs/node/pull/9174
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Franziska Hinkelmann <ranziska.hinkelmann@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
2016-10-20 13:40:47 -06:00
Zach Bjornson
7420835390
src: fix build for older clang
...
Removes use of builtins that are unavailable for older clang. Per
benchmarks, only uses builtins on Windows, where speedup is
significant.
Also adds test for unaligned ucs2 buffer write. Between #3410
and #7645 , bytes were swapped twice on bigendian platforms if buffer
was not two-byte aligned. See comment in #7645 .
PR-URL: https://github.com/nodejs/node/pull/7645
Fixes: https://github.com/nodejs/node/issues/7618
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: James M Snell <jasnell@gmail.com >
2016-10-04 09:28:18 +01:00