Skip to content
Domenic Denicola edited this page Jun 10, 2015 · 17 revisions

Breaking Changes Between io.js Versions

3.0.0 from 2.x

Buffer.concat changes

Through 2.x, if Buffer.concat is invoked with a single element array, then it will simply return the first element from it. But, starting from 3.0.0, irrespective of the number of elements in the array, a new Buffer object will be created and returned.

Refs: #1891, #1937, f4f16bf

dgram send() error changes

Through 2.x, the the dgram socket.send() method emitted errors when a DNS lookup failed, even when a callback was provided. Starting from 3.0.0, if a callback is provided, no error event will be emitted.

Refs: #1796

http server socket finish event stuff???

Somehow this is marked as semver-major?? https://github.com/nodejs/io.js/commit/6020d2a2fb75de6766c807864fa8f1c0fba88ec9 https://github.com/nodejs/io.js/pull/1411 Someone help.

V8 Upgrade

The upgrade from V8 4.2 to 4.3 will require a recompile of all native add-ons. The API surface area has not changed significantly, so most add-ons will "just work" after a recompile.

However, 4.3 introduces the new Maybe<> and MaybeLocal<> types, to fix systemic use-after-failure bugs where consumers could accidentally use empty handles. Many new APIs were introduced that return these types and take a Context argument. Add-on authors are encouraged to transition to these new maybe-style APIs as soon as possible, as V8 has deprecated the old ones and will eventually remove them.

2.0.0 from 1.x

Consistent Cross-platform os.tmpdir() Behavior

os.tmpdir() has been changed to never return a trailing slash regardless of the host platform.

Refs: #747 / bb97b70

V8 Upgrade

The upgrade from V8 4.1 to 4.2 will require a recompile of all native add-ons. (The API surface area has not changed significantly, so most add-ons will "just work" after a recompile.)

Clone this wiki locally