node | chrome | firefox | edge | safari | webkit | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|

6.9.3 | 7.3.0 | 55 | 49 | 50 | 53 | 14.14393 | 15.14959 | 10 | 604.1.2+ | ||

arrow tests | babel | 1.2x slower | Identical | Identical | Identical | Identical | Identical | Identical | 1.2x slower | Identical | Identical |

buble | 1.3x slower | 1.2x slower | Identical | Identical | Identical | Identical | 1.2x slower | Identical | Identical | Identical | |

traceur | Identical | Identical | Identical | Identical | Identical | Identical | 1.3x slower | 1.2x faster | Identical | Identical | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | 1.2x slower | 1.2x faster | Identical | 1.2x slower | |

es6 | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.2x faster | Identical | Identical | |

arrow-args tests | babel | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.5x slower | Identical | Identical |

buble | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

traceur | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

typescript | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | |

es6 | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 69x slower | 71x slower | |

arrow-declare tests | babel | 1.6x slower | 1.5x slower | 1.4x slower | 1.4x slower | 30x slower | 23x slower | 1.3x slower | 1.7x slower | Identical | Identical |

buble | 1.6x slower | 1.5x slower | 1.3x slower | 1.4x slower | 15x slower | 23x slower | 1.4x slower | 1.7x slower | Identical | Identical | |

traceur | 1.4x slower | 1.4x slower | 1.3x slower | 1.4x slower | 15x slower | 23x slower | 1.5x slower | 1.5x slower | Identical | Identical | |

typescript | 1.4x slower | 1.3x slower | 1.3x slower | 1.4x slower | 15x slower | 23x slower | 1.5x slower | 1.4x slower | Identical | Identical | |

es6 | 1.4x slower | 1.3x slower | 1.3x slower | 1.3x slower | 38x slower | 56x slower | 1.2x slower | 1.5x slower | Identical | Identical | |

bindings tests | babel | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.4x slower | Identical | 1.2x slower |

buble | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

traceur | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

es6 | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

bindings-compound tests | babel | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.2x slower | Identical | Identical |

buble | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

traceur | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

es6 | Identical | 1.6x slower | 1.6x slower | 1.5x slower | Identical | Identical | 1.2x slower | Identical | Identical | Identical | |

classes tests | babel | 1.9x slower | 9x slower | 1.5x slower | 1.4x slower | 15x faster | 33x slower | 1.5x slower | 1.2x slower | 7x slower | 7x slower |

babel-loose | 1.7x slower | 9x slower | 1.6x slower | 1.4x slower | 14x faster | 34x slower | 1.7x slower | 1.6x slower | 8x slower | 8x slower | |

babel-runtime | 1.8x slower | 9x slower | 1.5x slower | 1.4x slower | 13x faster | 40x slower | 1.5x slower | 2.0x slower | 7x slower | 8x slower | |

buble | Identical | Identical | Identical | Identical | 391x faster | Identical | Identical | Identical | Identical | Identical | |

traceur | Identical | Identical | Identical | Identical | 390x faster | Identical | Identical | Identical | Identical | Identical | |

typescript | Identical | Identical | Identical | Identical | 391x faster | Identical | Identical | Identical | Identical | Identical | |

es6 | Identical | Identical | Identical | 2.4x slower | 389x faster | Identical | 1.4x slower | 1.5x slower | Identical | Identical | |

defaults tests | babel | 1.5x slower | 1.5x slower | 1.4x slower | 1.5x slower | Identical | Identical | 2.0x slower | 575x slower | 2.2x slower | 10x slower |

buble | Identical | Identical | Identical | Identical | Identical | Identical | 1.2x faster | Identical | Identical | Identical | |

traceur | 11x slower | 11x slower | 13x slower | 73x slower | 2909x slower | 2293x slower | 237x slower | 353x slower | 4x slower | 16x slower | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

es6 | Identical | Identical | Identical | 3x slower | Identical | Identical | Identical | Identical | Identical | Identical | |

destructuring tests | babel | 2.4x slower | 1.3x slower | 1.4x slower | 1.8x slower | Identical | Identical | 3x slower | 3x slower | 16x slower | 1.3x slower |

babel-loose | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.3x slower | Identical | Identical | |

babel-runtime | 2.5x slower | 1.4x slower | 1.4x slower | 1.4x slower | Identical | Identical | 2.9x slower | 4x slower | 21x slower | 7x slower | |

buble | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |||

