Object creation (v5)

Revision 5 of this benchmark created by nin-jin on


Preparation HTML

<script src="http://nin-jin.github.io/atom/view.env=web.stage=release.js"></script>
<script>
  function Foo(foo) {
      this.foo = foo;
      this.bar = 42;
  }
  
  function FooBar(foo, bar) {
      this.foo = foo;
      this.bar = bar;
  }
  function Boo() {}
  
$jin.klass({ 'JinFoo': [] })
$jin.property({ 'JinFoo..foo': String })

$jin.klass({ 'JinFooI': [] })
$jin.method({ 'JinFooI..init': function( foo ){
    '$jin.klass..init'
    this._foo = foo
} })

$jin.klass({ 'JinBoo': [] })

function GetSet( foo ){
    this.setFoo( foo )
}
GetSet.prototype.setFoo = function( foo ){
    this._foo = String( foo )
    return this
}
GetSet.prototype.getFoo = function( foo ){
    return this._foo
}
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
object literal
var r = {
    foo: "boo",
    bar: 42
};
 
ready
new Object
var r = new Object();
r.foo = "boo";
r.bar = 42;
 
ready
new Foo
var r = new Foo("boo");
 
ready
empty object literal
var r = {};
 
ready
new empty Object
var r = new Object();
 
ready
new Boo
var r = new Boo();
 
ready
empty object literal + init
var r = {};
r.foo = "boo";
r.bar = 42;
 
ready
new Boo + init
var r = new Boo();
r.foo = "boo";
r.bar = 42;
 
ready
new Foo + new valus
var r = new Foo("boo");
r.foo = "foo";
r.bar = 1;
ready
new FooBar
var r = new FooBar("boo", 42);
ready
JinBoo()
var r = JinBoo()
ready
new JinBoo
var r = new JinBoo
ready
JinFoo()
var r = JinFoo({ foo: 'boo' })
ready
new JinFoo()
var r = new JinFoo([{ foo: 'boo' }])
ready
JinFoo + init
var r = JinFoo().foo( 'boo' )
ready
new GetSet
var r = new GetSet( 'boo' )
ready
new JinFooI
var r = new JinFooI([ 'boo' ])
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.