blob: aa1e86345603ab54415e113e173e6ac9c329d922 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
function AsmModuleSwitch() {
"use asm";
function fib(x) {
// we multiply all the cases by 100 so that the
// switch is sparse and doesn't generate a jump table
x = x|0;
switch(x|0) {
case 000: return 1;
case 100: return 1;
case 200: return 2;
case 300: return 3;
case 400: return 5;
case 500: return 8;
case 600: return 13;
case 700: return 21;
case 800: return 34;
case 900: return 55;
}
return -1;
}
return {
fib: fib
};
}
var asmModuleSwitch = AsmModuleSwitch();
WScript.Echo(asmModuleSwitch.fib(000));
WScript.Echo(asmModuleSwitch.fib(100));
WScript.Echo(asmModuleSwitch.fib(200));
WScript.Echo(asmModuleSwitch.fib(300));
WScript.Echo(asmModuleSwitch.fib(400));
WScript.Echo(asmModuleSwitch.fib(500));
WScript.Echo(asmModuleSwitch.fib(600));