build/pgo/js-input/math-cordic.html

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 <!DOCTYPE html>
     2 <head>
     3 <!--
     4  Copyright (C) 2007 Apple Inc.  All rights reserved.
     6  Redistribution and use in source and binary forms, with or without
     7  modification, are permitted provided that the following conditions
     8  are met:
     9  1. Redistributions of source code must retain the above copyright
    10     notice, this list of conditions and the following disclaimer.
    11  2. Redistributions in binary form must reproduce the above copyright
    12     notice, this list of conditions and the following disclaimer in the
    13     documentation and/or other materials provided with the distribution.
    15  THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
    16  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    17  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    18  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
    19  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    20  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    21  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    22  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
    23  OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    24  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    25  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    26 -->
    28 <title>SunSpider math-cordic</title>
    30 </head>
    32 <body>
    33 <h3>math-cordic</h3>
    34 <div id="console">
    35 </div>
    37 <script>
    39 var _sunSpiderStartDate = new Date();
    41 /*
    42  * Copyright (C) Rich Moore.  All rights reserved.
    43  *
    44  * Redistribution and use in source and binary forms, with or without
    45  * modification, are permitted provided that the following conditions
    46  * are met:
    47  * 1. Redistributions of source code must retain the above copyright
    48  *    notice, this list of conditions and the following disclaimer.
    49  * 2. Redistributions in binary form must reproduce the above copyright
    50  *    notice, this list of conditions and the following disclaimer in the
    51  *    documentation and/or other materials provided with the distribution.
    52  *
    53  * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY
    54  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    55  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    56  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
    57  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    58  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    59  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    60  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
    61  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    62  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    63  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    64  */
    66 /////. Start CORDIC
    68 var AG_CONST = 0.6072529350;
    70 function FIXED(X)
    71 {
    72   return X * 65536.0;
    73 }
    75 function FLOAT(X)
    76 {
    77   return X / 65536.0;
    78 }
    80 function DEG2RAD(X)
    81 {
    82   return 0.017453 * (X);
    83 }
    85 var Angles = [
    86   FIXED(45.0), FIXED(26.565), FIXED(14.0362), FIXED(7.12502),
    87   FIXED(3.57633), FIXED(1.78991), FIXED(0.895174), FIXED(0.447614),
    88   FIXED(0.223811), FIXED(0.111906), FIXED(0.055953),
    89   FIXED(0.027977) 
    90               ];
    93 function cordicsincos() {
    94     var X;
    95     var Y;
    96     var TargetAngle;
    97     var CurrAngle;
    98     var Step;
   100     X = FIXED(AG_CONST);         /* AG_CONST * cos(0) */
   101     Y = 0;                       /* AG_CONST * sin(0) */
   103     TargetAngle = FIXED(28.027);
   104     CurrAngle = 0;
   105     for (Step = 0; Step < 12; Step++) {
   106         var NewX;
   107         if (TargetAngle > CurrAngle) {
   108             NewX = X - (Y >> Step);
   109             Y = (X >> Step) + Y;
   110             X = NewX;
   111             CurrAngle += Angles[Step];
   112         } else {
   113             NewX = X + (Y >> Step);
   114             Y = -(X >> Step) + Y;
   115             X = NewX;
   116             CurrAngle -= Angles[Step];
   117         }
   118     }
   119 }
   121 ///// End CORDIC
   123 function cordic( runs ) {
   124   var start = new Date();
   126   for ( var i = 0 ; i < runs ; i++ ) {
   127       cordicsincos();
   128   }
   130   var end = new Date();
   132   return end.getTime() - start.getTime();
   133 }
   135 cordic(25000);
   138 var _sunSpiderInterval = new Date() - _sunSpiderStartDate;
   140 document.getElementById("console").innerHTML = _sunSpiderInterval;
   141 </script>
   144 </body>
   145 </html>

mercurial