traceur | 14x slower | 14x slower | 15x slower | 12x slower | 81x slower | 95x slower | 31x slower | 38x slower | 6x slower | 23x slower | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | 1.2x faster | Identical | Identical | Identical | |

es6 | 17x slower | 15x slower | 16x slower | 83x slower | 98x slower | 20x slower | 53x slower | 9x slower | 23x slower | ||

destructuring-simple tests | babel | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.3x slower | Identical | Identical |

buble | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

traceur | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

es6 | Identical | Identical | Identical | Identical | Identical | 1.2x slower | Identical | Identical | Identical | ||

for-of-array tests | babel | 18x slower | 16x slower | 17x slower | 18x slower | 17x slower | 16x slower | 10x slower | 10x slower | 1.6x slower | 1.5x slower |

babel-loose | 1.4x slower | Identical | 1.2x slower | Identical | 1.8x slower | Identical | 1.4x slower | 1.7x slower | 1.2x slower | Identical | |

babel-runtime | 18x slower | 16x slower | 17x slower | 18x slower | 13x slower | 13x slower | 9x slower | 13x slower | 1.6x slower | 1.6x slower | |

traceur | 18x slower | 15x slower | 7x slower | 8x slower | 15x slower | 12x slower | 9x slower | 9x slower | 1.7x slower | 1.7x slower | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

es6 | 17x slower | 15x slower | 17x slower | 15x slower | 2.3x slower | 2.5x slower | 5x slower | 7x slower | 1.3x slower | 1.3x slower | |

for-of-object tests | babel | 4x slower | 2.2x slower | 1.9x slower | 7x slower | 5x slower | 6x slower | 4x slower | 4x slower | 2.3x slower | 4x slower |

babel-loose | 3x slower | 2.2x slower | 2.1x slower | 6x slower | 2.8x slower | 3x slower | 4x slower | 6x slower | 2.5x slower | 5x slower | |

babel-runtime | 4x slower | 2.4x slower | 2.1x slower | 7x slower | 5x slower | 5x slower | 5x slower | 5x slower | 2.3x slower | 4x slower | |

traceur | 4x slower | 2.2x slower | 1.8x slower | 6x slower | 5x slower | 5x slower | 4x slower | 5x slower | 2.3x slower | 5x slower | |

typescript | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | |

es6 | 4x slower | 2.2x slower | 1.8x slower | 6x slower | 2.3x slower | 2.6x slower | 3x slower | 4x slower | 2.3x slower | 4x slower | |

generator tests | babel | 7x slower | 9x slower | 6x slower | 6x slower | 12x slower | 10x slower | 30x slower | 38x slower | 8x slower | 6x slower |

babel-loose | 6x slower | 6x slower | 5x slower | 7x slower | 12x slower | 10x slower | 32x slower | 54x slower | 8x slower | 6x slower | |

babel-runtime | 6x slower | 6x slower | 6x slower | 6x slower | 11x slower | 9x slower | 32x slower | 45x slower | 8x slower | 6x slower | |

traceur | 31x slower | 54x slower | 38x slower | 39x slower | 174x slower | 117x slower | 36x slower | 41x slower | 10x slower | 9x slower | |

es6 | 6x slower | 5x slower | 7x slower | 1.6x slower | 14x slower | 11x slower | 22x slower | 24x slower | 5x slower | 1.6x slower | |

map-set tests | babel | 5x slower | 5x slower | 4x slower | 6x slower | 13x slower | 13x slower | 16x slower | 24x slower | 8x slower | 6x slower |

babel-loose | 13x slower | 14x slower | 6x slower | 8x slower | 42x slower | 47x slower | 24x slower | 42x slower | 22x slower | 19x slower | |

babel-runtime | 17x slower | 14x slower | 6x slower | 8x slower | 41x slower | 46x slower | 21x slower | 31x slower | 22x slower | 19x slower | |

buble | 5x slower | 4x slower | 4x slower | 5x slower | 13x slower | 13x slower | 16x slower | 22x slower | 8x slower | 6x slower | |

traceur | 6x slower | 27x slower | 4x slower | 6x slower | 13x slower | 13x slower | 15x slower | 23x slower | 8x slower | 6x slower | |

typescript | 5x slower | 4x slower | 4x slower | 6x slower | 13x slower | 14x slower | 16x slower | 22x slower | 8x slower | 6x slower | |

es6 | 5x slower | 4x slower | 4x slower | 6x slower | 12x slower | 13x slower | 15x slower | 23x slower | 8x slower | 6x slower | |

