From 2d6149991ae0f2b6bb4aa77a2a3b7f6ebadb836c Mon Sep 17 00:00:00 2001 From: Antonio Nuno Monteiro Date: Tue, 5 Dec 2023 17:43:34 -0800 Subject: [PATCH] feat(runtime): drop unit arguments and embrace t-last in Js.Typed_array --- jscomp/runtime/js_typed_array.cppo.ml | 143 +++---- .../dist/jscomp/test/js_typed_array_test.js | 351 ++++++++---------- jscomp/test/js_typed_array_test.ml | 154 ++++---- 3 files changed, 296 insertions(+), 352 deletions(-) diff --git a/jscomp/runtime/js_typed_array.cppo.ml b/jscomp/runtime/js_typed_array.cppo.ml index f7c6230776..71b70057c5 100644 --- a/jscomp/runtime/js_typed_array.cppo.ml +++ b/jscomp/runtime/js_typed_array.cppo.ml @@ -49,7 +49,8 @@ module ArrayBuffer = struct external byteLength : t -> int = "byteLength" [@@mel.get] - external slice : t -> ?start:int -> ?end_:int -> unit -> array_buffer = "slice" [@@mel.send] + external slice : ?start:int -> ?end_:int -> array_buffer = "slice" + [@@mel.send.pipe: t] end open struct @@ -69,39 +70,39 @@ end external byteLength : t -> int = "byteLength" [@@mel.get]\ external byteOffset : t -> int = "byteOffset" [@@mel.get]\ \ - external setArray : t -> elt array -> unit = "set" [@@mel.send]\ - external setArrayOffset : t -> elt array -> int -> unit = "set" [@@mel.send]\ + external setArray : elt array -> unit = "set" [@@mel.send.pipe: t]\ + external setArrayOffset : elt array -> int -> unit = "set" [@@mel.send.pipe: t]\ (* There's also an overload for typed arrays, but don't know how to model that without subtyping *)\ \ (* Array interface(-ish) *)\ external length : t -> int = "length" [@@mel.get]\ \ (* Mutator functions *)\ - external copyWithin : t -> to_:int -> ?start:int -> ?end_:int -> unit -> t = "copyWithin" [@@mel.send]\ + external copyWithin : to_:int -> ?start:int -> ?end_:int -> t = "copyWithin" [@@mel.send.pipe: t]\ \ - external fill : t -> elt -> ?start:int -> ?end_:int -> unit -> t = "fill" [@@mel.send]\ + external fill : elt -> ?start:int -> ?end_:int -> t = "fill" [@@mel.send.pipe: t]\ \ external reverseInPlace : t -> t = "reverse" [@@mel.send]\ \ external sortInPlace : t -> t = "sort" [@@mel.send]\ - external sortInPlaceWith : t -> f:(elt -> elt -> int [@u]) -> t = "sort" [@@mel.send]\ + external sortInPlaceWith : f:(elt -> elt -> int [@mel.uncurry]) -> t = "sort" [@@mel.send.pipe: t]\ \ (* Accessor functions *)\ - external includes : t -> value:elt -> bool = "includes" [@@mel.send] (* ES2016 *)\ + external includes : value:elt -> bool = "includes" [@@mel.send.pipe: t] (* ES2016 *)\ \ - external indexOf : t -> value:elt -> ?start:int -> unit -> int = "indexOf" [@@mel.send]\ + external indexOf : value:elt -> ?start:int -> int = "indexOf" [@@mel.send.pipe: t]\ \ - external join : t -> ?sep:string -> unit -> string = "join" [@@mel.send]\ + external join : ?sep:string -> string = "join" [@@mel.send.pipe: t]\ \ - external lastIndexOf : t -> value:elt -> int = "lastIndexOf" [@@mel.send]\ - external lastIndexOfFrom : t -> value:elt -> from:int -> int = "lastIndexOf" [@@mel.send]\ + external lastIndexOf : value:elt -> int = "lastIndexOf" [@@mel.send.pipe: t]\ + external lastIndexOfFrom : value:elt -> from:int -> int = "lastIndexOf" [@@mel.send.pipe: t]\ \ - external slice : t -> ?start:int -> ?end_:int -> unit -> t = "slice" [@@mel.send]\ + external slice : ?start:int -> ?end_:int -> t = "slice" [@@mel.send.pipe: t]\ (** [start] is inclusive, [end_] exclusive *)\ \ external copy : t -> t = "slice" [@@mel.send]\ \ - external subarray : t -> ?start:int -> ?end_:int -> unit -> t = "subarray" [@@mel.send]\ + external subarray : ?start:int -> ?end_:int -> t = "subarray" [@@mel.send.pipe: t]\ (** [start] is inclusive, [end_] exclusive *)\ \ external toString : t -> string = "toString" [@@mel.send]\ @@ -111,37 +112,37 @@ end (* commented out until bs has a plan for iterators external entries : t -> (int * elt) array_iter = "" [@@mel.send] *)\ - external every : t -> f:(elt -> bool [@u]) -> bool = "every" [@@mel.send]\ - external everyi : t -> f:(elt -> int -> bool [@u]) -> bool = "every" [@@mel.send]\ + external every : f:(elt -> bool [@mel.uncurry]) -> bool = "every" [@@mel.send.pipe: t]\ + external everyi : f:(elt -> int -> bool [@mel.uncurry]) -> bool = "every" [@@mel.send.pipe: t]\ \ \ - external filter : t -> f:(elt -> bool [@u]) -> t = "filter" [@@mel.send]\ - external filteri : t -> f:(elt -> int -> bool [@u]) -> t = "filter" [@@mel.send]\ + external filter : f:(elt -> bool [@mel.uncurry]) -> t = "filter" [@@mel.send.pipe: t]\ + external filteri : f:(elt -> int -> bool [@mel.uncurry]) -> t = "filter" [@@mel.send.pipe: t]\ \ - external find : t -> f:(elt -> bool [@u]) -> elt Js_internal.undefined = "find" [@@mel.send]\ - external findi : t -> f:(elt -> int -> bool [@u]) -> elt Js_internal.undefined = "find" [@@mel.send]\ + external find : f:(elt -> bool [@mel.uncurry]) -> elt Js_internal.undefined = "find" [@@mel.send.pipe: t]\ + external findi : f:(elt -> int -> bool [@mel.uncurry]) -> elt Js_internal.undefined = "find" [@@mel.send.pipe: t]\ \ - external findIndex : t -> f:(elt -> bool [@u]) -> int = "findIndex" [@@mel.send]\ - external findIndexi : t -> f:(elt -> int -> bool [@u]) -> int = "findIndex" [@@mel.send]\ + external findIndex : f:(elt -> bool [@mel.uncurry]) -> int = "findIndex" [@@mel.send.pipe: t]\ + external findIndexi : f:(elt -> int -> bool [@mel.uncurry]) -> int = "findIndex" [@@mel.send.pipe: t]\ \ - external forEach : t -> f:(elt -> unit [@u]) -> unit = "forEach" [@@mel.send]\ - external forEachi : t -> f:(elt -> int -> unit [@u]) -> unit = "forEach" [@@mel.send]\ + external forEach : f:(elt -> unit [@mel.uncurry]) -> unit = "forEach" [@@mel.send.pipe: t]\ + external forEachi : f:(elt -> int -> unit [@mel.uncurry]) -> unit = "forEach" [@@mel.send.pipe: t]\ \ (* commented out until bs has a plan for iterators external keys : t -> int array_iter = "" [@@mel.send] *)\ \ - external map : t -> f:(elt -> 'b [@u]) -> 'b typed_array = "map" [@@mel.send]\ - external mapi : t -> f:(elt -> int -> 'b [@u]) -> 'b typed_array = "map" [@@mel.send]\ + external map : f:(elt -> 'b [@mel.uncurry]) -> 'b typed_array = "map" [@@mel.send.pipe: t]\ + external mapi : f:(elt -> int -> 'b [@mel.uncurry]) -> 'b typed_array = "map" [@@mel.send.pipe: t]\ \ - external reduce : t -> f:('b -> elt -> 'b [@u]) -> init:'b -> 'b = "reduce" [@@mel.send]\ - external reducei : t -> f:('b -> elt -> int -> 'b [@u]) -> init:'b -> 'b = "reduce" [@@mel.send]\ + external reduce : f:('b -> elt -> 'b [@mel.uncurry]) -> init:'b -> 'b = "reduce" [@@mel.send.pipe: t]\ + external reducei : f:('b -> elt -> int -> 'b [@mel.uncurry]) -> init:'b -> 'b = "reduce" [@@mel.send.pipe: t]\ \ - external reduceRight : t -> f:('b -> elt -> 'b [@u]) -> init:'b -> 'b = "reduceRight" [@@mel.send]\ - external reduceRighti : t -> f:('b -> elt -> int -> 'b [@u]) -> init:'b -> 'b = "reduceRight" [@@mel.send]\ + external reduceRight : f:('b -> elt -> 'b [@mel.uncurry]) -> init:'b -> 'b = "reduceRight" [@@mel.send.pipe: t]\ + external reduceRighti : f:('b -> elt -> int -> 'b [@mel.uncurry]) -> init:'b -> 'b = "reduceRight" [@@mel.send.pipe: t]\ \ - external some : t -> f:(elt -> bool [@u]) -> bool = "some" [@@mel.send]\ - external somei : t -> f:(elt -> int -> bool [@u]) -> bool = "some" [@@mel.send]\ + external some : f:(elt -> bool [@mel.uncurry]) -> bool = "some" [@@mel.send.pipe: t]\ + external somei : f:(elt -> int -> bool [@mel.uncurry]) -> bool = "some" [@@mel.send.pipe: t]\ \ external _BYTES_PER_ELEMENT: int = STRINGIFY(moduleName.BYTES_PER_ELEMENT) \ \ @@ -216,57 +217,57 @@ module DataView = struct external byteLength : t -> int = "byteLength" [@@mel.get] external byteOffset : t -> int = "byteOffset" [@@mel.get] - external getInt8 : t -> int -> int = "getInt8" [@@mel.send] - external getUint8 : t -> int -> int = "getUint8" [@@mel.send] + external getInt8 : int -> int = "getInt8" [@@mel.send.pipe: t] + external getUint8 : int -> int = "getUint8" [@@mel.send.pipe: t] - external getInt16: t -> int -> int = "getInt16" [@@mel.send] - external getInt16LittleEndian : t -> int -> (_ [@mel.as 1]) -> int = - "getInt16" [@@mel.send] + external getInt16: int -> int = "getInt16" [@@mel.send.pipe: t] + external getInt16LittleEndian : int -> (_ [@mel.as 1]) -> int = "getInt16" + [@@mel.send.pipe: t] - external getUint16: t -> int -> int = "getUint16" [@@mel.send] - external getUint16LittleEndian : t -> int -> (_ [@mel.as 1]) -> int = - "getUint16" [@@mel.send] + external getUint16: int -> int = "getUint16" [@@mel.send.pipe: t] + external getUint16LittleEndian : int -> (_ [@mel.as 1]) -> int = + "getUint16" [@@mel.send.pipe: t] - external getInt32: t -> int -> int = "getInt32" [@@mel.send] - external getInt32LittleEndian : t -> int -> (_ [@mel.as 1]) -> int = - "getInt32" [@@mel.send] + external getInt32: int -> int = "getInt32" [@@mel.send.pipe: t] + external getInt32LittleEndian : int -> (_ [@mel.as 1]) -> int = + "getInt32" [@@mel.send.pipe: t] - external getUint32: t -> int -> int = "getUint32" [@@mel.send] - external getUint32LittleEndian : t -> int -> (_ [@mel.as 1]) -> int = - "getUint32" [@@mel.send] + external getUint32: int -> int = "getUint32" [@@mel.send.pipe: t] + external getUint32LittleEndian : int -> (_ [@mel.as 1]) -> int = + "getUint32" [@@mel.send.pipe: t] - external getFloat32: t -> int -> float = "getFloat32" [@@mel.send] - external getFloat32LittleEndian : t -> int -> (_ [@mel.as 1]) -> float = - "getFloat32" [@@mel.send] + external getFloat32: int -> float = "getFloat32" [@@mel.send.pipe: t] + external getFloat32LittleEndian : int -> (_ [@mel.as 1]) -> float = + "getFloat32" [@@mel.send.pipe: t] - external getFloat64: t -> int -> float = "getFloat64" [@@mel.send] - external getFloat64LittleEndian : t -> int -> (_ [@mel.as 1]) -> float = - "getFloat64" [@@mel.send] + external getFloat64: int -> float = "getFloat64" [@@mel.send.pipe: t] + external getFloat64LittleEndian : int -> (_ [@mel.as 1]) -> float = + "getFloat64" [@@mel.send.pipe: t] - external setInt8 : t -> int -> int -> unit = "setInt8" [@@mel.send] - external setUint8 : t -> int -> int -> unit = "setUint8" [@@mel.send] + external setInt8 : int -> int -> unit = "setInt8" [@@mel.send.pipe: t] + external setUint8 : int -> int -> unit = "setUint8" [@@mel.send.pipe: t] - external setInt16: t -> int -> int -> unit = "setInt16" [@@mel.send] - external setInt16LittleEndian : t -> int -> int -> (_ [@mel.as 1]) -> unit = - "setInt16" [@@mel.send] + external setInt16: int -> int -> unit = "setInt16" [@@mel.send.pipe: t] + external setInt16LittleEndian : int -> int -> (_ [@mel.as 1]) -> unit = + "setInt16" [@@mel.send.pipe: t] - external setUint16: t -> int -> int -> unit = "setUint16" [@@mel.send] - external setUint16LittleEndian : t -> int -> int -> (_ [@mel.as 1]) -> unit = - "setUint16" [@@mel.send] + external setUint16: int -> int -> unit = "setUint16" [@@mel.send.pipe: t] + external setUint16LittleEndian : int -> int -> (_ [@mel.as 1]) -> unit = + "setUint16" [@@mel.send.pipe: t] - external setInt32: t -> int -> int -> unit = "setInt32" [@@mel.send] - external setInt32LittleEndian : t -> int -> int -> (_ [@mel.as 1]) -> unit = - "setInt32" [@@mel.send] + external setInt32: int -> int -> unit = "setInt32" [@@mel.send.pipe: t] + external setInt32LittleEndian : int -> int -> (_ [@mel.as 1]) -> unit = + "setInt32" [@@mel.send.pipe: t] - external setUint32: t -> int -> int -> unit = "setUint32" [@@mel.send] - external setUint32LittleEndian : t -> int -> int -> (_ [@mel.as 1]) -> unit = - "setUint32" [@@mel.send] + external setUint32: int -> int -> unit = "setUint32" [@@mel.send.pipe: t] + external setUint32LittleEndian : int -> int -> (_ [@mel.as 1]) -> unit = + "setUint32" [@@mel.send.pipe: t] - external setFloat32: t -> int -> float -> unit = "setFloat32" [@@mel.send] - external setFloat32LittleEndian : t -> int -> float -> (_ [@mel.as 1]) -> unit = - "setFloat32" [@@mel.send] + external setFloat32: int -> float -> unit = "setFloat32" [@@mel.send.pipe: t] + external setFloat32LittleEndian : int -> float -> (_ [@mel.as 1]) -> unit = + "setFloat32" [@@mel.send.pipe: t] - external setFloat64: t -> int -> float -> unit = "setFloat64" [@@mel.send] - external setFloat64LittleEndian : t -> int -> float -> (_ [@mel.as 1]) -> unit = - "setFloat64" [@@mel.send] + external setFloat64: int -> float -> unit = "setFloat64" [@@mel.send.pipe: t] + external setFloat64LittleEndian : int -> float -> (_ [@mel.as 1]) -> unit = + "setFloat64" [@@mel.send.pipe: t] end diff --git a/jscomp/test/dist/jscomp/test/js_typed_array_test.js b/jscomp/test/dist/jscomp/test/js_typed_array_test.js index 4ab61c237c..f88fd7c379 100644 --- a/jscomp/test/dist/jscomp/test/js_typed_array_test.js +++ b/jscomp/test/dist/jscomp/test/js_typed_array_test.js @@ -407,9 +407,6 @@ var suites_1 = { hd: [ "typed_array - sortInPlaceWith", (function (param) { - var arg = function (a, b) { - return b - a | 0; - }; return { TAG: /* Eq */0, _0: new Int8Array([ @@ -417,13 +414,13 @@ var suites_1 = { 2, 1 ]), - _1: (function (param) { - return param.sort(arg); - })(new Int8Array([ - 3, - 1, - 2 - ])) + _1: new Int8Array([ + 3, + 1, + 2 + ]).sort(function (a, b) { + return b - a | 0; + }) }; }) ], @@ -673,19 +670,16 @@ var suites_1 = { hd: [ "typed_array - every", (function (param) { - var arg = function (n) { - return n > 0; - }; return { TAG: /* Eq */0, _0: true, - _1: (function (param) { - return param.every(arg); - })(new Int8Array([ - 1, - 2, - 3 - ])) + _1: new Int8Array([ + 1, + 2, + 3 + ]).every(function (n) { + return n > 0; + }) }; }) ], @@ -693,19 +687,16 @@ var suites_1 = { hd: [ "typed_array - everyi", (function (param) { - var arg = function (param, i) { - return i > 0; - }; return { TAG: /* Eq */0, _0: false, - _1: (function (param) { - return param.every(arg); - })(new Int8Array([ - 1, - 2, - 3 - ])) + _1: new Int8Array([ + 1, + 2, + 3 + ]).every(function (param, i) { + return i > 0; + }) }; }) ], @@ -713,23 +704,20 @@ var suites_1 = { hd: [ "typed_array - filter", (function (param) { - var arg = function (n) { - return n % 2 === 0; - }; return { TAG: /* Eq */0, _0: new Int8Array([ 2, 4 ]), - _1: (function (param) { - return param.filter(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).filter(function (n) { + return n % 2 === 0; + }) }; }) ], @@ -737,23 +725,20 @@ var suites_1 = { hd: [ "typed_array - filteri", (function (param) { - var arg = function (param, i) { - return i % 2 === 0; - }; return { TAG: /* Eq */0, _0: new Int8Array([ 1, 3 ]), - _1: (function (param) { - return param.filter(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).filter(function (param, i) { + return i % 2 === 0; + }) }; }) ], @@ -761,20 +746,17 @@ var suites_1 = { hd: [ "typed_array - find", (function (param) { - var arg = function (n) { - return n % 2 === 0; - }; return { TAG: /* Eq */0, _0: 2, - _1: (function (param) { - return param.find(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).find(function (n) { + return n % 2 === 0; + }) }; }) ], @@ -782,20 +764,17 @@ var suites_1 = { hd: [ "typed_array - findi", (function (param) { - var arg = function (param, i) { - return i % 2 === 0; - }; return { TAG: /* Eq */0, _0: 1, - _1: (function (param) { - return param.find(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).find(function (param, i) { + return i % 2 === 0; + }) }; }) ], @@ -803,20 +782,17 @@ var suites_1 = { hd: [ "typed_array - findIndex", (function (param) { - var arg = function (n) { - return n % 2 === 0; - }; return { TAG: /* Eq */0, _0: 1, - _1: (function (param) { - return param.findIndex(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).findIndex(function (n) { + return n % 2 === 0; + }) }; }) ], @@ -824,20 +800,17 @@ var suites_1 = { hd: [ "typed_array - findIndexi", (function (param) { - var arg = function (param, i) { - return i % 2 === 0; - }; return { TAG: /* Eq */0, _0: 0, - _1: (function (param) { - return param.findIndex(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).findIndex(function (param, i) { + return i % 2 === 0; + }) }; }) ], @@ -848,16 +821,13 @@ var suites_1 = { var sum = { contents: 0 }; - var arg = function (n) { - sum.contents = sum.contents + n | 0; - }; - ((function (param) { - param.forEach(arg); - })(new Int8Array([ - 1, - 2, - 3 - ]))); + new Int8Array([ + 1, + 2, + 3 + ]).forEach(function (n) { + sum.contents = sum.contents + n | 0; + }); return { TAG: /* Eq */0, _0: 6, @@ -872,16 +842,13 @@ var suites_1 = { var sum = { contents: 0 }; - var arg = function (param, i) { - sum.contents = sum.contents + i | 0; - }; - ((function (param) { - param.forEach(arg); - })(new Int8Array([ - 1, - 2, - 3 - ]))); + new Int8Array([ + 1, + 2, + 3 + ]).forEach(function (param, i) { + sum.contents = sum.contents + i | 0; + }); return { TAG: /* Eq */0, _0: 3, @@ -893,9 +860,6 @@ var suites_1 = { hd: [ "typed_array - map", (function (param) { - var arg = function (n) { - return (n << 1); - }; return { TAG: /* Eq */0, _0: new Int8Array([ @@ -904,14 +868,14 @@ var suites_1 = { 6, 8 ]), - _1: (function (param) { - return param.map(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).map(function (n) { + return (n << 1); + }) }; }) ], @@ -919,9 +883,6 @@ var suites_1 = { hd: [ "typed_array - map", (function (param) { - var arg = function (param, i) { - return (i << 1); - }; return { TAG: /* Eq */0, _0: new Int8Array([ @@ -930,14 +891,14 @@ var suites_1 = { 4, 6 ]), - _1: (function (param) { - return param.map(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).map(function (param, i) { + return (i << 1); + }) }; }) ], @@ -945,20 +906,17 @@ var suites_1 = { hd: [ "typed_array - reduce", (function (param) { - var arg = function (acc, n) { - return acc - n | 0; - }; return { TAG: /* Eq */0, _0: -10, - _1: (function (param) { - return param.reduce(arg, 0); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).reduce((function (acc, n) { + return acc - n | 0; + }), 0) }; }) ], @@ -966,20 +924,17 @@ var suites_1 = { hd: [ "typed_array - reducei", (function (param) { - var arg = function (acc, param, i) { - return acc - i | 0; - }; return { TAG: /* Eq */0, _0: -6, - _1: (function (param) { - return param.reduce(arg, 0); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).reduce((function (acc, param, i) { + return acc - i | 0; + }), 0) }; }) ], @@ -987,20 +942,17 @@ var suites_1 = { hd: [ "typed_array - reduceRight", (function (param) { - var arg = function (acc, n) { - return acc - n | 0; - }; return { TAG: /* Eq */0, _0: -10, - _1: (function (param) { - return param.reduceRight(arg, 0); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).reduceRight((function (acc, n) { + return acc - n | 0; + }), 0) }; }) ], @@ -1008,20 +960,17 @@ var suites_1 = { hd: [ "typed_array - reduceRighti", (function (param) { - var arg = function (acc, param, i) { - return acc - i | 0; - }; return { TAG: /* Eq */0, _0: -6, - _1: (function (param) { - return param.reduceRight(arg, 0); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).reduceRight((function (acc, param, i) { + return acc - i | 0; + }), 0) }; }) ], @@ -1029,20 +978,17 @@ var suites_1 = { hd: [ "typed_array - some", (function (param) { - var arg = function (n) { - return n <= 0; - }; return { TAG: /* Eq */0, _0: false, - _1: (function (param) { - return param.some(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).some(function (n) { + return n <= 0; + }) }; }) ], @@ -1050,20 +996,17 @@ var suites_1 = { hd: [ "typed_array - somei", (function (param) { - var arg = function (param, i) { - return i <= 0; - }; return { TAG: /* Eq */0, _0: true, - _1: (function (param) { - return param.some(arg); - })(new Int8Array([ - 1, - 2, - 3, - 4 - ])) + _1: new Int8Array([ + 1, + 2, + 3, + 4 + ]).some(function (param, i) { + return i <= 0; + }) }; }) ], diff --git a/jscomp/test/js_typed_array_test.ml b/jscomp/test/js_typed_array_test.ml index 2876ae06ea..3caefdab79 100644 --- a/jscomp/test/js_typed_array_test.ml +++ b/jscomp/test/js_typed_array_test.ml @@ -30,9 +30,9 @@ let suites = Mt.[ Eq(5, ArrayBuffer.make 5 |> ArrayBuffer.byteLength)); "array_buffer - slice", (fun _ -> - Eq(2, ArrayBuffer.make 5 |. ArrayBuffer.slice ~start:2 ~end_:4 () |> ArrayBuffer.byteLength)); + Eq(2, ArrayBuffer.make 5 |. ArrayBuffer.slice ~start:2 ~end_:4 |> ArrayBuffer.byteLength)); "array_buffer - sliceFrom", (fun _ -> - Eq(3, ArrayBuffer.make 5 |. ArrayBuffer.slice ~start:2 () |> ArrayBuffer.byteLength)); + Eq(3, ArrayBuffer.make 5 |. ArrayBuffer.slice ~start:2 |> ArrayBuffer.byteLength)); (* Generic typed array *) @@ -60,13 +60,13 @@ let suites = Mt.[ "typed_array - setArray", (fun _ -> - let f a = Int8Array.setArray a [| 9; 8; 7 |]; a in + let f a = Int8Array.setArray [| 9; 8; 7 |] a; a in Eq(mkI8 [| 9; 8; 7; 4; 5 |], mkI8 [| 1; 2; 3; 4; 5 |] |> f)); "typed_array - setArrayOffset", (fun _ -> - let f a = Int8Array.setArrayOffset a [| 9; 8; 7 |] 2; a in + let f a = Int8Array.setArrayOffset [| 9; 8; 7 |] 2 a; a in Eq(mkI8 [| 1; 2; 9; 8; 7 |], mkI8 [| 1; 2; 3; 4; 5 |] |> f)); @@ -94,29 +94,29 @@ let suites = Mt.[ "typed_array - copyWithin", (fun _ -> Eq(mkI8 [| 1; 2; 3; 1; 2 |], - mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.copyWithin ~to_:(-2) ()) + mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.copyWithin ~to_:(-2)) ); "typed_array - copyWithinFrom", (fun _ -> Eq(mkI8 [| 4; 5; 3; 4; 5 |], - mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.copyWithin ~to_:0 ~start:3 ()) + mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.copyWithin ~to_:0 ~start:3) ); "typed_array - copyWithinFromRange", (fun _ -> Eq(mkI8 [| 4; 2; 3; 4; 5 |], mkI8 [| 1; 2; 3; 4; 5 |] - |. Int8Array.copyWithin ~to_:0 ~start:3 ~end_:4 ()) + |. Int8Array.copyWithin ~to_:0 ~start:3 ~end_:4) ); "typed_array - fillInPlace", (fun _ -> Eq(mkI8 [| 4; 4; 4 |], - mkI8 [| 1; 2; 3 |] |. Int8Array.fill 4 ()) + mkI8 [| 1; 2; 3 |] |> Int8Array.fill 4) ); "typed_array - fillFromInPlace", (fun _ -> Eq(mkI8 [| 1; 4; 4 |], - mkI8 [| 1; 2; 3 |] |. Int8Array.fill 4 ~start:1 ()) + mkI8 [| 1; 2; 3 |] |> Int8Array.fill 4 ~start:1) ); "typed_array - fillRangeInPlace", (fun _ -> Eq(mkI8 [| 1; 4; 3 |], - mkI8 [| 1; 2; 3 |] |. Int8Array.fill 4 ~start:1 ~end_:2 ()) + mkI8 [| 1; 2; 3 |] |> Int8Array.fill 4 ~start:1 ~end_:2) ); "typed_array - reverseInPlace", (fun _ -> @@ -131,7 +131,7 @@ let suites = Mt.[ "typed_array - sortInPlaceWith", (fun _ -> Eq(mkI8 [| 3; 2; 1 |], mkI8 [| 3; 1; 2 |] - |> Int8Array.sortInPlaceWith ~f:((fun a b -> b - a) [@u])) + |> Int8Array.sortInPlaceWith ~f:((fun a b -> b - a))) ); (* es2016 *) @@ -140,17 +140,17 @@ let suites = Mt.[ ); "typed_array - indexOf", (fun _ -> - Eq(1, mkI8 [| 1; 2; 3 |] |. Int8Array.indexOf ~value:2 ()) + Eq(1, mkI8 [| 1; 2; 3 |] |. Int8Array.indexOf ~value:2) ); "typed_array - indexOfFrom", (fun _ -> - Eq(3, mkI8 [| 1; 2; 3; 2 |] |. Int8Array.indexOf ~value:2 ~start:2 ()) + Eq(3, mkI8 [| 1; 2; 3; 2 |] |. Int8Array.indexOf ~value:2 ~start:2) ); "typed_array - join", (fun _ -> - Eq("1,2,3", mkI8 [| 1; 2; 3 |] |. Int8Array.join ()) + Eq("1,2,3", mkI8 [| 1; 2; 3 |] |. Int8Array.join) ); "typed_array - joinWith", (fun _ -> - Eq("1;2;3", mkI8 [| 1; 2; 3 |] |. Int8Array.join ~sep:";" ()) + Eq("1;2;3", mkI8 [| 1; 2; 3 |] |. Int8Array.join ~sep:";") ); "typed_array - lastIndexOf", (fun _ -> @@ -162,7 +162,7 @@ let suites = Mt.[ "typed_array - slice", (fun _ -> Eq(mkI8 [| 2; 3; |], - mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.slice ~start:1 ~end_:3 ()) + mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.slice ~start:1 ~end_:3) ); "typed_array - copy", (fun _ -> Eq(mkI8 [| 1; 2; 3; 4; 5 |], @@ -170,16 +170,16 @@ let suites = Mt.[ ); "typed_array - sliceFrom", (fun _ -> Eq(mkI8 [| 3; 4; 5 |], - mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.slice ~start:2 ()) + mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.slice ~start:2) ); "typed_array - subarray", (fun _ -> Eq(mkI8 [| 2; 3; |], - mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.subarray ~start:1 ~end_:3 ()) + mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.subarray ~start:1 ~end_:3) ); "typed_array - subarrayFrom", (fun _ -> Eq(mkI8 [| 3; 4; 5 |], - mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.subarray ~start:2 ()) + mkI8 [| 1; 2; 3; 4; 5 |] |. Int8Array.subarray ~start:2) ); "typed_array - toString", (fun _ -> @@ -199,56 +199,56 @@ let suites = Mt.[ "typed_array - every", (fun _ -> Eq(true, mkI8 [| 1; 2; 3 |] - |> Int8Array.every ~f:((fun n -> (n > 0)) [@u])) + |> Int8Array.every ~f:((fun n -> (n > 0)))) ); "typed_array - everyi", (fun _ -> Eq(false, mkI8 [| 1; 2; 3 |] - |> Int8Array.everyi ~f:((fun _ i -> (i > 0)) [@u])) + |> Int8Array.everyi ~f:((fun _ i -> (i > 0)))) ); "typed_array - filter", (fun _ -> Eq(mkI8 [| 2; 4 |], mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.filter ~f:((fun n -> n mod 2 = 0) [@u])) + |> Int8Array.filter ~f:((fun n -> n mod 2 = 0))) ); "typed_array - filteri", (fun _ -> Eq(mkI8 [| 1; 3 |], mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.filteri ~f:((fun _ i -> (i mod 2 = 0)) [@u])) + |> Int8Array.filteri ~f:((fun _ i -> (i mod 2 = 0)))) ); "typed_array - find", (fun _ -> Eq(Js.Undefined.return 2, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.find ~f:((fun n -> n mod 2 = 0) [@u])) + |> Int8Array.find ~f:((fun n -> n mod 2 = 0))) ); "typed_array - findi", (fun _ -> Eq(Js.Undefined.return 1, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.findi ~f:((fun _ i -> i mod 2 = 0) [@u])) + |> Int8Array.findi ~f:((fun _ i -> i mod 2 = 0))) ); "typed_array - findIndex", (fun _ -> Eq(1, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.findIndex ~f:((fun n -> n mod 2 = 0) [@u])) + |> Int8Array.findIndex ~f:((fun n -> n mod 2 = 0))) ); "typed_array - findIndexi", (fun _ -> Eq(0, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.findIndexi ~f:((fun _ i -> i mod 2 = 0) [@u])) + |> Int8Array.findIndexi ~f:((fun _ i -> i mod 2 = 0))) ); "typed_array - forEach", (fun _ -> let sum = ref 0 in let _ = mkI8 [| 1; 2; 3; |] - |> Int8Array.forEach ~f:((fun n -> sum := !sum + n) [@u]) in + |> Int8Array.forEach ~f:((fun n -> sum := !sum + n)) in Eq(6, !sum) ); "typed_array - forEachi", (fun _ -> let sum = ref 0 in let _ = mkI8 [| 1; 2; 3; |] - |> Int8Array.forEachi ~f:((fun _ i -> sum := !sum + i) [@u]) in + |> Int8Array.forEachi ~f:((fun _ i -> sum := !sum + i)) in Eq(3, !sum) ); @@ -262,44 +262,44 @@ let suites = Mt.[ "typed_array - map", (fun _ -> Eq(mkI8 [| 2; 4; 6; 8 |], - mkI8 [| 1; 2; 3; 4 |] |> Int8Array.map ~f:((fun n -> n * 2) [@u])) + mkI8 [| 1; 2; 3; 4 |] |> Int8Array.map ~f:((fun n -> n * 2))) ); "typed_array - map", (fun _ -> Eq(mkI8 [| 0; 2; 4; 6 |], - mkI8 [| 1; 2; 3; 4 |] |> Int8Array.mapi ~f:((fun _ i -> i * 2) [@u])) + mkI8 [| 1; 2; 3; 4 |] |> Int8Array.mapi ~f:((fun _ i -> i * 2))) ); "typed_array - reduce", (fun _ -> Eq(-10, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.reduce ~f:((fun acc n -> acc - n) [@u]) ~init:0) + |> Int8Array.reduce ~f:((fun acc n -> acc - n)) ~init:0) ); "typed_array - reducei", (fun _ -> Eq(-6, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.reducei ~f:((fun acc _ i -> acc - i) [@u]) ~init:0) + |> Int8Array.reducei ~f:((fun acc _ i -> acc - i)) ~init:0) ); "typed_array - reduceRight", (fun _ -> Eq(-10, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.reduceRight ~f:((fun acc n -> acc - n) [@u]) ~init:0) + |> Int8Array.reduceRight ~f:((fun acc n -> acc - n)) ~init:0) ); "typed_array - reduceRighti", (fun _ -> Eq(-6, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.reduceRighti ~f:((fun acc _ i -> acc - i) [@u]) ~init:0) + |> Int8Array.reduceRighti ~f:((fun acc _ i -> acc - i)) ~init:0) ); "typed_array - some", (fun _ -> Eq(false, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.some ~f:((fun n -> (n <= 0)) [@u])) + |> Int8Array.some ~f:((fun n -> (n <= 0)))) ); "typed_array - somei", (fun _ -> Eq(true, mkI8 [| 1; 2; 3; 4 |] - |> Int8Array.somei ~f:((fun _ i -> (i <= 0)) [@u])) + |> Int8Array.somei ~f:((fun _ i -> (i <= 0)))) ); (* es2015, iterator @@ -598,111 +598,111 @@ let suites = Mt.[ "DataView - setInt8, getInt8", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setInt8 view 0 1; - Eq(1, DataView.getInt8 view 0)); + DataView.setInt8 0 1 view; + Eq(1, DataView.getInt8 0 view)); "DataView - setUint8, getUint8", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setUint8 view 0 128; - Eq(128, DataView.getUint8 view 0)); + DataView.setUint8 0 128 view; + Eq(128, DataView.getUint8 0 view)); "DataView - setInt16, getInt16", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setInt16 view 0 257; - Eq(257, DataView.getInt16 view 0)); + DataView.setInt16 0 257 view; + Eq(257, DataView.getInt16 0 view)); "DataView - getInt16LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setInt16LittleEndian view 0 25000; - Eq(25000, DataView.getInt16LittleEndian view 0)); + DataView.setInt16LittleEndian 0 25000 view; + Eq(25000, DataView.getInt16LittleEndian 0 view)); "DataView - setInt16LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setInt16LittleEndian view 0 25000; - Eq(-22431, DataView.getInt16 view 0)); + DataView.setInt16LittleEndian 0 25000 view; + Eq(-22431, DataView.getInt16 0 view)); "DataView - setUint16, getUint16", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setUint16 view 0 32768; - Eq(32768, DataView.getUint16 view 0)); + DataView.setUint16 0 32768 view; + Eq(32768, DataView.getUint16 0 view)); "DataView - getUint16LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setUint16LittleEndian view 0 32768; - Eq(32768, DataView.getUint16LittleEndian view 0)); + DataView.setUint16LittleEndian 0 32768 view; + Eq(32768, DataView.getUint16LittleEndian 0 view)); "DataView - setUint16LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setUint16LittleEndian view 0 32768; - Eq(128, DataView.getUint16 view 0)); + DataView.setUint16LittleEndian 0 32768 view; + Eq(128, DataView.getUint16 0 view)); "DataView - setInt32, getInt32", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setInt32 view 0 65537; - Eq(65537, DataView.getInt32 view 0)); + DataView.setInt32 0 65537 view; + Eq(65537, DataView.getInt32 0 view)); "DataView - getInt32LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setInt32LittleEndian view 0 65537; - Eq(65537, DataView.getInt32LittleEndian view 0)); + DataView.setInt32LittleEndian 0 65537 view; + Eq(65537, DataView.getInt32LittleEndian 0 view)); "DataView - setInt32LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setInt32LittleEndian view 0 65537; - Eq(16777472, DataView.getInt32 view 0)); + DataView.setInt32LittleEndian 0 65537 view; + Eq(16777472, DataView.getInt32 0 view)); (* Testing against 2_147_483_649 would be better, but JS platform restrict us with int32 *) "DataView - setUint32, getUint32", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setUint32 view 0 65537; - Eq(65537, DataView.getUint32 view 0)); + DataView.setUint32 0 65537 view; + Eq(65537, DataView.getUint32 0 view)); "DataView - getUint32LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setUint32LittleEndian view 0 65537; - Eq(65537, DataView.getUint32LittleEndian view 0)); + DataView.setUint32LittleEndian 0 65537 view; + Eq(65537, DataView.getUint32LittleEndian 0 view)); "DataView - setUint32LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setUint32LittleEndian view 0 65537; - Eq(16777472, DataView.getUint32 view 0)); + DataView.setUint32LittleEndian 0 65537 view; + Eq(16777472, DataView.getUint32 0 view)); "DataView - setFloat32, getFloat32", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setFloat32 view 0 65537.0; - Eq(65537.0, DataView.getFloat32 view 0)); + DataView.setFloat32 0 65537.0 view; + Eq(65537.0, DataView.getFloat32 0 view)); "DataView - getFloat32LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setFloat32LittleEndian view 0 65537.0; - Eq(65537.0, DataView.getFloat32LittleEndian view 0)); + DataView.setFloat32LittleEndian 0 65537.0 view; + Eq(65537.0, DataView.getFloat32LittleEndian 0 view)); "DataView - setFloat32LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setFloat32LittleEndian view 0 1.0; - Eq(4.600602988224807e-41, DataView.getFloat32 view 0)); + DataView.setFloat32LittleEndian 0 1.0 view; + Eq(4.600602988224807e-41, DataView.getFloat32 0 view)); "DataView - setFloat64, getFloat64", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setFloat64 view 0 1e200; - Eq(1e200, DataView.getFloat64 view 0)); + DataView.setFloat64 0 1e200 view; + Eq(1e200, DataView.getFloat64 0 view)); "DataView - getFloat64LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setFloat64LittleEndian view 0 1e200; - Eq(1e200, DataView.getFloat64LittleEndian view 0)); + DataView.setFloat64LittleEndian 0 1e200 view; + Eq(1e200, DataView.getFloat64LittleEndian 0 view)); "DataView - setFloat64LittleEndian", (fun _ -> let buffer = ArrayBuffer.make 8 in let view = DataView.make buffer in - DataView.setFloat64LittleEndian view 0 1.0; - Eq(3.03865e-319, DataView.getFloat64 view 0)); + DataView.setFloat64LittleEndian 0 1.0 view; + Eq(3.03865e-319, DataView.getFloat64 0 view)); ] ;; Mt.from_pair_suites __MODULE__ suites