@@ -36,6 +36,14 @@ var fs = require('fs');
3636var assert = require ( 'assert' ) ;
3737
3838var 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+ }
3947var littleEndian = (
4048 ( new Uint16Array ( ( new Uint8Array ( [ 0 , 1 ] ) ) . buffer ) ) [ 0 ] === 0x0100 ) ;
4149var unpackUint8 = function unpackUint8 ( i , data ) {
@@ -67,25 +75,12 @@ else {
6775 unpackUint32 = unpackUint32big ;
6876}
6977var 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