map-set-lookup tests | babel | 9x faster | 8x faster | 8x faster | 9x faster | 39x faster | 36x faster | 55x faster | 60x faster | 59x faster | 2623x faster |

babel-loose | 2.1x faster | 1.5x faster | 4x faster | 4x faster | 5x faster | 4x faster | 11x faster | 9x faster | 9x faster | 12x faster | |

babel-runtime | 1.9x faster | 1.5x faster | 3x faster | 4x faster | 4x faster | 4x faster | 10x faster | 7x faster | 9x faster | 12x faster | |

buble | 9x faster | 8x faster | 8x faster | 9x faster | 38x faster | 36x faster | 60x faster | 57x faster | 60x faster | 2598x faster | |

traceur | 9x faster | 9x faster | 8x faster | 9x faster | 39x faster | 36x faster | 60x faster | 76x faster | 60x faster | 2554x faster | |

typescript | 9x faster | 8x faster | 8x faster | 9x faster | 38x faster | 36x faster | 60x faster | 79x faster | 60x faster | 2652x faster | |

es6 | 9x faster | 9x faster | 8x faster | 9x faster | 39x faster | 35x faster | 62x faster | 77x faster | 60x faster | 2632x faster | |

map-set-object tests | babel | 8x slower | 8x slower | 8x slower | 8x slower | 8x slower | 5x slower | 32x slower | 45x slower | 6x slower | 4x slower |

babel-loose | 19x slower | 25x slower | 12x slower | 11x slower | 25x slower | 15x slower | 40x slower | 66x slower | 16x slower | 12x slower | |

babel-runtime | 21x slower | 25x slower | 12x slower | 11x slower | 24x slower | 15x slower | 37x slower | 68x slower | 16x slower | 12x slower | |

buble | 7x slower | 7x slower | 8x slower | 8x slower | 8x slower | 5x slower | 32x slower | 47x slower | 6x slower | 4x slower | |

traceur | 11x slower | 46x slower | 8x slower | 8x slower | 8x slower | 5x slower | 35x slower | 45x slower | 6x slower | 4x slower | |

typescript | 7x slower | 7x slower | 8x slower | 8x slower | 8x slower | 5x slower | 34x slower | 45x slower | 6x slower | 4x slower | |

es6 | 8x slower | 8x slower | 8x slower | 8x slower | 8x slower | 5x slower | 32x slower | 45x slower | 6x slower | 4x slower | |

map-string tests | babel | 2.4x slower | 1.9x slower | 1.8x slower | 2.4x slower | 57x slower | 59x slower | 10x slower | 11x slower | 1.5x faster | 42x faster |

babel-loose | 12x slower | 10x slower | 3x slower | 4x slower | 443x slower | 514x slower | 28x slower | 43x slower | 4x slower | 2.7x slower | |

babel-runtime | 12x slower | 10x slower | 3x slower | 4x slower | 457x slower | 508x slower | 29x slower | 34x slower | 4x slower | 2.6x slower | |

buble | 2.4x slower | 1.9x slower | 1.8x slower | 2.4x slower | 57x slower | 59x slower | 10x slower | 11x slower | 1.5x faster | 42x faster | |

traceur | 2.4x slower | 1.9x slower | 1.8x slower | 2.4x slower | 57x slower | 59x slower | 10x slower | 11x slower | 1.5x faster | 42x faster | |

typescript | 2.4x slower | 1.9x slower | 1.8x slower | 2.4x slower | 57x slower | 59x slower | 11x slower | 11x slower | 1.5x faster | 42x faster | |

es6 | 2.4x slower | 1.9x slower | 1.7x slower | 2.5x slower | 57x slower | 59x slower | 11x slower | 11x slower | 1.5x faster | 42x faster | |

new-target tests | es6 | 1.9x slower | 2.0x slower | 2.7x slower | 1.3x slower | 12x faster | 25x faster | 1.2x faster | 1.3x faster | 56x faster | 55x faster |

object-assign tests | babel | 5x slower | 4x slower | 4x slower | 2.4x slower | 1.5x slower | 1.5x slower | 1.5x faster | 1.6x faster | 2.1x slower | 2.2x slower |

babel-loose | 5x slower | 4x slower | 4x slower | 2.4x slower | 1.5x slower | 1.5x slower | 1.4x faster | Identical | 2.0x slower | 2.0x slower | |

babel-runtime | 5x slower | 4x slower | 4x slower | 2.8x slower | 1.5x slower | 1.5x slower | 1.3x faster | 1.5x faster | 1.9x slower | 2.1x slower | |

