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

4.8.4 | 5.12.0 | 6.11.2 | 7.10.1 | 8.6.0 | 49 | 51 | 54 | 56 | 57 | 60.0.3112.20 | 46 | 49 | 13.10586 | 9 | 602.1.36+ | ||

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

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

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

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

es5-bind | 16x slower | 17x slower | 2.7x slower | 2.0x slower | Identical | 35x slower | 1.9x slower | 1.7x slower | 1.7x slower | 1.8x slower | Identical | Identical | 8x slower | 4x slower | 12x slower | 6x slower | |

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

arrow-args tests | babel | Identical | 1.3x faster | 1.2x faster | 1.3x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | ||

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

traceur | 1.2x faster | 1.2x faster | 1.2x faster | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |||

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

es6 | 1.2x faster | 1.2x faster | 1.2x faster | 1.3x slower | Identical | Identical | Identical | Identical | Identical | Identical | 4x faster | Identical | Identical | Identical | 36x slower | ||

arrow-declare tests | babel | 1.8x slower | Identical | Identical | 1.3x slower | 1.2x slower | 1.3x slower | 1.2x slower | 1.4x slower | Identical | 34x slower | 39x slower | 1.5x slower | Identical | 1.8x slower | ||

buble | 1.3x slower | 1.2x slower | Identical | Identical | 1.3x slower | 1.3x slower | 1.3x slower | 1.4x slower | Identical | 17x slower | 19x slower | 1.4x slower | Identical | ||||

traceur | 1.3x slower | 1.3x slower | 1.2x slower | 1.2x slower | 1.4x slower | 1.3x slower | 1.2x slower | 1.4x slower | Identical | 16x slower | 19x slower | 1.5x slower | Identical | 1.9x slower | |||

typescript | Identical | 1.4x slower | 1.7x slower | 1.4x faster | 1.2x slower | 1.2x slower | 1.2x slower | 1.2x slower | Identical | 16x slower | 19x slower | 1.5x slower | Identical | 2.0x slower | |||

es6 | 1.3x slower | Identical | Identical | 1.2x slower | 1.2x slower | 1.3x slower | 1.3x slower | 1.2x slower | 1.3x slower | 1.4x slower | Identical | 42x slower | 48x slower | 1.5x slower | 2.0x slower | ||

bindings tests | babel | Identical | Identical | 1.2x faster | 1.3x slower | Identical | 1.3x faster | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | ||

buble | Identical | 1.2x slower | Identical | 1.4x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | ||||

traceur | 1.2x slower | Identical | Identical | Identical | Identical | 1.2x faster | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | |||

typescript | Identical | 1.5x slower | 1.4x slower | Identical | Identical | 1.3x faster | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | |||

es6 | Identical | Identical | 1.2x faster | 1.4x slower | Identical | 1.2x faster | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | ||

bindings-compound tests | babel | 1.4x slower | Identical | 1.2x faster | 1.2x slower | Identical | Identical | Identical | Identical | 1.3x slower | Identical | Identical | Identical | Identical | Error | ||

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

traceur | Identical | 1.2x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | |||

typescript | 1.2x faster | 1.3x slower | 1.6x slower | Identical | Identical | Identical | Identical | Identical | 1.7x faster | Identical | Identical | Identical | Identical | Error | |||

es6 | 1.5x slower | Identical | 2.0x slower | Identical | Identical | 1.5x slower | 1.5x slower | Identical | Identical | Identical | Identical | Identical | Error | ||||

classes tests | babel | 2.0x slower | 1.3x slower | 1.7x slower | 5x slower | Identical | 1.2x slower | 1.8x slower | 1.2x slower | 32x faster | 29x slower | 30x slower | 1.3x slower | Identical | Error | ||

babel-loose | Identical | 1.5x slower | 1.7x slower | 5x slower | Identical | Identical | 1.8x slower | Identical | 37x faster | 29x slower | 31x slower | Identical | Identical | Error | |||

babel-runtime | 1.6x slower | 1.3x slower | 2.4x slower | 6x slower | Identical | 1.2x slower | 2.0x slower | Identical | 35x faster | 32x slower | 34x slower | 1.3x slower | Identical | Error | |||

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

