Merging objects

Benchmark created on


Setup

// Transpiled "Object.assign"
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var a = { a: 1 };
var b = {};
for (var i = 0; i < 10000; i++) {
	b['b' + i] = i;
}

Teardown

var a = { a: 1 };
var b = {};
for (var i = 0; i < 10000; i++) {
	b['b' + i] = i;
}

Test runner

Ready to run.

Testing in
TestOps/sec
Transpiled new object and spread syntax
var c = __assign(__assign({}, a), b);

ready
Transpiled Object.assign
var c = __assign(a, b);

ready
Native new object and spread syntax
var c = {...a, ...b};
ready
Native Object.assign
var c = Object.assign(a, b);
ready
for...in
var c = a;
for (var key in b) {
	c[key] = b[key];
}

ready

Revisions

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