buble | 5x slower | 4x slower | 4x slower | 1.4x slower | 1.5x slower | 1.5x slower | 1.8x faster | 1.7x faster | 2.1x slower | 2.2x slower | |

traceur | 5x slower | 23x slower | 4x slower | 1.4x slower | 1.5x slower | 1.5x slower | 1.8x faster | 1.5x faster | 2.1x slower | 2.2x slower | |

typescript | 5x slower | 5x slower | 4x slower | 1.3x slower | 1.5x slower | 1.5x slower | 1.8x faster | 1.8x faster | 2.1x slower | 2.2x slower | |

es6 | 5x slower | 4x slower | 4x slower | 1.3x slower | 1.5x slower | 1.5x slower | 1.8x faster | 1.6x faster | 2.1x slower | 2.2x slower | |

object-literal-ext tests | babel | 4x slower | 4x slower | 4x slower | 5x slower | 4x slower | 3.0x slower | 1.3x slower | 1.5x slower | 1.4x slower | 8x slower |

babel-loose | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

babel-runtime | 4x slower | 4x slower | 4x slower | 5x slower | 4x slower | 3.0x slower | 1.2x slower | 1.5x slower | 1.4x slower | 8x slower | |

buble | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |||

traceur | 32x slower | 48x slower | 29x slower | 39x slower | 29x slower | 23x slower | 4x slower | 9x slower | 6x slower | 31x slower | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | 1.3x faster | Identical | Identical | Identical | |

es6 | 9x slower | 9x slower | 9x slower | 15x slower | 16x slower | 12x slower | 1.4x faster | Identical | 2.7x slower | 1.3x slower | |

regex-u tests | babel | 1.6x slower | 1.6x slower | 1.7x slower | 1.8x slower | 1.2x slower | 1.2x slower | 1.6x slower | 2.6x slower | 1.6x slower | 1.7x slower |

buble | 1.4x slower | 1.4x slower | 1.4x slower | 1.6x slower | 1.2x slower | 1.2x slower | 1.6x slower | 1.8x slower | |||

traceur | 1.4x slower | 1.4x slower | 1.4x slower | 1.7x slower | 1.2x slower | 1.2x slower | 1.6x slower | 1.7x slower | 1.5x slower | 1.8x slower | |

typescript | 1.5x slower | 1.4x slower | 1.4x slower | 1.2x slower | 1.2x slower | 1.5x slower | 1.8x slower | 2.4x slower | 2.7x slower | ||

es6 | 1.4x slower | 1.5x slower | 1.4x slower | 1.3x slower | 1.2x slower | 1.6x slower | 2.5x slower | 2.4x slower | 2.7x slower | ||

rest tests | babel | 6x faster | 6x faster | 6x faster | 55x faster | 913x faster | 1558x faster | 1.6x slower | Identical | 23x slower | 30x slower |

buble | 1.3x faster | 1.3x faster | Identical | 10x faster | 12x faster | 14x faster | 1.6x slower | 43x faster | 42x slower | 65x slower | |

traceur | Identical | 1.2x faster | 1.2x faster | 10x faster | 12x faster | 14x faster | 1.6x slower | 43x faster | 39x slower | 61x slower | |

typescript | 1.2x faster | 1.2x faster | 1.2x faster | 11x faster | 12x faster | 14x faster | 1.6x slower | 40x faster | 41x slower | 58x slower | |

es6 | 1.2x faster | 1.3x faster | 1.3x faster | 2.8x faster | 17x faster | 17x faster | 10x faster | 14x faster | 33x slower | 3x slower | |

spread tests | babel | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical |

buble | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

traceur | 16x slower | 18x slower | 12x slower | 5x slower | 2.9x slower | 2.5x slower | 4x slower | 4x slower | 7x slower | 8x slower | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

es6 | 20x slower | 19x slower | 22x slower | 10x slower | 9x slower | 5x slower | 1.6x slower | 1.7x slower | 5x slower | 6x slower | |

spread-generator tests | babel | 19x slower | 23x slower | 29x slower | 8x slower | 5x slower | 7x slower | 35x slower | 14x slower | 6x slower | 5x slower |

babel-loose | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | Incorrect | |

babel-runtime | 27x slower | 22x slower | 31x slower | 8x slower | 5x slower | 5x slower | 33x slower | 14x slower | 6x slower | 4x slower | |

traceur | 27x slower | 45x slower | 28x slower | 29x slower | 43x slower | 35x slower | 26x slower | 18x slower | 6x slower | 6x slower | |