traceur | Identical | 1.3x slower | 1.4x slower | Identical | Identical | Identical | Identical | Identical | 32x faster | Identical | Identical | Identical | Identical | Error | |||

typescript | 1.2x faster | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.6x faster | Identical | Identical | Identical | Identical | Error | |||

es6 | Identical | Identical | Identical | Identical | Identical | 2.0x slower | 1.2x slower | Identical | 1.6x slower | Identical | Identical | Identical | Identical | 1.3x slower | 1.2x slower | Error | |

defaults tests | babel | 1.8x slower | 1.3x slower | 1.3x slower | 1.2x slower | 15x slower | 1.2x slower | 1.4x slower | 1.4x slower | 16x slower | Identical | Identical | 2.6x slower | 6x slower | Error | ||

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

traceur | 8x slower | 9x slower | 10x slower | 17x slower | 99x slower | 55x slower | 10x slower | 13x slower | 99x slower | 2616x slower | 2552x slower | 250x slower | 9x slower | Error | |||

typescript | 1.3x faster | 1.6x slower | 1.3x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | |||

es6 | 2.8x slower | Identical | Identical | Identical | 2.8x slower | 1.2x slower | Identical | Identical | 2.3x slower | Identical | Identical | Identical | Identical | Error | |||

destructuring tests | babel | 1.8x slower | 2.0x slower | 1.7x slower | 1.4x slower | 4x slower | 1.7x slower | 2.3x slower | 1.3x slower | Identical | Identical | Identical | 4x slower | 2.3x slower | Error | ||

babel-loose | Identical | 1.2x slower | 1.7x faster | 1.5x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | |||

babel-runtime | 1.5x slower | 1.4x slower | 1.3x slower | 1.3x slower | 6x slower | 1.4x slower | 2.4x slower | 1.4x slower | 1.2x slower | Identical | Identical | 4x slower | 2.3x slower | Error | |||

traceur | 14x slower | 11x slower | 7x slower | 19x slower | 4x slower | 10x slower | 12x slower | 5x slower | Identical | 150x slower | 108x slower | 35x slower | 32x slower | Error | |||

typescript | 1.2x faster | Identical | 1.4x faster | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | |||

es6 | 12x slower | 11x slower | 9x slower | 20x slower | 10x slower | 11x slower | 6x slower | 4x slower | 1.3x slower | Identical | 155x slower | 121x slower | 21x slower | 26x slower | Error | ||

destructuring-array tests | es6 | 8x slower | 7x slower | 9x slower | 16x slower | 4x slower | 6x slower | 6x slower | Identical | 5x faster | |||||||

destructuring-custom-iterator tests | es6 | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |||||||

destructuring-default-values tests | es6 | 1.8x slower | 1.8x slower | Identical | Identical | Identical | Identical | 1.2x slower | Identical | Identical | |||||||

destructuring-nested-object tests | es6 | 1.5x slower | 1.7x slower | Identical | Identical | Identical | Identical | 1.3x slower | Identical | 1.2x faster | |||||||

destructuring-simple tests | babel | 1.2x slower | 1.4x faster | 1.2x faster | Identical | Identical | Identical | Identical | 1.3x faster | 1.7x faster | Identical | Identical | Identical | Identical | Identical | ||

buble | 1.4x faster | 1.3x faster | Identical | Identical | Identical | Identical | 1.3x slower | Identical | 1.3x slower | Identical | Identical | Identical | Identical | ||||

traceur | 1.5x faster | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.6x faster | Identical | Identical | Identical | Identical | Identical | |||

typescript | 1.5x faster | Identical | 1.3x slower | Identical | Identical | Identical | Identical | Identical | 1.3x slower | Identical | Identical | Identical | Identical | Identical | |||

es6 | 1.3x slower | 1.5x slower | 1.2x faster | Identical | Identical | 1.3x slower | Identical | 1.3x slower | Identical | 1.3x slower | 4x slower | 3x slower | Identical | Identical | Identical | ||

destructuring-string tests | es6 | 5x slower | 5x slower | 8x slower | 2.8x slower | 9x slower | 6x slower | Identical | 3x slower | ||||||||

