| //------------------------------------------------------------------------------------------------------- | |
| // 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)); |