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

4.7.0 | 5.11.1 | 6.9.4 | 7.4.0 | 49 | 51 | 54 | 56 | 57 | 57.0.2986.0 | 46 | 49 | 13.10586 | 9 | 602.1.36+ | ||

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

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

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

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

es5-bind | 15x slower | 13x slower | 2.0x slower | 1.7x slower | 35x slower | 1.9x slower | 1.7x slower | 1.7x slower | 1.9x slower | 2.0x slower | Identical | 8x slower | 4x slower | 12x slower | 6x slower | |

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

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

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

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

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

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

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

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

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

typescript | 1.3x slower | 1.4x slower | 1.3x slower | 1.4x slower | 1.2x slower | 1.2x slower | 1.2x slower | 16x slower | 19x slower | 1.5x slower | Identical | 2.0x slower | ||||

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

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

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

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

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

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

bindings-compound tests | babel | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | |||

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

traceur | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | ||||

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

es6 | 1.4x slower | 1.2x slower | 1.3x slower | Identical | 1.5x slower | 1.5x slower | 1.6x slower | Identical | Identical | Identical | Identical | Error | ||||

classes tests | babel | 1.3x slower | 1.3x slower | 1.8x slower | 5x slower | 1.2x slower | 1.8x slower | 1.2x slower | 29x slower | 30x slower | 1.3x slower | Identical | Error | |||

babel-loose | Identical | Identical | 1.7x slower | 6x slower | Identical | 1.8x slower | 1.2x slower | 29x slower | 31x slower | Identical | Identical | Error | ||||

babel-runtime | 1.2x slower | Identical | 1.8x slower | 5x slower | 1.2x slower | 2.0x slower | 1.2x slower | 32x slower | 34x slower | 1.3x slower | Identical | Error | ||||

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

traceur | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | ||||

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | ||||

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

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

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

traceur | 7x slower | 8x slower | 10x slower | 12x slower | 55x slower | 10x slower | 12x slower | 2616x slower | 2552x slower | 250x slower | 9x slower | Error | ||||

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | ||||

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

destructuring tests | babel | 1.4x slower | 1.5x slower | 1.9x slower | 1.2x slower | 1.7x slower | 2.3x slower | 1.2x slower | Identical | Identical | 4x slower | 2.3x slower | Error | |||

babel-loose | 1.2x faster | 1.2x faster | Identical | 1.2x faster | Identical | Identical | 1.2x faster | Identical | Identical | Identical | Identical | Error | ||||

babel-runtime | Identical | Identical | 1.9x slower | Identical | 1.4x slower | 2.4x slower | Identical | Identical | Identical | 4x slower | 2.3x slower | Error | ||||

traceur | 10x slower | 10x slower | 11x slower | 13x slower | 10x slower | 12x slower | 4x slower | 150x slower | 108x slower | 35x slower | 32x slower | Error | ||||

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

es6 | 10x slower | 9x slower | 10x slower | 7x slower | 11x slower | 6x slower | 4x slower | 1.9x slower | 1.8x slower | 155x slower | 121x slower | 21x slower | 26x slower | Error | ||

destructuring-array tests | es6 | 7x slower | 7x slower | 6x slower | 6x slower | 6x slower | 1.2x slower | 1.8x slower | ||||||||

destructuring-custom-iterator tests | es6 | 1.2x faster | Identical | 1.2x faster | Identical | Identical | 1.2x slower | Identical | ||||||||

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

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

destructuring-simple tests | babel | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | |||

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

traceur | 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 | ||||

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

destructuring-string tests | es6 | 6x slower | 9x slower | 5x slower | 6x slower | 1.8x slower | 1.9x slower | |||||||||

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

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

babel-runtime | 6x slower | 6x slower | 5x slower | 6x slower | 6x slower | 6x slower | 1.5x slower | 17x slower | 13x slower | 25x slower | 7x slower | 3x slower | ||||

traceur | 7x slower | 7x slower | 8x slower | 6x slower | 7x slower | 8x slower | 1.3x slower | 16x slower | 15x slower | 9x slower | 7x slower | 3x slower | ||||

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

es6 | 7x slower | 6x slower | 8x slower | 4x slower | 5x slower | 4x slower | 6x slower | 3.0x slower | 1.3x slower | 1.3x slower | 4x slower | 3x slower | 5x slower | 5x slower | 3x slower | |

for-of-object tests | babel | 2.8x slower | 2.5x slower | 4x slower | 2.4x slower | 5x slower | 4x slower | 2.4x slower | 6x slower | 6x slower | 5x slower | 3x slower | 2.3x slower | |||

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

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

traceur | 3.0x slower | 2.5x slower | 4x slower | 2.3x slower | 5x slower | 4x slower | 2.4x 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 | ||||

es6 | 3.0x slower | 2.4x slower | 4x slower | 2.4x slower | 5x slower | 4x slower | 2.2x slower | 2.3x slower | 2.2x slower | 2.5x slower | 3x slower | 2.3x slower | 3x slower | 2.4x slower | 2.4x slower | |

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

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

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

