Sha256: 294336cd5b9743e50f484d523dbe8ca7cc420d51434f0a7e0fc53bffc8744367

Contents?: true

Size: 1.11 KB

Versions: 6

Compression:

Stored size: 1.11 KB

Contents

%x{
  // Minify common function calls
  var $call      = Function.prototype.call;
  var $bind      = Function.prototype.bind;
  var $has_own   = Object.hasOwn || $call.bind(Object.prototype.hasOwnProperty);
  var $set_proto = Object.setPrototypeOf;
  var $slice     = $call.bind(Array.prototype.slice);
  var $splice    = $call.bind(Array.prototype.splice);

  var cnt = 0;
  var fun = function(a,b,c) {
    cnt += a + b + c;
  }
}

Benchmark.ips do |x|
  ary = [1,2,3]
  obj = `{0: 1, 1: 2, 2: 3, length: 3}`

  x.report('Array.from(array)') do
    `fun.apply(null, Array.from(ary))`
  end

  x.report('Array.from(obj)') do
    `fun.apply(null, Array.from(obj))`
  end

  x.report('$slice(array)') do
    `fun.apply(null, $slice(ary))`
  end

  x.report('$slice(obj)') do
    `fun.apply(null, $slice(obj))`
  end

  x.report('array') do
    `fun.apply(null, ary)`
  end

  x.report('obj') do
    `fun.apply(null, obj)`
  end

  x.report('$slice?(array)') do
    `fun.apply(null, ary.$$is_array ? ary : $slice(ary))`
  end

  x.report('$slice?(obj)') do
    `fun.apply(null, obj.$$is_array ? obj : $slice(obj))`
  end

  x.compare!
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
opal-1.8.3.rc1 benchmark-ips/bm_slice_or_not.rb
opal-1.8.2 benchmark-ips/bm_slice_or_not.rb
opal-1.8.1 benchmark-ips/bm_slice_or_not.rb
opal-1.8.0 benchmark-ips/bm_slice_or_not.rb
opal-1.8.0.beta1 benchmark-ips/bm_slice_or_not.rb
opal-1.8.0.alpha1 benchmark-ips/bm_slice_or_not.rb