-
Notifications
You must be signed in to change notification settings - Fork 551
Breaking changes between v0.12 and next LTS release
This documents lists breaking changes, or potentially breaking changes, when upgrading from v0.12 to the next LTS release that will come from the converged repository between Node.js and io.js. It has been compiled from the following sources:
-
[Issues in the convergence repository representing ports of changes from joyent/node to nodejs/node, which was based off of nodejs/io.js, that were not merged](https://github.com/nodejs/node/issues?utf8=✓&q=is%3Aissue+label%3Apull-from- joyent-node).
-
The document that describes breaking changes between io.js releases.
-
[The list of issues/PRs in nodejs/io.js that were considered as needing a major version bump according to semver](https://github.com/nodejs/io.js/issues?utf8=✓&q=label%3Asemver- major+).
-
The document that describes API changes in V8.
See https://github.com/nodejs/io.js/pull/826. Potentially mitigated if https://github.com/nodejs/node/issues/39 is merged.
See https://github.com/nodejs/node/issues/20 for more details.
See https://github.com/nodejs/io.js/commit/faa687b4be2cea71c545cc1bec631c164b608acd
See https://github.com/nodejs/node/issues/52
See https://github.com/nodejs/io.js/pull/747
https://github.com/nodejs/io.js/pull/1796
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.
See https://github.com/nodejs/io.js/pull/1937.
See https://github.com/nodejs/io.js/pull/1411
Not sure if it actually breaks anything. See github.com/nodejs/io.js/pull/1561.
See https://github.com/nodejs/io.js/pull/621.
v8::Isolate::New() now returns an initialized Isolate: https://codereview.chromium.org/583153002
Embedders that used methods that influence the Isolate setup, such as V8::SetResourceConstraints, SetFunctionEntryHook, SetJidCodeHandler, or modifying flags need to either pass those constraints to the Isolate::New factory method or modify flags before creating the isolate.
Embedders relying on SetResourceConstraints to modify the stack limit need to use Isolate::SetStackLimit.
Last but not least, if you invoke Isolate::New() on a different thread than you intend to use the Isolate, you need to use v8::Locker to bind it to the thread you will use it on.
Furthermore, V8::Initialize needs to be invoked before Isolate::New is invoked.
Add IsGeneratorFunction and IsGeneratorObject checks to v8::Value: https://codereview.chromium.org/608503002
Rename ascii to one-byte where applicable: https://codereview.chromium.org/559913002
Move functions in v8::V8 that should be on v8::Isolate: https://codereview.chromium.org/652193006
Remove v8stdint.h: https://codereview.chromium.org/670673002
Remove deprecated Ascii-related identifiers from v8.h: https://codereview.chromium.org/665883002
Remove v8::Object::IsDirty(): https://codereview.chromium.org/670703002/
Remove PersistentBase::ClearAndLeak: https://codereview.chromium.org/635513002
Remove declarative accessors: https://codereview.chromium.org/834443004
The API was never finished, and we decided to stop working on it. Embedders should use the regular accessors API
Remove support for signatures with arguments: https://codereview.chromium.org/848173002
Embedders need to verify the types of the arguments themselves in the callback.
Remove ForceDelete: https://codereview.chromium.org/854493004
Remove undetectable strings: https://codereview.chromium.org/916753002
Remove v8::Isolate::ClearInterrupt: https://codereview.chromium.org/1032623007
Use v8::Isolate::IdleNotificationDeadline instead.