Skip to content

Commit c40b81c

Browse files
committed
Fix node.js version checks and Buffer use.
1 parent 4759f36 commit c40b81c

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

CloudI.js

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ var fs = require('fs');
3636
var assert = require('assert');
3737

3838
var toNativeString = {}.toString;
39+
CloudI.nodejs_version_after = Erlang.nodejs_version_after;
40+
var bufferFrom;
41+
if (Erlang.nodejs_version_after('5.10.0',true)) {
42+
bufferFrom = Buffer.from;
43+
}
44+
else {
45+
bufferFrom = Buffer;
46+
}
3947
var littleEndian = (
4048
(new Uint16Array((new Uint8Array([0,1])).buffer))[0] === 0x0100);
4149
var unpackUint8 = function unpackUint8 (i, data) {
@@ -67,25 +75,12 @@ else {
6775
unpackUint32 = unpackUint32big;
6876
}
6977
var packUint32big = function packUint32big (value) {
70-
return new Buffer([(value >>> 24) & 0xff,
71-
(value >>> 16) & 0xff,
72-
(value >>> 8) & 0xff,
73-
value & 0xff]);
74-
};
75-
var nodejs_version = process.versions['node'].split('.').map(s => parseInt(s));
76-
var nodejsVersionAfter = function nodejsVersionAfter (s, include) {
77-
var v = s.split('.').map(s => parseInt(s));
78-
for (var i = 0; i < v.length; i++) {
79-
if (nodejs_version[i] > v[i]) {
80-
return true;
81-
}
82-
if (nodejs_version[i] < v[i]) {
83-
return false;
84-
}
85-
}
86-
return include;
78+
return new bufferFrom([(value >>> 24) & 0xff,
79+
(value >>> 16) & 0xff,
80+
(value >>> 8) & 0xff,
81+
value & 0xff]);
8782
};
88-
if (nodejsVersionAfter('10.0.0',true)) {
83+
if (Erlang.nodejs_version_after('10.0.0',true)) {
8984
var originalEmitWarning = process.emitWarning;
9085
process.emitWarning = function(warning, type, code, ctor) {
9186
if (code === 'DEP0097') {
@@ -238,7 +233,7 @@ CloudI.API = function API (thread_index, callback) {
238233
else {
239234
throw new InvalidInputException();
240235
}
241-
if (nodejsVersionAfter('0.12.1',false)) {
236+
if (Erlang.nodejs_version_after('0.12.1',false)) {
242237
API._s_in = new net.Socket({fd: (thread_index + 3),
243238
readable: true,
244239
writable: true});

0 commit comments

Comments
 (0)