<!DOCTYPE html>
<!-- Copyright 2013 the V8 project authors. Scroll to the end for full license -->
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" value="IE=edge"/>
<meta charset="utf-8"/>
<title>Octane 2.0 JavaScript Benchmark</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta name="description"
  content="Octane 2.0 JavaScript Benchmark - the Javascript benchmark for the modern web">
<meta name="author" content="Octane Team Google">
<!-- twitter bootstrap code -->
<script src="js/jquery.js"></script>
<script src="js/bootstrap-transition.js"></script>
<script src="js/bootstrap-collapse.js"></script>
<!-- Octane benchmark code -->
<script type="text/javascript" src="base.js"></script>
<script type="text/javascript" src="richards.js"></script>
<script type="text/javascript" src="deltablue.js"></script>
<script type="text/javascript" src="crypto.js"></script>
<script type="text/javascript" src="raytrace.js"></script>
<script type="text/javascript" src="earley-boyer.js"></script>
<script type="text/javascript" src="regexp.js"></script>
<script type="text/javascript" src="splay.js"></script>
<script type="text/javascript" src="navier-stokes.js"></script>
<script type="text/javascript" src="pdfjs.js"></script>
<script type="text/javascript" src="mandreel.js"></script>
<script type="text/javascript" src="gbemu-part1.js"></script>
<script type="text/javascript" src="gbemu-part2.js"></script>
<script type="text/javascript" src="code-load.js"></script>
<script type="text/javascript" src="box2d.js"></script>
<script type="text/javascript" src="zlib.js"></script>
<script type="text/javascript" src="zlib-data.js"></script>
<script type="text/javascript" src="typescript.js"></script>
<script type="text/javascript" src="typescript-input.js"></script>
<script type="text/javascript" src="typescript-compiler.js"></script>

<script type="text/javascript">
  var completed = 0;
  var benchmarks = BenchmarkSuite.CountBenchmarks();
  var success = true;
  var latencyBenchmarks = ["Splay", "Mandreel"];
  var skipBenchmarks =
          typeof skipBenchmarks === "undefined" ? [] : skipBenchmarks;

  function ShowBox(name) {
    var box = document.getElementById("Box-" + name);
    box.style.visibility = 'visible';
    var bar = document.getElementById("progress-bar").style.width = ""
        + ((++completed) / benchmarks) * 100 + "%";
    latencyBenchmarks.forEach(function(entry) {
      if (name.valueOf() === entry.valueOf()) {
        var box1 = document.getElementById("Box-" + name + "Latency");
        box1.style.visibility = 'visible';
      }
    });
  }

  function AddResult(name, result) {
    console.log(name + ': ' + result);
    var box = document.getElementById("Result-" + name);
    box.innerHTML = result;
  }

  function AddError(name, error) {
    console.log(name + ": " + error.message);
    if (error == "TypedArrayUnsupported") {
      AddResult(name, '<b>Unsupported<\/b>');
    } else if (error == "PerformanceNowUnsupported") {
      AddResult(name, '<b>Timer error<\/b>');
    } else {
      AddResult(name, '<b>Error</b>');
    }
    success = false;
  }

  function AddScore(score) {
    var status = document.getElementById("main-banner");
    if (success) {
      status.innerHTML = "Octane Score: " + score;
    } else {
      status.innerHTML = "Octane Score (incomplete): " + score;
    }
    document.getElementById("progress-bar-container").style.visibility = 'hidden';
    document.getElementById("bottom-text").style.visibility = 'visible';
    document.getElementById("inside-anchor").removeChild(document.getElementById("bar-appendix"));
    document.getElementById("alertbox").style.visibility = 'hidden';
  }

  function Run() {
    document.getElementById("main-banner").innerHTML = "Running Octane...";
    // append the progress bar elements..
    document.getElementById("bar-appendix").innerHTML = "<br/><div class=\"progress progress-striped\" id=\"progress-bar-container\" style=\"visibility:hidden\"><div class=\"bar\"style=\"width: 0%;\" id=\"progress-bar\"></div></div>";
    var anchor = document.getElementById("run-octane");
    var parent = document.getElementById("main-container");
    parent.appendChild(document.getElementById("inside-anchor"));
    parent.removeChild(anchor);

    document.getElementById("startup-text").innerHTML="";

    document.getElementById("progress-bar-container").style.visibility = 'visible';

    BenchmarkSuite.RunSuites({
      NotifyStart : ShowBox,
      NotifyError : AddError,
      NotifyResult : AddResult,
      NotifyScore : AddScore
    },
    skipBenchmarks);
  }

  function CheckCompatibility() {
    // If no Typed Arrays support, show warning label.
    var hasTypedArrays = typeof Uint8Array != "undefined"
        && typeof Float64Array != "undefined"
        && typeof (new Uint8Array(0)).subarray != "undefined";

    if (!hasTypedArrays) {
      console.log("Typed Arrays not supported");
      document.getElementById("alertbox").style.display="block";
    }
    if (window.document.URL.indexOf('skip_zlib=1') >= 0)
      skipBenchmarks.push("zlib");
    if (window.document.URL.indexOf('auto=1') >= 0)
      Run();
  }

  function Load() {
    setTimeout(CheckCompatibility, 200);
  }
