|
@@ -1955,16 +1955,17 @@ let generate com =
|
|
|
println ctx " end";
|
|
|
println ctx " end";
|
|
|
println ctx " if v > 2251798999999999 then v = v*2 end;";
|
|
|
- println ctx " if (v ~= v or v == _G.math.huge or v == -_G.math.huge) then return nil end";
|
|
|
- println ctx " return _hx_bit_raw.band(v, 2147483647 ) - math.abs(_hx_bit_raw.band(v, 2147483648))";
|
|
|
+ println ctx " if (v ~= v or math.abs(v) == _G.math.huge) then return nil end";
|
|
|
+ println ctx " return _hx_bit.band(v, 2147483647 ) - math.abs(_hx_bit.band(v, 2147483648))";
|
|
|
println ctx "end";
|
|
|
+ println ctx "pcall(require, 'bit')";
|
|
|
println ctx "if type(jit) == 'table' then";
|
|
|
- println ctx " _hx_bit_raw = require('bit')";
|
|
|
- println ctx " _hx_bit = setmetatable({},{__index = function(t,k) return function(...) return _hx_bit_clamp(rawget(_hx_bit_raw,k)(...)) end end})";
|
|
|
+ println ctx " _hx_bit = bit";
|
|
|
println ctx "else";
|
|
|
- println ctx " _hx_bit_raw = require('bit32')";
|
|
|
- println ctx " _hx_bit = setmetatable({}, { __index = _hx_bit_raw })";
|
|
|
- println ctx " _hx_bit.bnot = function(...) return _hx_bit_clamp(_hx_bit_raw.bnot(...)) end";
|
|
|
+ println ctx " pcall(require, 'bit32')"; (* also try bit32 *)
|
|
|
+ println ctx " local _hx_bit_raw = bit or bit32";
|
|
|
+ println ctx " _hx_bit = setmetatable({}, { __index = _hx_bit_raw });";
|
|
|
+ println ctx " _hx_bit.bnot = function(...) return _hx_bit_clamp(_hx_bit_raw.bnot(...)) end;"; (* lua 5.2 weirdness *)
|
|
|
println ctx "end";
|
|
|
end;
|
|
|
|