for-of-array tests | babel | 6x slower | 8x slower | 7x slower | 7x slower | Identical | 6x slower | 5x slower | 1.4x slower | 1.2x slower | 17x slower | 15x slower | 10x slower | 7x slower | 3x slower | ||

babel-loose | 1.5x faster | Identical | Identical | Identical | Identical | Identical | 1.4x slower | 1.2x slower | Identical | 1.4x slower | 1.2x slower | 1.3x slower | 1.3x slower | Identical | |||

babel-runtime | 6x slower | 6x slower | 6x slower | 7x slower | 1.8x slower | 6x slower | 6x slower | 1.7x slower | 1.2x slower | 17x slower | 13x slower | 25x slower | 7x slower | 3x slower | |||

traceur | 7x slower | 10x slower | 7x slower | 6x slower | 1.2x slower | 7x slower | 8x slower | 1.4x slower | 1.2x slower | 16x slower | 15x slower | 9x slower | 7x slower | 3x slower | |||

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

es6 | 5x slower | 7x slower | 6x slower | 7x slower | Identical | 5x slower | 4x slower | 6x slower | 3.0x slower | 1.4x slower | Identical | 4x slower | 3x slower | 5x slower | 5x slower | 3x slower | |

for-of-object tests | babel | 4x slower | 4x slower | 4x slower | 3x slower | 2.0x slower | 5x slower | 4x slower | 2.4x slower | 1.8x slower | 6x slower | 6x slower | 5x slower | 3x slower | 2.3x slower | ||

babel-loose | 2.8x slower | 2.4x slower | 2.9x slower | 2.8x slower | 2.3x slower | 5x slower | 3x slower | 2.5x slower | 1.9x slower | 4x slower | 2.8x slower | 13x slower | 2.4x slower | 2.4x slower | |||

babel-runtime | 3x slower | 2.7x slower | 3x slower | 4x slower | 3x slower | 5x slower | 4x slower | 2.5x slower | 1.9x slower | 6x slower | 5x slower | 24x slower | 3x slower | 2.4x slower | |||

traceur | 3x slower | 3x slower | 3x slower | 3x slower | 2.1x slower | 5x slower | 4x slower | 2.6x slower | 1.8x slower | 7x slower | 6x slower | 5x slower | 3.0x slower | 4x slower | |||

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

es6 | 3x slower | 3x slower | 3x slower | 3x slower | 2.1x slower | 5x slower | 4x slower | 2.2x slower | 2.3x slower | 2.4x slower | 1.9x slower | 3x slower | 2.3x slower | 3x slower | 2.4x slower | 2.4x slower | |

generator tests | babel | 7x slower | 5x slower | 4x slower | 5x slower | 4x slower | 7x slower | 6x slower | 4x slower | 3x slower | 13x slower | 11x slower | 33x slower | 17x slower | 9x slower | ||

babel-loose | 5x slower | 4x slower | 3x slower | 5x slower | 4x slower | 7x slower | 6x slower | 4x slower | 3.0x slower | 13x slower | 11x slower | 32x slower | 18x slower | 9x slower | |||

babel-runtime | 6x slower | 4x slower | 4x slower | 5x slower | 5x slower | 7x slower | 6x slower | 4x slower | 3x slower | 13x slower | 11x slower | 32x slower | 18x slower | 9x slower | |||

traceur | 32x slower | 28x slower | 13x slower | 33x slower | 86x slower | 47x slower | 23x slower | 29x slower | 33x slower | 166x slower | 137x slower | 36x slower | 17x slower | 4x slower | |||

es6 | 1.5x slower | 1.2x slower | 3x slower | 5x slower | 1.2x slower | 1.9x slower | 6x slower | 5x slower | 6x slower | 1.9x slower | 1.3x slower | 13x slower | 11x slower | 18x slower | 5x slower | ||

map-set tests | babel | 7x slower | 7x slower | 6x slower | 5x slower | 4x slower | 3x slower | 4x slower | 4x slower | 4x slower | 16x slower | 13x slower | 1.6x slower | 7x slower | 6x slower | ||

babel-loose | 10x slower | 10x slower | 15x slower | 12x slower | 9x slower | 5x slower | 11x slower | 6x slower | 8x slower | 32x slower | 33x slower | 6x slower | 23x slower | 21x slower | |||