</script>
<!-- end Octane benchmark code -->

<!-- Le styles -->
<link href="css/bootstrap.css" rel="stylesheet">
<style>
body {
  padding-top: 60px;
  /* 60px to make the container go all the way to the bottom of the topbar */
}
</style>
<link href="css/bootstrap-responsive.css" rel="stylesheet">

<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

<!-- Le fav and touch icons -->
<!-- TODO update icons -->
<link rel="shortcut icon" href="ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144"
  href="ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114"
  href="ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72"
  href="ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed"
  href="ico/apple-touch-icon-57-precomposed.png">
</head>

<body onLoad="Load()">

  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">

      <div class="container">

        <a class="brand" href="#">Octane 2.0</a>
        <!--/.nav-collapse -->
      </div>

    </div>
  </div>

  <div class="container">
    <div class="alert" style="display:none" id="alertbox">
       <strong>Warning</strong> This JavaScript engine does not support Typed Arrays. You might want to run the <a href="http://v8.googlecode.com/svn/data/benchmarks/v7/run.html">V8 benchmark v7</a> instead.
    </div>
    <div id="main-container">
    <a id="run-octane" href="javascript:Run()">
      <div class="hero-unit" id="inside-anchor">
        <h1 align="center" id="main-banner">Start Octane 2.0</h1>
        <div id="bar-appendix"></div>
      </div>
    </a>
    </div>

    <div id="startup-text" style="color:white;" align="center">
      Welcome to Octane 2.0, a JavaScript benchmark for the modern web. For more accurate results, <a href="http://developers.google.com/octane/benchmark">start the browser anew</a> before running the test. 
    <br/><br/>
      <a href="http://developers.google.com/octane/benchmark#whatsnew" target="_blank">What's new in Octane 2.0</a> - <a href="http://developers.google.com/octane/">Documentation</a> - <a href="http://octane-benchmark.googlecode.com/svn/tags/v1/index.html">Run Octane v1</a>
    </div>


    <div class="header"></div>

    <div class="content">
      <div class="row">
        <div class="span3">
          <div class="box" id="Box-Richards" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#richards"
              target="_blank" style="float:left; color:#994520">Richards</a>
   
            <span class="p-result" id="Result-Richards" style="float:right">...</span>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Core
              language features</span>
          </div>

        </div>
        <div class="span3">
          <div class="box" id="Box-DeltaBlue" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#deltablue"
              target="_blank" style="float:left; color:#994520">Deltablue</a>
           
            <p class="p-result" id="Result-DeltaBlue" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Core
              language features</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-Crypto" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#crypto"
              target="_blank" style="float:left; color:#994520">Crypto</a>
           
            <p class="p-result" id="Result-Crypto" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Bit &
              Math operations</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-RayTrace" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#raytrace"
              target="_blank" style="float:left; color:#994520">Raytrace</a>
   
            <p class="p-result" id="Result-RayTrace" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Core
              language features</span>
          </div>
        </div>

      </div>
      <!-- /row -->

      <div class="row">

        <div class="span3">
          <div class="box" id="Box-EarleyBoyer" style="visibility: hidden;">
            <a
              href="http://developers.google.com/octane/benchmark#earleyboyer"
              target="_blank" style="float:left; color:#994520">EarleyBoyer</a>
           
            <p class="p-result" id="Result-EarleyBoyer" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Memory
              & GC</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-RegExp" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#regexp"
              target="_blank" style="float:left; color:#994520">Regexp</a>
           
            <p class="p-result" id="Result-RegExp" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Strings
              & arrays</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-Splay" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#splay"
              target="_blank" style="float:left; color:#994520">Splay</a>
           
            <p class="p-result" id="Result-Splay" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Memory
              & GC</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-SplayLatency" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#splaylatency"
              target="_blank" style="float:left; color:#994520">SplayLatency</a>

            <p class="p-result" id="Result-SplayLatency" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">GC latency
            </span>
          </div>
        </div>

      </div>
      <!-- /row -->

      <div class="row">
        <div class="span3">
          <div class="box" id="Box-NavierStokes" style="visibility: hidden;">
            <a
              href="http://developers.google.com/octane/benchmark#navierstokes"
              target="_blank" style="float:left; color:#994520">NavierStokes</a>

            <p class="p-result" id="Result-NavierStokes" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Strings
              & arrays</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-PdfJS" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#pdfjs"
              target="_blank" style="float:left; color:#994520">pdf.js</a>
           
            <p class="p-result" id="Result-PdfJS" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Strings
              & arrays</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-Mandreel" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#mandreel"
              target="_blank" style="float:left; color:#994520">Mandreel</a>
           
            <p class="p-result" id="Result-Mandreel" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Virtual
              machine</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-MandreelLatency" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#mandreellatency"
              target="_blank" style="float:left; color:#994520">MandreelLatency</a>

            <p class="p-result" id="Result-MandreelLatency" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Compiler latency
            </span>
          </div>
        </div>

      </div>
      <!-- /row -->

      <div class="row">
        <div class="span3">
          <div class="box" id="Box-Gameboy" style="visibility: hidden;">
            <a
              href="http://developers.google.com/octane/benchmark#gameboyemulator"
              target="_blank" style="float:left; color:#994520">GB Emulator</a>

            <p class="p-result" id="Result-Gameboy" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Virtual
              machine</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-CodeLoad" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#codeload"
              target="_blank" style="float:left; color:#994520">CodeLoad</a>

            <p class="p-result" id="Result-CodeLoad" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Loading
              & Parsing</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-Box2D" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#box2d"
              target="_blank" style="float:left; color:#994520">Box2DWeb</a>
           
            <p class="p-result" id="Result-Box2D" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Bit &
              Math operations</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-zlib" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#zlib"
              target="_blank" style="float:left; color:#994520">zlib</a>
           
            <p class="p-result" id="Result-zlib" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">asm.js</span>
          </div>
        </div>
        <div class="span3">
          <div class="box" id="Box-Typescript" style="visibility: hidden;">
            <a href="http://developers.google.com/octane/benchmark#typescript"
              target="_blank" style="float:left; color:#994520">Typescript</a>
           
            <p class="p-result" id="Result-Typescript" style="float:right">...</p>
            <span class="label-simple"
              style="position: absolute; bottom: 3px; left: 3px;">Virtual machine & GC
            </span>
          </div>
        </div>

      </div>
      <!-- /row -->

    </div>
    <!-- /content -->

    <div id="bottom-text" style="color:white; visibility:hidden" align="center">
      <br></br>
       The final score is the <a href="http://en.wikipedia.org/wiki/Geometric_mean#Properties">geometric mean</a> of the single scores. We suggest to restart the browser before repeating the test.
    </div>

  </div>
  <!-- /container -->

</body>
</html>

<!--
// Copyright 2013 the V8 project authors (http://code.google.com/p/v8/). 
// All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above
//       copyright notice, this list of conditions and the following
//       disclaimer in the documentation and/or other materials provided
//       with the distribution.
//     * Neither the name of Google Inc. nor the names of its
//       contributors may be used to endorse or promote products derived
//       from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->