Home | History | Annotate | Download | only in Object
      1 // Copyright 2014 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 new BenchmarkSuite('Assign', [1000], [
      6   new Benchmark('BasicAssign1', false, false, 0,
      7                 BasicAssign1, BasicAssign1Setup, BasicAssign1TearDown),
      8   new Benchmark('BasicAssign3', false, false, 0,
      9                 BasicAssign3, BasicAssign3Setup, BasicAssign3TearDown),
     10   new Benchmark('BasicAssignNull3', false, false, 0,
     11                 BasicAssignNull3, BasicAssignNull3Setup,
     12                 BasicAssignNull3TearDown),
     13 ]);
     14 
     15 var object;
     16 var src1;
     17 var src2;
     18 var src3;
     19 var obj1;
     20 var obj2;
     21 
     22 // ----------------------------------------------------------------------------
     23 
     24 function BasicAssign1Setup() {
     25   object = {};
     26   obj1 = {};
     27   obj2 = {};
     28   src1 = { id: "6930530530", obj1: obj1, obj2: obj2 };
     29 }
     30 
     31 function BasicAssign1() {
     32   Object.assign(object, src1);
     33 }
     34 
     35 function BasicAssign1TearDown() {
     36   return object.id === src1.id &&
     37          object.obj1 === obj1 &&
     38          object.obj2 === obj2;
     39 }
     40 
     41 // ----------------------------------------------------------------------------
     42 
     43 function BasicAssign3Setup() {
     44   object = {};
     45   obj1 = {};
     46   obj2 = {};
     47   src1 = { id: "6930530530" };
     48   src2 = { obj1: obj1 };
     49   src3 = { obj2: obj2 };
     50 }
     51 
     52 function BasicAssign3() {
     53   Object.assign(object, src1, src2, src3);
     54 }
     55 
     56 function BasicAssign3TearDown() {
     57   return object.id === src1.id &&
     58          object.obj1 === src2 &&
     59          object.obj2 === src3;
     60 }
     61 
     62 // ----------------------------------------------------------------------------
     63 
     64 function BasicAssignNull3Setup() {
     65   object = {};
     66   obj1 = {};
     67   obj2 = {};
     68   src1 = { id: "6930530530" };
     69   src2 = null;
     70   src3 = { obj1: obj1, obj2: obj2 };
     71 }
     72 
     73 function BasicAssignNull3() {
     74   Object.assign(object, src1, src2, src3);
     75 }
     76 
     77 function BasicAssignNull3TearDown() {
     78   return object.id === src1.id &&
     79          object.obj1 === src2 &&
     80          object.obj2 === src3;
     81 }
     82