es6 | 8x slower | 8x slower | 8x slower | 3x slower | 9x slower | 5x slower | 17x slower | 9x slower | 4x slower | 2.3x slower | |

spread-literal tests | babel | 5x slower | 2.9x slower | 2.8x slower | 2.0x slower | 1.6x slower | Identical | Identical | 1.2x slower | Identical | 1.2x faster |

buble | 5x slower | 3.0x slower | 2.8x slower | 2.0x slower | Identical | Identical | Identical | 1.2x slower | Identical | 1.2x faster | |

traceur | 16x slower | 12x slower | 10x slower | 2.6x slower | 2.3x slower | 1.6x slower | 5x slower | 6x slower | 1.9x slower | 1.5x slower | |

typescript | 5x slower | 3.0x slower | 2.8x slower | 2.0x slower | Identical | Identical | Identical | 1.2x slower | Identical | Identical | |

es6 | 8x slower | 9x slower | 9x slower | 5x slower | 5x slower | 5x slower | 1.9x slower | 2.2x slower | 1.8x faster | 3x faster | |

super tests | babel | 13x slower | 21x slower | 12x slower | 21x slower | 31x slower | 27x slower | 22x slower | 23x slower | 34x slower | 23x slower |

babel-loose | 3.0x slower | 11x slower | 1.8x slower | 1.7x slower | 9x slower | 8x slower | 4x slower | 5x slower | 3x slower | 2.5x slower | |

babel-runtime | 14x slower | 21x slower | 11x slower | 26x slower | 31x slower | 27x slower | 21x slower | 24x slower | 33x slower | 22x slower | |

buble | Identical | Identical | Identical | Identical | 1.2x slower | Identical | Identical | Identical | 5x faster | 6x faster | |

traceur | 12x slower | 11x slower | 11x slower | 18x slower | 22x slower | 19x slower | 15x slower | 16x slower | 32x slower | 21x slower | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.8x slower | 1.5x slower | |

es6 | 4x slower | 4x slower | 4x slower | 7x slower | 53x slower | 56x slower | 1.6x slower | 1.7x slower | 15x slower | 6x slower | |

template string tests | babel | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical |

buble | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

traceur | 2.0x slower | 1.3x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |

es6 | Identical | Identical | 1.2x slower | Identical | Identical | Identical | 1.4x faster | 1.4x faster | 18x slower | 15x slower | |

template string tag tests | babel | 1.4x slower | 1.5x slower | 1.5x slower | 1.5x slower | 34x slower | 12x faster | 1.9x slower | 2.1x slower | 1.7x slower | 1.6x slower |

babel-loose | Identical | Identical | Identical | Identical | 8x faster | 12x faster | Identical | Identical | Identical | Identical | |

babel-runtime | 1.4x slower | 1.5x slower | 1.5x slower | 1.5x slower | 34x slower | 12x faster | 1.8x slower | 2.0x slower | 1.7x slower | 1.6x slower | |

traceur | 14x slower | 11x slower | 10x slower | 23x slower | 138x slower | 125x slower | 13x slower | 13x slower | 7x slower | 9x slower | |

typescript | 1.3x slower | 1.3x slower | 1.3x slower | 1.3x slower | 97x slower | 74x slower | 1.5x slower | 1.4x slower | 1.5x slower | 1.7x slower | |

es6 | 3x slower | 3x slower | 3x slower | 4x slower | 34x slower | 12x faster | 1.8x slower | 2.0x slower | 2.1x slower | 2.0x slower |

Run on 1/4/2017 using babel 6.21.0, babel-runtime 6.20.0, and traceur 0.0.111.

For each of the ES6 features in question, a ES5 implementation of that functionality was written along with a ES6 version. It should be noted that the functionality is frequently the same, but in some cases the "common" vs. "correct" version was written, i.e. using `x[key] = value`

vs. `defineProperty`

which is faster but can be hit but a particular nasty edge case for those who deem it fun to extend `Object.prototype`

.

Babel, in both loose+runtime and runtime mode, and Traceur were then used to compile the ES6 version to a ES5 compliant version, utilizing the runtime over polyfill to maintain test isolation and avoid native implementations where possible.

All of these test instances were then benchmarked in the given JavaScript engine using Benchmark.js and then the operations per second compared to the ES5 implementation. Cross browser and cross execution comparisions are avoided as much as possible to isolate environmental issues when executing on VMs in the cloud. `Identical`

indicates that the tested implementation was +/- 10% of the ES5 implementation.