JSFiddle - React, Tailwind, and code Playground

by balefrost

JavaScript

function timeFn(name, times, fn) {
	var start = Date.now();
	for (var i = 0; i < times; ++i) {
  	fn();
  }
  var stop = Date.now();
  console.log(name, ":", stop - start, "ms");
}

function Callable2(f, a0, a1) {
	this._f = f;
  this._a0 = a0;
  this._a1 = a1;
}

Callable2.prototype.invoke = function() {
	return this._f(this._a0, this._a1);
};

function Callable0(f) {
	this._f = f;
}

Callable0.prototype.invoke = function() {
	return this._f();
};

var rounds = 3;
var times = 50000;

function lifted1(closure0, closure1) {
  closure0.z = closure0.z + closure1.i;
}

function test1() {
  var fns = [];
  var closure0 = {
    z: 0
  };

  for (var i = 0; i <= 100; ++i) {
    fns.push({
      f: lifted1,
      args: [closure0, { i: i }]
    });
  }

  for (var j = 0; j < fns.length; ++j) {
    var fne = fns[j];
    var fnea = fne.args;
    fne.f(fnea[0], fnea[1]);
  }

  if (closure0.z !== 5050) {
    throw new Error("Incorrect result " + closure0.z);
  }
}

function lifted1a(closure0, i) {
  closure0.z = closure0.z + i;
}

function test1a() {
  var fns = [];
  var closure0 = {
    z: 0
  };

  for (var i = 0; i <= 100; ++i) {
    fns.push({
      f: lifted1a,
      args: [closure0, i]
    });
  }

  for (var j = 0; j < fns.length; ++j) {
    var fne = fns[j];
    var fnea = fne.args
    fne.f(fnea[0], fnea[1]);
  }

  if (closure0.z !== 5050) {
    throw new Error("Incorrect result " + closure0.z);
  }
}

function lifted1b(closure0, i) {
  closure0.z = closure0.z + i;
}

function test1b() {
  var fns = [];
  var closure0 = {
    z: 0
  };

  for (var i = 0; i <= 100; ++i) {
    fns.push({
      f: lifted1b,
      arg0: closure0,
      arg1: i
    });
  }

  for (var j = 0; j < fns.length; ++j) {
    var fne = fns[j];
    fne.f(fne.arg0, fne.arg1);
  }

  if (closure0.z !== 5050) {
    throw new Error("Incorrect result " + closure0.z);
  }
}

function lifted1c(closure0, i) {
  closure0.z = closure0.z + i;
}

function test1c() {
  var fns = [];
  var closure0 = {
   ...