babel-runtime | 10x slower | 11x slower | 14x slower | 11x slower | 9x slower | 5x slower | 11x slower | 6x slower | 8x slower | 32x slower | 33x slower | 6x slower | 23x slower | 28x slower | |||

buble | 6x slower | 7x slower | 6x slower | 5x slower | 4x slower | 3x slower | 4x slower | 4x slower | 4x slower | 15x slower | 13x slower | 1.5x slower | 9x slower | ||||

traceur | 7x slower | 8x slower | 7x slower | 17x slower | 5x slower | 3x slower | 4x slower | 4x slower | 4x slower | 16x slower | 14x slower | 1.6x slower | 8x slower | Error | |||

typescript | 7x slower | 9x slower | 9x slower | 5x slower | 4x slower | 3x slower | 4x slower | 4x slower | 4x slower | 16x slower | 14x slower | 1.5x slower | 8x slower | 7x slower | |||

es6 | 8x slower | 6x slower | 6x slower | 4x slower | 4x slower | 3x slower | 4x slower | 4x slower | 4x slower | 4x slower | 4x slower | 16x slower | 14x slower | 1.5x slower | 9x slower | 7x slower | |

map-set-lookup tests | babel | 8x faster | 9x faster | 8x faster | 8x faster | 10x faster | 9x faster | 9x faster | 8x faster | 7x faster | 13x faster | 38x faster | 66x faster | 63x faster | 59x faster | ||

babel-loose | 5x faster | 5x faster | 2.0x faster | 1.7x faster | 4x faster | 5x faster | 2.3x faster | 5x faster | 4x faster | 2.3x faster | 6x faster | 11x faster | 8x faster | 8x faster | |||

babel-runtime | 5x faster | 4x faster | 2.2x faster | 1.6x faster | 2.9x faster | 4x faster | 2.3x faster | 5x faster | 4x faster | 2.3x faster | 6x faster | 11x faster | 8x faster | 5x faster | |||

buble | 10x faster | 9x faster | 9x faster | 8x faster | 17x faster | 9x faster | 11x faster | 10x faster | 18x faster | 13x faster | 39x faster | 59x faster | 64x faster | ||||

traceur | 9x faster | 8x faster | 9x faster | 7x faster | 10x faster | 8x faster | 9x faster | 8x faster | 9x faster | 13x faster | 38x faster | 61x faster | 65x faster | Error | |||

typescript | 10x faster | 8x faster | 3x faster | 8x faster | 17x faster | 9x faster | 10x faster | 10x faster | 9x faster | 13x faster | 38x faster | 62x faster | 65x faster | 59x faster | |||

es6 | 8x faster | 9x faster | 9x faster | 7x faster | 17x faster | 10x faster | 11x faster | 10x faster | 10x faster | 11x faster | 15x faster | 13x faster | 39x faster | 65x faster | 65x faster | Error | |

map-set-object tests | babel | 1.3x faster | 1.4x faster | 9x slower | 9x slower | 11x slower | 1.6x slower | 8x slower | 7x slower | 8x slower | 9x slower | 6x slower | 1.6x slower | 2.1x slower | 5x slower | ||

babel-loose | Identical | Identical | 21x slower | 22x slower | 17x slower | 2.1x slower | 19x slower | 11x slower | 16x slower | 18x slower | 14x slower | 6x slower | 7x slower | 15x slower | |||

babel-runtime | Identical | Identical | 21x slower | 24x slower | 23x slower | 2.1x slower | 19x slower | 10x slower | 17x slower | 19x slower | 14x slower | 6x slower | 7x slower | 21x slower | |||

buble | 1.4x faster | 1.3x faster | 8x slower | 8x slower | 10x slower | 1.5x slower | 8x slower | 7x slower | 9x slower | 9x slower | 5x slower | 1.6x slower | 2.4x slower | ||||

traceur | 1.5x faster | 1.3x faster | 13x slower | 8x slower | 10x slower | 1.5x slower | 8x slower | 7x slower | 9x slower | 8x slower | 5x slower | 1.7x slower | 2.2x slower | Error | |||

typescript | 1.5x faster | 1.3x faster | 11x slower | 8x slower | 9x slower | 1.6x slower | 8x slower | 7x slower | 9x slower | 8x slower | 5x slower | 1.5x slower | 2.2x slower | Error | |||

