Stupid benchmark on a stupid computer for no reason.
T1:
var m = 0;
function d() { m += 1; }
function obj() { return { m: d }; }
var i = 0, l = 2 ** 29;
for (; i < l; i += 1) {
obj().m();
}
print(m);
Node: 3.478s
Duktape: more than 17 min (I killed it)
T2:
var m = 0;
function d() { m += 1; }
function obj() {
var a = { };
a['m'] = d;
return a;
}
var i = 0, l = 2 ** 29;
for (; i < l; i += 1) {
obj().m();
}
print(m);
Node: 27.06s
Duktape: not even attempting
T1 Lua:
local m = 0
local function d() m = m + 1 end
local function obj() return { m = d } end
local l = 536870912
for i = 0, l do obj().m() end
print(m)
Lua: 5:40.30