::-------------------------------------------------------------------------------------------------------
:: Copyright (C) Microsoft. All rights reserved.
:: Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
::-------------------------------------------------------------------------------------------------------

:: Regenerate all bytecode.
:: ch.exe is used to generate Intl bytecodes.
:: ch.exe (NoJIT variety) is used to generate NoJIT Intl bytecodes.
:: Each set of bytecode requires an x86_debug and x64_debug binary.
::
:: Thus we need to build the following:
:: [Core]   ch.exe        x64_debug
:: [Core]   ch.exe        x86_debug
:: [Core]   ch.exe        x64_debug (NoJIT)
:: [Core]   ch.exe        x86_debug (NoJIT)

setlocal
pushd %~dp0

:: ch.exe        x64_debug
:: ch.exe        x86_debug
call jenkins\buildone.cmd x64 debug
if %errorlevel% neq 0 (
  echo There was a build error for x64 debug. Stopping bytecode generation.
  exit /b 1
)
call jenkins\buildone.cmd x86 debug
if %errorlevel% neq 0 (
  echo There was a build error for x86 debug. Stopping bytecode generation.
  exit /b 1
)

pushd lib\Runtime\Library\InJavascript
call GenByteCode.cmd
if %errorlevel% neq 0 (
  echo There was an error when regenerating bytecode header.
  exit /b 1
)
popd

pushd lib\Runtime\Library\JsBuiltIn
call GenByteCode.cmd
if %errorlevel% neq 0 (
  echo There was an error when regenerating bytecode header.
  exit /b 1
)
popd

:: ch.exe        x64_debug (NoJIT)
:: ch.exe        x86_debug (NoJIT)
call jenkins\buildone.cmd x64 debug "/p:BuildJIT=false"
if %errorlevel% neq 0 (
  echo There was a build error for x64 debug NoJIT. Stopping bytecode generation.
  exit /b 1
)

call jenkins\buildone.cmd x86 debug "/p:BuildJIT=false"
if %errorlevel% neq 0 (
  echo There was a build error for x86 debug NoJIT. Stopping bytecode generation.
  exit /b 1
)

:: Generate Intl NoJIT Bytecodes using ch.exe (NoJIT)
pushd lib\Runtime\Library\InJavascript
call GenByteCode.cmd -nojit
if %errorlevel% neq 0 (
  echo There was an error when regenerating bytecode header for NoJIT.
  exit /b 1
)
popd

:: Generate BuiltIn NoJIT Bytecodes using ch.exe (NoJIT)
pushd lib\Runtime\Library\JsBuiltIn
call GenByteCode.cmd -nojit
if %errorlevel% neq 0 (
  echo There was an error when regenerating bytecode header for NoJIT.
  exit /b 1
)
popd

popd

endlocal