es6 | 1.3x faster | 1.2x faster | 9x slower | 8x slower | 9x slower | 1.6x slower | 8x slower | 7x slower | 7x slower | 7x slower | 9x slower | 8x slower | 5x slower | 1.6x slower | 2.3x slower | Error | |

map-string tests | babel | 1.7x slower | 1.9x slower | 1.9x slower | 1.6x slower | 1.7x slower | 1.9x slower | 2.5x slower | 1.9x slower | 2.4x slower | 52x slower | 57x slower | 9x slower | 1.4x faster | Error | ||

babel-loose | 2.5x slower | 3x slower | 9x slower | 8x slower | 5x slower | 2.7x slower | 11x slower | 3x slower | 6x slower | 182x slower | 222x slower | 26x slower | 5x slower | 4x slower | |||

babel-runtime | 2.5x slower | 2.6x slower | 9x slower | 8x slower | 6x slower | 3x slower | 12x slower | 4x slower | 6x slower | 180x slower | 223x slower | 24x slower | 4x slower | 5x slower | |||

buble | 1.6x slower | 1.8x slower | 2.0x slower | 1.7x slower | 1.8x slower | 2.0x slower | 2.7x slower | 1.9x slower | 5x slower | 52x slower | 56x slower | 9x slower | 1.4x faster | ||||

traceur | 1.7x slower | 2.2x slower | 2.0x slower | 1.8x slower | 1.8x slower | 1.9x slower | 2.5x slower | 1.8x slower | 1.8x slower | 52x slower | 56x slower | 9x slower | 1.3x faster | Error | |||

typescript | 1.6x slower | 1.7x slower | 2.7x slower | 1.7x slower | 1.7x slower | 1.9x slower | 2.5x slower | 1.9x slower | 2.2x slower | 54x slower | 56x slower | 9x slower | 1.3x faster | Error | |||

es6 | 1.9x slower | 1.9x slower | 1.9x slower | 1.8x slower | 1.8x slower | 1.8x slower | 2.6x slower | 2.0x slower | 1.7x slower | 1.8x slower | 6x slower | 52x slower | 56x slower | 10x slower | 1.3x faster | Error | |

new-target tests | es6 | 1.4x slower | 1.3x slower | 1.5x slower | 1.8x slower | 4x faster | Identical | 1.9x slower | 2.2x slower | 1.9x slower | 1.5x slower | Identical | 16x faster | 18x faster | Identical | ||

nodesource-array-includes tests | es6 | 4x slower | 5x slower | 3x slower | 2.1x slower | Identical | 2.0x slower | 1.8x slower | Identical | ||||||||

nodesource-default-params tests | es6 | 1.2x slower | Identical | Identical | Identical | Identical | Identical | 1.7x slower | |||||||||

object-assign tests | babel | 5x slower | 5x slower | 4x slower | 2.4x slower | 3x slower | 2.5x slower | 4x slower | 2.7x slower | 4x slower | 1.4x slower | 1.5x slower | 1.6x faster | 4x slower | Error | ||

babel-loose | 5x slower | 5x slower | 3x slower | 2.5x slower | 3x slower | 2.5x slower | 4x slower | 2.7x slower | 3x slower | 1.4x slower | 1.6x slower | 1.6x faster | 3x slower | 2.2x slower | |||

babel-runtime | 5x slower | 5x slower | 4x slower | 2.4x slower | 4x slower | 2.3x slower | 4x slower | 2.8x slower | 3x slower | 1.4x slower | 1.6x slower | 1.7x faster | 3x slower | 2.1x slower | |||

buble | 4x slower | 5x slower | 3x slower | 2.9x slower | 4x slower | 1.3x slower | 4x slower | 2.6x slower | 3x slower | 1.4x slower | 1.5x slower | 1.6x faster | 4x slower | ||||

traceur | 6x slower | 6x slower | 4x slower | 2.4x slower | 4x slower | 1.4x slower | 4x slower | 2.8x slower | 3x slower | 1.4x slower | 1.5x slower | 1.6x faster | 3x slower | Error | |||