traceur | 20x slower | 21x slower | 32x slower | 38x slower | 47x slower | 23x slower | 29x slower | 166x slower | 137x slower | 36x slower | 17x slower | 4x slower | ||||

es6 | 1.4x slower | Identical | 6x slower | 4x slower | 1.9x slower | 6x slower | 5x slower | 6x slower | 2.1x slower | 2.0x slower | 13x slower | 11x slower | 18x slower | 5x slower | ||

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

babel-loose | 10x slower | 9x slower | 14x slower | 16x slower | 5x slower | 11x slower | 7x slower | 32x slower | 33x slower | 6x slower | 23x slower | 21x slower | ||||

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

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

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

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

es6 | 8x slower | 6x slower | 5x slower | 5x 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 | 9x faster | 9x faster | 9x faster | 8x faster | 9x faster | 9x faster | 7x faster | 13x faster | 38x faster | 66x faster | 63x faster | 59x faster | |||

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

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

buble | 8x faster | 9x faster | 9x faster | 8x faster | 9x faster | 11x faster | 9x faster | 13x faster | 39x faster | 59x faster | 64x faster | |||||

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

typescript | 10x faster | 9x faster | 9x faster | 9x faster | 9x faster | 10x faster | 9x faster | 13x faster | 38x faster | 62x faster | 65x faster | 59x faster | ||||

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

map-set-object tests | babel | 1.5x slower | 1.8x faster | 9x slower | 8x slower | 1.6x slower | 8x slower | 8x slower | 9x slower | 6x slower | 1.6x slower | 2.1x slower | 5x slower | |||

babel-loose | 2.1x slower | 1.2x faster | 21x slower | 25x slower | 2.1x slower | 19x slower | 13x slower | 18x slower | 14x slower | 6x slower | 7x slower | 15x slower | ||||

babel-runtime | 2.2x slower | 1.3x faster | 21x slower | 24x slower | 2.1x slower | 19x slower | 11x slower | 19x slower | 14x slower | 6x slower | 7x slower | 21x slower | ||||

buble | 1.5x slower | 1.8x faster | 9x slower | 8x slower | 1.5x slower | 8x slower | 8x slower | 9x slower | 5x slower | 1.6x slower | 2.4x slower | |||||

traceur | 3.0x slower | 1.8x faster | 10x slower | 210x slower | 1.5x slower | 8x slower | 7x slower | 8x slower | 5x slower | 1.7x slower | 2.2x slower | Error | ||||

typescript | 1.6x slower | 1.8x faster | 8x slower | 7x slower | 1.6x slower | 8x slower | 7x slower | 8x slower | 5x slower | 1.5x slower | 2.2x slower | Error | ||||

es6 | 1.9x slower | 1.8x faster | 8x slower | 8x slower | 1.6x slower | 8x slower | 7x slower | 7x slower | 6x slower | 7x slower | 8x slower | 5x slower | 1.6x slower | 2.3x slower | Error | |

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

babel-loose | 3x slower | 2.7x slower | 10x slower | 9x slower | 2.7x slower | 11x slower | 3x slower | 182x slower | 222x slower | 26x slower | 5x slower | 4x slower | ||||

babel-runtime | 3x slower | 2.5x slower | 10x slower | 9x slower | 3x slower | 12x slower | 3x slower | 180x slower | 223x slower | 24x slower | 4x slower | 5x slower | ||||

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

traceur | 2.1x slower | 1.9x slower | 2.2x slower | 1.9x slower | 1.9x slower | 2.5x slower | 1.6x slower | 52x slower | 56x slower | 9x slower | 1.3x faster | Error | ||||

typescript | 2.1x slower | 1.8x slower | 2.3x slower | 1.8x slower | 1.9x slower | 2.5x slower | 1.8x slower | 54x slower | 56x slower | 9x slower | 1.3x faster | Error | ||||

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

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

nodesource-array-includes tests | es6 | 4x slower | 4x slower | 2.3x slower | 2.0x slower | 1.8x slower | 1.8x slower | |||||||||

nodesource-default-params tests | es6 | Identical | Identical | Identical | Identical | Identical | ||||||||||

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

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

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

buble | 4x slower | 4x slower | 3x slower | 3x slower | 1.3x slower | 4x slower | 2.7x slower | 1.4x slower | 1.5x slower | 1.6x faster | 4x slower | |||||

traceur | 5x slower | 4x slower | 4x slower | 16x slower | 1.4x slower | 4x slower | 2.5x slower | 1.4x slower | 1.5x slower | 1.6x faster | 3x slower | Error | ||||

typescript | 5x slower | 4x slower | 3x slower | 2.9x slower | 1.4x slower | 4x slower | 2.6x slower | 1.4x slower | 1.6x slower | 1.7x faster | 3x slower | 2.7x slower | ||||

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

object-literal-ext tests | babel | 5x slower | 7x slower | 3x slower | 2.2x slower | 5x slower | 5x slower | 2.4x slower | 3x slower | 3x slower | 1.6x slower | 1.4x faster | Error | |||