typescript | 4x slower | 4x slower | 4x slower | 2.5x slower | 3x slower | 1.4x slower | 4x slower | 2.8x slower | 3x slower | 1.4x slower | 1.6x slower | 1.7x faster | 3x slower | 2.7x slower | |||

es6 | 5x slower | 4x slower | 3x slower | 2.5x slower | 4x slower | 1.4x slower | 4x slower | 3.0x slower | 3.0x slower | 2.7x slower | 3x slower | 1.4x slower | 1.5x slower | 1.8x faster | 2.4x slower | ||

object-literal-ext tests | babel | 6x slower | 8x slower | 5x slower | 4x slower | 3x slower | 5x slower | 5x slower | 2.6x slower | 5x slower | 3x slower | 3x slower | 1.6x slower | 1.4x faster | Error | ||

babel-loose | Identical | Identical | 1.2x faster | 1.4x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.6x faster | Identical | |||

babel-runtime | 6x slower | 6x slower | 4x slower | 5x slower | 4x slower | 5x slower | 5x slower | 2.4x slower | 5x slower | 3.0x slower | 3x slower | 1.6x slower | 1.5x faster | 1.3x slower | |||

traceur | 116x slower | 115x slower | 23x slower | 26x slower | 44x slower | 37x slower | 26x slower | 15x slower | 42x slower | 25x slower | 24x slower | 4x slower | 3x slower | Error | |||

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

es6 | 19x slower | 19x slower | 7x slower | 11x slower | 6x slower | 14x slower | 8x slower | 6x slower | 8x slower | 6x slower | 5x slower | 13x slower | 13x slower | Identical | 1.8x faster | 2.5x slower | |

promises tests | babel | Identical | Identical | Identical | Identical | Identical | 2.2x faster | 2.0x faster | 1.9x faster | 2.0x faster | Identical | Identical | Identical | 7x faster | 8x faster | ||

babel-loose | Identical | Identical | Identical | Identical | Identical | 2.0x faster | 2.0x faster | 1.9x faster | 1.9x faster | Identical | Identical | Identical | 7x faster | 8x faster | |||

babel-runtime | Identical | Identical | Identical | Identical | Identical | 2.0x faster | 1.9x faster | 1.9x faster | 1.9x faster | Identical | Identical | Identical | 7x faster | 8x faster | |||

buble | Identical | Identical | Identical | Identical | Identical | 2.1x faster | 2.0x faster | 1.9x faster | 2.0x faster | Identical | Identical | Identical | 7x faster | 8x faster | |||

traceur | Identical | Identical | Identical | Identical | Identical | 2.0x faster | 2.0x faster | 1.9x faster | 2.0x faster | Identical | Identical | Identical | 7x faster | 7x faster | |||

typescript | Identical | Identical | Identical | Identical | Identical | 2.1x faster | 2.0x faster | 1.9x faster | 2.0x faster | Identical | Identical | Identical | 7x faster | 8x faster | |||

es6 | Identical | Identical | Identical | Identical | Identical | 2.2x faster | 2.0x faster | 2.0x faster | 2.0x faster | 1.9x faster | 2.0x faster | Identical | Identical | Identical | 7x faster | 8x faster | |

regex-u tests | babel | 2.0x slower | 2.7x slower | 1.2x faster | 2.5x slower | 1.4x slower | 1.8x slower | 1.5x slower | 1.6x slower | 1.6x slower | 6x slower | 1.4x slower | 7x slower | 4x slower | Error | ||

traceur | 1.6x slower | 1.4x slower | 1.3x faster | 2.3x slower | 1.6x slower | 1.8x slower | 1.4x slower | 1.5x slower | 1.4x slower | 2.9x slower | 1.3x slower | 1.5x slower | 1.4x slower | Error | |||

typescript | Incorrect | Incorrect | Identical | 1.9x slower | 1.4x slower | 1.5x slower | 1.4x slower | 1.5x slower | 3x slower | 1.4x slower | 1.3x slower | ||||||

es6 | Incorrect | Incorrect | 1.2x faster | 2.0x slower | 1.4x slower | 1.5x slower | 1.6x slower | Identical | 1.3x slower | 1.4x slower | 3x slower | 1.4x slower | 1.3x slower | Error | |||

rest tests | babel | 5x faster | 4x faster | 4x faster | 7x faster | 4x faster | 47x faster | 6x faster | 6x faster | 4x faster | 1620x faster | 1422x faster | 1.6x slower | 1.3x faster | Error | ||

buble | 1.4x faster | 1.3x faster | 1.2x faster | 1.5x slower | 1.7x slower | 9x faster | 1.2x faster | Identical | 1.4x slower | 17x faster | 14x faster | 1.6x slower | Identical | ||||

traceur | 1.4x faster | 1.2x faster | Identical | 1.7x slower | 1.6x slower | 9x faster | 1.2x faster | 1.2x faster | 1.4x slower | 18x faster | 14x faster | 1.7x slower | Identical | Error | |||

typescript | 1.5x faster | 1.3x faster | 1.3x slower | 1.7x slower | 1.5x slower | 8x faster | 1.2x faster | Identical | 1.4x slower | 18x faster | 14x faster | 1.7x slower | Identical | Error | |||

es6 | 3x slower | 3x slower | 1.2x faster | Identical | Identical | 2.5x faster | 1.2x faster | 1.4x faster | 1.3x faster | 1.2x faster | Identical | 23x faster | 18x faster | 11x faster | Error | ||

spread tests | babel | Identical | Identical | Identical | 1.5x slower | Identical | Identical | Identical | 1.2x slower | 1.2x slower | Identical | Identical | Identical | Identical | Error | ||

buble | Identical | Identical | Identical | 1.5x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | ||||

traceur | 5x slower | 5x slower | 11x slower | 22x slower | 2.0x slower | 5x slower | 10x slower | 5x slower | 2.1x slower | 4x slower | 4x slower | 21x slower | 28x slower | Error | |||

typescript | Identical | Identical | 1.7x slower | 1.3x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | |||

es6 | 9x slower | 9x slower | 23x slower | 27x slower | 1.3x slower | 10x slower | 23x slower | 19x slower | 13x slower | 1.4x slower | Identical | 9x slower | 6x slower | 1.5x slower | 5x slower | Error | |

spread-generator tests | babel | 6x slower | 8x slower | 32x slower | 20x slower | 7x slower | 8x slower | 17x slower | 25x slower | 7x slower | 5x slower | 5x slower | 90x slower | 13x slower | Error | ||

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

babel-runtime | 5x slower | 5x slower | 26x slower | 18x slower | 9x slower | 7x slower | 24x slower | 28x slower | 8x slower | 6x slower | 5x slower | 36x slower | 13x slower | Error | |||

traceur | 17x slower | 17x slower | 22x slower | 28x slower | 57x slower | 32x slower | 20x slower | 20x slower | 28x slower | 32x slower | 37x slower | 43x slower | 10x slower | Error | |||

es6 | 2.5x slower | 2.8x slower | 9x slower | 6x slower | 4x slower | 3.0x slower | 8x slower | 6x slower | 10x slower | 4x slower | 3x slower | 8x slower | 7x slower | 10x slower | Error | ||

spread-literal tests | babel | 1.2x slower | Identical | 4x slower | 1.5x slower | 3x slower | 2.0x slower | 5x slower | 2.0x slower | 3x slower | 2.1x faster | 1.3x slower | 1.6x slower | 1.3x slower | Error | ||

buble | Identical | Identical | 4x slower | 2.3x slower | 4x slower | 2.0x slower | 5x slower | 2.1x slower | 3x slower | 2.1x faster | 1.3x slower | 1.4x slower | 1.3x slower | ||||

traceur | 114x slower | 2.9x slower | 12x slower | 25x slower | 4x slower | 2.5x slower | 7x slower | 5x slower | 3.0x slower | 3x slower | 2.9x slower | 25x slower | 8x slower | Error | |||

typescript | Identical | Identical | 5x slower | 2.2x slower | 3x slower | 1.9x slower | 5x slower | 2.1x slower | 3x slower | 2.0x faster | 1.3x slower | 2.2x slower | 1.5x slower | Error | |||

es6 | 6x slower | 5x slower | 8x slower | 6x slower | 5x slower | 5x slower | 9x slower | 6x slower | 4x slower | 3x slower | 4x slower | 7x slower | 5x slower | 1.9x slower | 6x slower | Error | |