babel-loose | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.6x faster | Identical | ||||

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

traceur | 96x slower | 119x slower | 25x slower | 40x slower | 37x slower | 26x slower | 15x slower | 25x slower | 24x slower | 4x slower | 3x slower | Error | ||||

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

es6 | 17x slower | 18x slower | 8x slower | 5x slower | 14x slower | 8x slower | 6x slower | 8x slower | 5x slower | 8x slower | 13x slower | 13x slower | Identical | 1.8x faster | 2.5x slower | |

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

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

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

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

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

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

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

regex-u tests | babel | 2.0x slower | 1.8x slower | 1.6x slower | 1.7x slower | 1.8x slower | 1.5x slower | 1.4x slower | 6x slower | 1.4x slower | 7x slower | 4x slower | Error | |||

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

typescript | Incorrect | Incorrect | 1.4x slower | 1.5x slower | 1.5x slower | 1.7x faster | 3x slower | 1.4x slower | 1.3x slower | |||||||

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

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

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

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

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

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

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

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

traceur | 5x slower | 5x slower | 10x slower | 13x slower | 5x slower | 10x slower | 5x slower | 4x slower | 4x slower | 21x slower | 28x slower | Error | ||||

typescript | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Error | ||||

es6 | 9x slower | 9x slower | 22x slower | 18x slower | 10x slower | 23x slower | 19x slower | 13x slower | 1.3x slower | 1.5x slower | 9x slower | 6x slower | 1.5x slower | 5x slower | Error | |

spread-generator tests | babel | 6x slower | 5x slower | 19x slower | 16x slower | 8x slower | 17x slower | 30x slower | 5x slower | 5x slower | 90x slower | 13x slower | Error | |||

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

babel-runtime | 5x slower | 5x slower | 28x slower | 19x slower | 7x slower | 24x slower | 29x slower | 6x slower | 5x slower | 36x slower | 13x slower | Error | ||||

traceur | 18x slower | 16x slower | 24x slower | 34x slower | 32x slower | 20x slower | 20x slower | 32x slower | 37x slower | 43x slower | 10x slower | Error | ||||

es6 | 2.6x slower | 2.8x slower | 8x slower | 7x slower | 3.0x slower | 8x slower | 6x slower | 10x slower | 4x slower | 4x slower | 8x slower | 7x slower | 10x slower | Error | ||

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

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

traceur | 81x slower | 2.5x slower | 10x slower | 7x slower | 2.5x slower | 7x slower | 4x slower | 3x slower | 2.9x slower | 25x slower | 8x slower | Error | ||||

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

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

super tests | babel | 15x slower | 15x slower | 11x slower | 13x slower | 18x slower | 12x slower | 9x slower | 24x slower | 25x slower | 22x slower | 21x slower | Error | |||

babel-loose | 1.7x slower | 1.6x slower | 2.7x slower | 8x slower | 1.4x slower | 2.8x slower | 1.6x slower | 4x slower | 4x slower | 7x slower | 1.8x slower | Error | ||||

babel-runtime | 15x slower | 14x slower | 11x slower | 13x slower | 17x slower | 12x slower | 8x slower | 24x slower | 25x slower | 26x slower | 21x slower | Error | ||||

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

traceur | 12x slower | 12x slower | 7x slower | 6x slower | 15x slower | 9x slower | 4x slower | 20x slower | 21x slower | 22x slower | 22x slower | Error | ||||

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

es6 | 14x slower | 11x slower | 3x slower | 2.6x slower | 6x slower | 4x slower | 2.8x slower | 4x slower | 3x slower | 1.6x slower | 47x slower | 53x slower | 2.9x slower | 7x slower | Error | |

template string tests | babel | Identical | 1.3x faster | Identical | 1.3x faster | Identical | Identical | Identical | Identical | Identical | 1.9x faster | Identical | Error | |||

buble | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 1.3x faster | Identical | |||||

traceur | Identical | Identical | Identical | 1.3x faster | Identical | Identical | Identical | Identical | Identical | 1.8x faster | Identical | Error | ||||

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

es6 | 1.8x slower | 1.6x slower | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | Identical | 2.5x faster | Identical | Error | |

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

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

babel-runtime | 1.3x slower | Identical | 1.4x slower | Identical | 1.4x slower | 1.4x slower | 1.3x slower | 26x slower | 27x slower | 1.4x slower | 2.0x slower | Error | ||||

traceur | 6x slower | 5x slower | 9x slower | 7x slower | 19x slower | 10x slower | 8x slower | 146x slower | 134x slower | 12x slower | 7x slower | Error | ||||

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

es6 | 3x slower | 2.7x slower | 3x slower | 2.4x slower | 3x slower | 3x slower | 2.4x slower | 4x slower | 2.9x slower | 2.8x slower | 26x slower | 27x slower | 1.3x slower | 2.3x slower | Error |

Run on 1/18/2017 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.