spread-super tests | es6 | 12x slower | 10x slower | 2.4x slower | 19x slower | 7x slower | 6x slower | Identical | |||||||||

super tests | babel | 15x slower | 11x slower | 10x slower | 13x slower | 133x slower | 18x slower | 12x slower | 8x slower | 27x slower | 24x slower | 25x slower | 22x slower | 21x slower | Error | ||

babel-loose | 1.8x slower | 1.4x slower | 2.7x slower | 5x slower | 11x slower | 1.4x slower | 2.8x slower | 1.6x slower | 3x slower | 4x slower | 4x slower | 7x slower | 1.8x slower | Error | |||

babel-runtime | 15x slower | 11x slower | 11x slower | 10x slower | 145x slower | 17x slower | 12x slower | 8x slower | 31x slower | 24x slower | 25x slower | 26x slower | 21x slower | Error | |||

buble | Identical | 1.5x faster | Identical | 1.2x faster | Identical | Identical | Identical | Identical | 4x slower | 1.2x slower | Identical | Identical | 2.8x faster | ||||

traceur | 16x slower | 9x slower | 11x slower | 77x slower | 202x slower | 15x slower | 9x slower | 7x slower | 30x slower | 20x slower | 21x slower | 22x slower | 22x slower | Error | |||

typescript | Identical | 1.4x faster | 1.4x slower | Identical | Identical | Identical | Identical | Identical | 6x slower | Identical | Identical | 1.3x slower | Identical | Error | |||

es6 | 13x slower | 8x slower | 2.9x slower | 2.2x slower | 41x slower | 6x slower | 4x slower | 2.8x slower | 4x slower | 2.3x slower | 17x slower | 47x slower | 53x slower | 2.9x slower | 7x slower | Error | |

template string tests | babel | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 2.2x slower | Identical | Identical | 1.9x faster | Identical | Error | ||

buble | Identical | 1.2x faster | Identical | 1.4x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.3x faster | Identical | ||||

traceur | Identical | Identical | 2.9x slower | 27x slower | 1.3x slower | Identical | Identical | Identical | 2.5x slower | Identical | Identical | 1.8x faster | Identical | Error | |||

typescript | 1.2x faster | 1.2x faster | Identical | 1.2x slower | Identical | Identical | Identical | Identical | 1.3x slower | Identical | Identical | 2.3x faster | Identical | Error | |||

es6 | 1.7x slower | 1.7x slower | Identical | 1.5x slower | Identical | Identical | Identical | Identical | Identical | Identical | 2.3x slower | Identical | Identical | 2.5x faster | Identical | Error | |

template string tag tests | babel | 1.4x slower | 1.5x slower | Identical | Identical | 1.4x slower | 1.4x slower | 1.4x slower | 1.4x slower | 1.3x slower | 26x slower | 27x slower | 1.4x slower | 2.0x slower | Error | ||

babel-loose | Identical | 1.2x faster | 1.7x faster | Identical | Identical | Identical | Identical | Identical | 1.8x faster | 10x faster | 11x faster | 1.4x faster | 1.4x faster | Error | |||

babel-runtime | 1.4x slower | 1.2x slower | 1.2x faster | 1.4x slower | 1.8x slower | 1.4x slower | 1.4x slower | 1.2x slower | Identical | 26x slower | 27x slower | 1.4x slower | 2.0x slower | Error | |||

traceur | 7x slower | 8x slower | 7x slower | 105x slower | 11x slower | 19x slower | 10x slower | 8x slower | 6x slower | 146x slower | 134x slower | 12x slower | 7x slower | Error | |||

typescript | Identical | Identical | 1.2x faster | Identical | Identical | Identical | 1.3x slower | 1.4x slower | Identical | 79x slower | 77x slower | 1.2x slower | 2.8x slower | Error | |||

es6 | 4x slower | 4x slower | 1.9x slower | 4x slower | 3x slower | 3x slower | 3x slower | 2.4x slower | 4x slower | 2.7x slower | 2.1x slower | 26x slower | 27x slower | 1.3x slower | 2.3x slower | Error |

Run on 2017-9-28 using babel 6.18.0, babel-runtime 6.18.0, and traceur 0.0.108.

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.