Sfoglia il codice sorgente

Minor change to avoid relative include path in source

Change synced from internal branch
Also includes:
- change some Assert to AnalysisAssert to provide prefast with more clues.
- Add UTF-8 BOM to some files
Curtis Man 10 anni fa
parent
commit
f29a3a81f2
54 ha cambiato i file con 120 aggiunte e 83 eliminazioni
  1. 1 1
      Build/Chakra.Core.sln
  2. 1 0
      bin/ChakraCore/ChakraCore.vcxproj
  3. 1 1
      bin/ch/ch.vcxproj
  4. 2 2
      bin/rl/rl.vcxproj
  5. 3 1
      lib/Backend/Chakra.Backend.vcxproj
  6. 1 1
      lib/Backend/Chakra.Backend.vcxproj.filters
  7. 2 1
      lib/Backend/Encoder.cpp
  8. 10 4
      lib/Backend/GlobOpt.cpp
  9. 1 1
      lib/Backend/GlobOpt.h
  10. 8 8
      lib/Backend/IRBuilder.cpp
  11. 10 2
      lib/Parser/Chakra.Parser.vcxproj
  12. 5 5
      lib/Parser/ParserPch.h
  13. 1 1
      lib/Parser/parse.cpp
  14. 1 0
      lib/Runtime/Base/Chakra.Runtime.Base.vcxproj
  15. 2 2
      lib/Runtime/Base/PropertyRecord.cpp
  16. 1 1
      lib/Runtime/Base/PropertyRecord.h
  17. 1 1
      lib/Runtime/Base/ScriptContext.h
  18. 1 1
      lib/Runtime/Base/ThreadContext.cpp
  19. 3 3
      lib/Runtime/ByteCode/ByteCodeEmitter.cpp
  20. 1 1
      lib/Runtime/ByteCode/ByteCodeWriter.cpp
  21. 1 1
      lib/Runtime/ByteCode/Chakra.Runtime.ByteCode.vcxproj
  22. 2 1
      lib/Runtime/Debug/Chakra.Runtime.Debug.vcxproj
  23. 1 1
      lib/Runtime/Debug/Chakra.Runtime.Debug.vcxproj.filters
  24. 1 1
      lib/Runtime/Language/AsmJSEncoder.cpp
  25. 3 1
      lib/Runtime/Language/Chakra.Runtime.Language.vcxproj
  26. 1 1
      lib/Runtime/Language/Chakra.Runtime.Language.vcxproj.filters
  27. 2 2
      lib/Runtime/Language/JavascriptMathOperators.h
  28. 1 0
      lib/Runtime/Language/JavascriptOperators.cpp
  29. 4 0
      lib/Runtime/Library/Chakra.Runtime.Library.vcxproj
  30. 2 2
      lib/Runtime/Library/ConcatString.cpp
  31. 2 2
      lib/Runtime/Library/EngineInterfaceObject.cpp
  32. 2 1
      lib/Runtime/Math/Chakra.Runtime.Math.vcxproj
  33. 3 2
      lib/Runtime/Types/Chakra.Runtime.Types.vcxproj
  34. 9 9
      lib/common/BackEndAPI.h
  35. 1 1
      lib/common/DataStructures/BigInt.cpp
  36. 1 1
      lib/common/DataStructures/BigInt.h
  37. 1 1
      lib/common/DataStructures/Chakra.Common.DataStructures.vcxproj
  38. 1 1
      lib/common/Exceptions/Chakra.Common.Exceptions.vcxproj
  39. 2 2
      lib/common/Exceptions/reporterror.h
  40. 1 1
      lib/common/Memory/Chakra.Common.Memory.vcxproj
  41. 1 1
      lib/common/Memory/Chakra.Common.Memory.vcxproj.filters
  42. 2 1
      lib/common/Memory/HeapBlockMap.cpp
  43. 5 0
      lib/common/Memory/RecyclerRootPtr.h
  44. 1 1
      lib/common/codex/Chakra.Common.Codex.vcxproj
  45. 1 1
      lib/common/common/Chakra.Common.Common.vcxproj
  46. 1 1
      lib/common/common/Chakra.Common.Common.vcxproj.filters
  47. 1 1
      lib/common/common/DateUtilities.h
  48. 1 1
      lib/common/common/NumberUtilities.cpp
  49. 3 3
      lib/common/common/NumberUtilities_strtod.cpp
  50. 1 1
      lib/common/core/Chakra.Common.Core.vcxproj
  51. 1 1
      lib/common/core/FaultInjection.cpp
  52. 1 1
      lib/common/util/Chakra.Common.Util.vcxproj
  53. 2 1
      lib/jsrt/Chakra.Jsrt.vcxproj
  54. 2 1
      lib/jsrt/core/Chakra.Jsrt.Core.vcxproj

+ 1 - 1
Build/Chakra.Core.sln

@@ -1,4 +1,4 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
+Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 14
 VisualStudioVersion = 14.0.23107.0
 MinimumVisualStudioVersion = 10.0.40219.1

+ 1 - 0
bin/ChakraCore/ChakraCore.vcxproj

@@ -25,6 +25,7 @@
         $(ChakraCoreRootDirectory)Lib\Common;
         $(ChakraCoreRootDirectory)Lib\Parser;
         $(ChakraCoreRootDirectory)Lib\Runtime;
+        $(ChakraCoreRootDirectory)Lib\Runtime\ByteCode;
         $(ChakraCoreRootDirectory)Lib\Jsrt;
         $(IntDir);
         %(AdditionalIncludeDirectories);

+ 1 - 1
bin/ch/ch.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />

+ 2 - 2
bin/rl/rl.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />
@@ -36,7 +36,7 @@
     <ClCompile Include="$(MSBuildThisFileDirectory)rlmp.cpp" />
     <ClCompile Include="$(MSBuildThisFileDirectory)rlrun.cpp" />
     <ClCompile Include="$(MSBuildThisFileDirectory)rlregr.cpp" />
-    <ClCompile Include="$(MSBuildThisFileDirectory)xmlreader.cpp" />
+    <ClCompile Include="$(MSBuildThisFileDirectory)xmlreader.cpp"  />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="rl.h" />

+ 3 - 1
lib/Backend/Chakra.Backend.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />
@@ -29,6 +29,8 @@
         $(MSBuildThisFileDirectory)\$(PlatformPathNameAlt);
         $(MSBuildThisFileDirectory)..\Common;
         $(MSBuildThisFileDirectory)..\Runtime;
+        $(MSBuildThisFileDirectory)..\Runtime\ByteCode;
+        $(MSBuildThisFileDirectory)..\Runtime\Math;
         $(MSBuildThisFileDirectory)..\Parser;
         %(AdditionalIncludeDirectories)
       </AdditionalIncludeDirectories>

+ 1 - 1
lib/Backend/Chakra.Backend.vcxproj.filters

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
     <ClCompile Include="$(MSBuildThisFileDirectory)AgenPeeps.cpp" />

+ 2 - 1
lib/Backend/Encoder.cpp

@@ -840,7 +840,7 @@ Encoder::ShortenBranchesAndLabelAlign(BYTE **codeStart, ptrdiff_t *codeSize)
             }
 
             src_size = to - from + 1;
-            Assert(dst_size >= src_size);
+            AnalysisAssert(dst_size >= src_size);
 
             memcpy_s(dst_p, dst_size, from, src_size);
             dst_p += src_size;
@@ -848,6 +848,7 @@ Encoder::ShortenBranchesAndLabelAlign(BYTE **codeStart, ptrdiff_t *codeSize)
 
             // fix the BR
             // write new opcode
+            AnalysisAssert(dst_p < tmpBuffer + newCodeSize);
             *dst_p = (*opcodeByte == 0xe9) ? (BYTE)0xeb : (BYTE)(*opcodeByte - 0x10);
             dst_p += 2; // 1 byte for opcode + 1 byte for imm8
             dst_size -= 2;

+ 10 - 4
lib/Backend/GlobOpt.cpp

@@ -6010,7 +6010,6 @@ GlobOpt::CopyProp(IR::Opnd *opnd, IR::Instr *instr, Value *val, IR::IndirOpnd *p
         return opnd;
     }
 
-    // SIMD_JS
     // Don't copy-prop operand of SIMD instr with ExtendedArg operands. Each instr should have its exclusive EA sequence.
     if (
             Js::IsSimd128Opcode(instr->m_opcode) && 
@@ -21023,9 +21022,9 @@ GlobOpt::InspectInstrForMemCopyCandidate(Loop* loop, IR::Instr* instr, MemCopyEm
 
 // The caller is responsible to free the memory allocated between inOrderEmitData[iEmitData -> end]
 bool
-GlobOpt::ValidateMemOpCandidates(Loop * loop, MemOpEmitData** inOrderEmitData, int& iEmitData)
+GlobOpt::ValidateMemOpCandidates(Loop * loop, _Out_writes_(iEmitData) MemOpEmitData** inOrderEmitData, int& iEmitData)
 {
-    Assert(iEmitData >= (int)loop->memOpInfo->candidates->Count());
+    AnalysisAssert(iEmitData == (int)loop->memOpInfo->candidates->Count());
     // We iterate over the second block of the loop only. MemOp Works only if the loop has exactly 2 blocks
     Assert(loop->blockList.HasTwo());
 
@@ -21104,10 +21103,16 @@ GlobOpt::ValidateMemOpCandidates(Loop * loop, MemOpEmitData** inOrderEmitData, i
         }
         if (candidateFound)
         {
-            Assert(iEmitData > 0);
+            AnalysisAssert(iEmitData > 0);
+            if (iEmitData == 0)
+            {
+                // Explicit for OACR
+                break;
+            }
             inOrderEmitData[--iEmitData] = emitData;
             candidate = nullptr;
             emitData = nullptr;
+
         }
     } NEXT_INSTR_BACKWARD_IN_BLOCK;
 
@@ -21173,3 +21178,4 @@ GlobOpt::ProcessMemOp()
         }
     } NEXT_LOOP_EDITING;
 }
+

+ 1 - 1
lib/Backend/GlobOpt.h

@@ -1443,7 +1443,7 @@ private:
     void                    ProcessMemOp();
     bool                    InspectInstrForMemSetCandidate(Loop* loop, IR::Instr* instr, struct MemSetEmitData* emitData, bool& errorInInstr);
     bool                    InspectInstrForMemCopyCandidate(Loop* loop, IR::Instr* instr, struct MemCopyEmitData* emitData, bool& errorInInstr);
-    bool                    ValidateMemOpCandidates(Loop * loop, struct MemOpEmitData** emitData, int& iEmitData);
+    bool                    ValidateMemOpCandidates(Loop * loop, _Out_writes_(iEmitData) struct MemOpEmitData** emitData, int& iEmitData);
     void                    HoistHeadSegmentForMemOp(IR::Instr *instr, IR::ArrayRegOpnd *arrayRegOpnd, IR::Instr *insertBeforeInstr);
     void                    EmitMemop(Loop * loop, LoopCount *loopCount, const struct MemOpEmitData* emitData);
     IR::Opnd*               GenerateInductionVariableChangeForMemOp(Loop *loop, byte unroll, IR::Instr *insertBeforeInstr = nullptr);

+ 8 - 8
lib/Backend/IRBuilder.cpp

@@ -585,7 +585,7 @@ IRBuilder::Build()
             }
             else
             {
-                Js::OpCode op = 
+                Js::OpCode op =
                     m_func->DoStackScopeSlots() ? Js::OpCode::NewStackScopeSlots : Js::OpCode::NewScopeSlots;
 
                 IR::Opnd * srcOpnd = IR::IntConstOpnd::New(
@@ -1483,7 +1483,7 @@ IRBuilder::BuildReg1(Js::OpCode newOpcode, uint32 offset, Js::RegSlot R0)
             Js::Throw::FatalInternalError();
         }
         srcOpnd = BuildSrcOpnd(m_func->GetJnFunction()->GetLocalClosureReg());
-        isNotInt = true;        
+        isNotInt = true;
         break;
 
     case Js::OpCode::LdLocalObj:
@@ -1696,7 +1696,7 @@ IRBuilder::BuildReg2(Js::OpCode newOpcode, uint32 offset, Js::RegSlot R0, Js::Re
     case Js::OpCode::LdLetHeapArguments:
     {
         IR::Opnd * opndFrameObj;
-        if (m_func->GetJnFunction()->HasScopeObject() && 
+        if (m_func->GetJnFunction()->HasScopeObject() &&
             src1Opnd->m_sym->m_instrDef &&
             src1Opnd->m_sym->m_instrDef->m_opcode == Js::OpCode::LdPropIds)
         {
@@ -1710,7 +1710,7 @@ IRBuilder::BuildReg2(Js::OpCode newOpcode, uint32 offset, Js::RegSlot R0, Js::Re
                 m_func->GetScriptContext()->GetLibrary()->GetNull(), IR::AddrOpndKindDynamicVar, m_func, true);
         }
         IR::RegOpnd * dstOpnd = BuildDstOpnd(R0);
-        IR::Instr * instr = IR::Instr::New(newOpcode, dstOpnd, opndFrameObj, src1Opnd, m_func);  
+        IR::Instr * instr = IR::Instr::New(newOpcode, dstOpnd, opndFrameObj, src1Opnd, m_func);
         this->AddInstr(instr, offset);
         StackSym * dstSym = dstOpnd->m_sym;
         if (dstSym->m_isSingleDef)
@@ -3444,8 +3444,8 @@ IRBuilder::BuildElementSlotI1(Js::OpCode newOpcode, uint32 offset, Js::RegSlot r
                 instr = IR::Instr::New(newOpcode, regOpnd, fieldOpnd, m_func);
             }
             this->AddInstr(instr, offset);
-            break;      
-            
+            break;
+
         case Js::OpCode::StLocalSlot:
         case Js::OpCode::StLocalSlotChkUndecl:
 
@@ -4569,7 +4569,7 @@ IRBuilder::BuildElementU(Js::OpCode newOpcode, uint32 offset, Js::RegSlot instan
             regOpnd = BuildDstOpnd(instance);
             instr = IR::Instr::New(newOpcode, regOpnd, fieldSymOpnd, m_func);
             break;
-            
+
         default:
         {
             fieldSymOpnd = this->BuildFieldOpnd(newOpcode, instance, propertyId, propertyIdIndex, PropertyKindData);
@@ -4662,7 +4662,7 @@ IRBuilder::BuildAuxNoReg(Js::OpCode newOpcode, uint32 offset)
             Fatal();
             break;
         }
-    }    
+    }
 }
 
 void

+ 10 - 2
lib/Parser/Chakra.Parser.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />
@@ -23,6 +23,9 @@
       <AdditionalIncludeDirectories>
         $(MSBuildThisFileDirectory)..\Common;
         $(MSBuildThisFileDirectory)..\Backend;
+        $(MSBuildThisFileDirectory)..\Runtime;
+        $(MSBuildThisFileDirectory)..\Runtime\ByteCode;
+        $(ChakraManifestsIncludeDirectory);
         %(AdditionalIncludeDirectories)
       </AdditionalIncludeDirectories>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -118,7 +121,12 @@
       <PreprocessToFile>true</PreprocessToFile>
       <PreprocessSuppressLineNumbers>true</PreprocessSuppressLineNumbers>
       <ObjectFileName>$(IntDir)jserr.rc2</ObjectFileName>
-      <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory);$(MSBuildThisFileDirectory)..\Common</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>
+      $(MSBuildThisFileDirectory);
+      $(MSBuildThisFileDirectory)..\Common;
+      $(MSBuildThisFileDirectory)..\runtime;
+      $(MSBuildThisFileDirectory)..\runtime\library;
+      </AdditionalIncludeDirectories>
       <LibCompiled>false</LibCompiled>
       <ForcedIncludeFiles>
       </ForcedIncludeFiles>

+ 5 - 5
lib/Parser/ParserPch.h

@@ -21,8 +21,8 @@
 #include "RegexPattern.h"
 
 // Runtime includes
-#include "..\Runtime\runtime.h"
-#include "..\Runtime\ByteCode\Symbol.h"
-#include "..\Runtime\ByteCode\Scope.h"
-#include "..\Runtime\ByteCode\FuncInfo.h"
-#include "..\Runtime\ByteCode\ScopeInfo.h"
+#include "runtime.h"
+#include "ByteCode\Symbol.h"
+#include "ByteCode\Scope.h"
+#include "ByteCode\FuncInfo.h"
+#include "ByteCode\ScopeInfo.h"

+ 1 - 1
lib/Parser/parse.cpp

@@ -11160,7 +11160,7 @@ void Parser::ParseDestructuredLiteralWithScopeSave(tokens declarationType,
     DestructuringInitializerContext initializerContext/* = DIC_None*/,
     bool allowIn /*= true*/)
 {
-    // We are going to parse the text again to validate the current grammar as Destructuring. Saving some scopes and 
+    // We are going to parse the text again to validate the current grammar as Destructuring. Saving some scopes and
     // AST related information before the validation parsing and later they will be restored.
 
     ParseNodePtr pnodeFncSave = m_currentNodeFunc;

+ 1 - 0
lib/Runtime/Base/Chakra.Runtime.Base.vcxproj

@@ -24,6 +24,7 @@
         $(MSBuildThisFileDirectory)..;
         $(MSBuildThisFileDirectory)..\..\Common;
         $(MSBuildThisFileDirectory)..\..\Parser;
+        $(MSBuildThisFileDirectory)..\..\Runtime\ByteCode;
         $(MSBuildThisFileDirectory)..\..\Backend;
         %(AdditionalIncludeDirectories)
       </AdditionalIncludeDirectories>

+ 2 - 2
lib/Runtime/Base/PropertyRecord.cpp

@@ -60,7 +60,7 @@ namespace Js
     // Initialize all Internal property records
 #define INTERNALPROPERTY(name) \
     const BuiltInPropertyRecord<1> InternalPropertyRecords::name = { PropertyRecord((PropertyId)InternalPropertyIds::name, (uint)InternalPropertyIds::name, false, 0, false), L"" };
-#include "..\InternalPropertyList.h"
+#include "InternalPropertyList.h"
 
     const PropertyRecord* InternalPropertyRecords::GetInternalPropertyName(PropertyId propertyId)
     {
@@ -71,7 +71,7 @@ namespace Js
 #define INTERNALPROPERTY(name) \
             case InternalPropertyIds::name: \
                 return InternalPropertyRecords::name;
-#include "..\InternalPropertyList.h"
+#include "InternalPropertyList.h"
         }
 
         Throw::FatalInternalError();

+ 1 - 1
lib/Runtime/Base/PropertyRecord.h

@@ -125,7 +125,7 @@ namespace Js
     {
     public:
 #define INTERNALPROPERTY(n) const static BuiltInPropertyRecord<1> n;
-#include "..\InternalPropertyList.h"
+#include "InternalPropertyList.h"
 
         static const PropertyRecord* GetInternalPropertyName(PropertyId propertyId);
     };

+ 1 - 1
lib/Runtime/Base/ScriptContext.h

@@ -565,7 +565,7 @@ public:
         uint byteCodeDataSize;
         uint byteCodeAuxiliaryDataSize;
         uint byteCodeAuxiliaryContextDataSize;
-        uint byteCodeHistogram[OpCode::ByteCodeLast];
+        uint byteCodeHistogram[static_cast<uint>(OpCode::ByteCodeLast)];
         uint32 forinCache;
         uint32 forinNoCache;
 #endif

+ 1 - 1
lib/Runtime/Base/ThreadContext.cpp

@@ -56,7 +56,7 @@ void (*InitializeAdditionalProperties)(ThreadContext *threadContext) = DefaultIn
 // To make sure the marker function doesn't get inlined, optimized away, or merged with other functions we disable optimization.
 // If this method ends up causing a perf problem in the future, we should replace it with asm versions which should be lighter.
 #pragma optimize("g", off)
-extern "C" void* MarkerForExternalDebugStep()
+__declspec(noinline) extern "C" void* MarkerForExternalDebugStep()
 {
     // We need to return something here to prevent this function from being merged with other empty functions by the linker.
     static int __dummy;

+ 3 - 3
lib/Runtime/ByteCode/ByteCodeEmitter.cpp

@@ -2450,7 +2450,7 @@ void ByteCodeGenerator::EmitInternalScopeObjInit(FuncInfo *funcInfo, Scope *scop
     {
         uint cacheId = funcInfo->FindOrAddInlineCacheId(scopeLocation, propertyId, false, true);
         this->m_writer.PatchableProperty(opcode, valueLocation, scopeLocation, cacheId);
-    }   
+    }
 }
 
 void ByteCodeGenerator::GetEnclosingNonLambdaScope(FuncInfo *funcInfo, Scope * &scope, Js::PropertyId &envIndex)
@@ -5072,7 +5072,7 @@ void ByteCodeGenerator::EmitTypeOfFld(FuncInfo * funcInfo, Js::PropertyId proper
         cacheId = funcInfo->FindOrAddInlineCacheId(instance, propertyId, false, false);
         this->Writer()->ElementP(ldFldOp, tmpReg, cacheId);
         break;
-        
+
     default:
         cacheId = funcInfo->FindOrAddInlineCacheId(instance, propertyId, false, false);
         this->Writer()->PatchableProperty(ldFldOp, tmpReg, instance, cacheId);
@@ -10497,7 +10497,7 @@ void Emit(ParseNode *pnode, ByteCodeGenerator *byteCodeGenerator, FuncInfo *func
                 Assert(scope->GetMustInstantiate());
                 if (scope->GetIsObject())
                 {
-                    Js::OpCode op = (sym->GetDecl()->nop == knopLetDecl) ? Js::OpCode::InitUndeclLetFld : 
+                    Js::OpCode op = (sym->GetDecl()->nop == knopLetDecl) ? Js::OpCode::InitUndeclLetFld :
                         byteCodeGenerator->GetInitFldOp(scope, scope->GetLocation(), funcInfo, false);
 
                     Js::PropertyId propertyId = sym->EnsurePosition(byteCodeGenerator);

+ 1 - 1
lib/Runtime/ByteCode/ByteCodeWriter.cpp

@@ -1915,7 +1915,7 @@ StoreCommon:
             {
                 OpCodeUtil::ConvertNonCallOpToProfiled(op);
             }
-            break;          
+            break;
 
         case OpCode::LdLocalMethodFld:
             if (registerCacheIdForCall)

+ 1 - 1
lib/Runtime/ByteCode/Chakra.Runtime.ByteCode.vcxproj

@@ -52,7 +52,7 @@
     <ClCompile Include="$(MSBuildThisFileDirectory)RuntimeByteCodePch.cpp">
       <PrecompiledHeader>Create</PrecompiledHeader>
     </ClCompile>
-    <ClCompile Include="BackEndOpcodeAttr.cpp" />
+    <ClCompile Include="$(MSBuildThisFileDirectory)BackEndOpcodeAttr.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="AsmJSByteCodeDumper.h" />

+ 2 - 1
lib/Runtime/Debug/Chakra.Runtime.Debug.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />
@@ -28,6 +28,7 @@
         $(MSBuildThisFileDirectory)..;
         $(MSBuildThisFileDirectory)..\..\Common;
         $(MSBuildThisFileDirectory)..\..\Parser;
+        $(MSBuildThisFileDirectory)..\..\Runtime\ByteCode;
         $(MSBuildThisFileDirectory)..\..\Backend;
         $(MSBuildThisFileDirectory)..\..\Language;
         %(AdditionalIncludeDirectories)

+ 1 - 1
lib/Runtime/Debug/Chakra.Runtime.Debug.vcxproj.filters

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
     <ClCompile Include="$(MsBuildThisFileDirectory)DebugContext.cpp" />

+ 1 - 1
lib/Runtime/Language/AsmJSEncoder.cpp

@@ -6,7 +6,7 @@
 
 #ifndef TEMP_DISABLE_ASMJS
 
-#include "..\Backend\CodeGenAllocators.h"
+#include "CodeGenAllocators.h"
 #ifdef DBG_DUMP
 #include "ByteCode\ByteCodeDumper.h"
 #include "ByteCode\AsmJSByteCodeDumper.h"

+ 3 - 1
lib/Runtime/Language/Chakra.Runtime.Language.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />
@@ -29,6 +29,8 @@
         $(MSBuildThisFileDirectory)..\..\Common;
         $(MSBuildThisFileDirectory)..\..\Parser;
         $(MSBuildThisFileDirectory)..\..\Backend;
+        $(MSBuildThisFileDirectory)..\..\Runtime\Math;
+        $(MSBuildThisFileDirectory)..\..\Runtime\ByteCode;
         %(AdditionalIncludeDirectories)
       </AdditionalIncludeDirectories>
       <PrecompiledHeader>Use</PrecompiledHeader>

+ 1 - 1
lib/Runtime/Language/Chakra.Runtime.Language.vcxproj.filters

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
     <ClCompile Include="$(MsBuildThisFileDirectory)..\StdAfx.cpp" />

+ 2 - 2
lib/Runtime/Language/JavascriptMathOperators.h

@@ -4,6 +4,6 @@
 //-------------------------------------------------------------------------------------------------------
 #pragma once
 
-#include "..\Math\JavascriptMath.h"
-#include "..\Math\AsmJsMath.h"
+#include "JavascriptMath.h"
+#include "AsmJsMath.h"
 

+ 1 - 0
lib/Runtime/Language/JavascriptOperators.cpp

@@ -9507,6 +9507,7 @@ CommonNumber:
             {
                 element = GetElementAtIndex(arrayObject, i, scriptContext);
                 AnalysisAssert((i + 1) * sizeof(int8) <= allocSize);
+#pragma prefast(suppress:22102)
                 ((int8*)buffer)[i] = Js::JavascriptConversion::ToInt8(element, scriptContext);
             }
             break;

+ 4 - 0
lib/Runtime/Library/Chakra.Runtime.Library.vcxproj

@@ -28,7 +28,11 @@
         $(MSBuildThisFileDirectory)..;
         $(MSBuildThisFileDirectory)..\..\Common;
         $(MSBuildThisFileDirectory)..\..\Parser;
+        $(MSBuildThisFileDirectory)..\..\Runtime\ByteCode;
         $(MSBuildThisFileDirectory)..\..\Backend;
+        $(MSBuildThisFileDirectory)..\Math;
+        $(ChakraManifestsIncludeDirectory);
+        $(ManifestsInboxIncludeDirectory);
         %(AdditionalIncludeDirectories)
       </AdditionalIncludeDirectories>
       <!-- For mscorlib.tlb used in JavascriptErrorDebug.cpp -->

+ 2 - 2
lib/Runtime/Library/ConcatString.cpp

@@ -40,7 +40,7 @@ namespace Js
             {
                 // If we have the buffer already, just copy it
                 const CharCount copyCharLength = s->GetLength();
-                Assert(copiedCharLength + copyCharLength <= this->GetLength());
+                AnalysisAssert(copiedCharLength + copyCharLength <= this->GetLength());
                 CopyHelper(&buffer[copiedCharLength], s->GetString(), copyCharLength);
                 copiedCharLength += copyCharLength;
                 continue;
@@ -62,7 +62,7 @@ namespace Js
             }
 
             const CharCount copyCharLength = s->GetLength();
-            Assert(copyCharLength <= GetLength() - copiedCharLength);
+            AnalysisAssert(copyCharLength <= GetLength() - copiedCharLength);
 
             if(recursionDepth == MaxCopyRecursionDepth && s->IsTree())
             {

+ 2 - 2
lib/Runtime/Library/EngineInterfaceObject.cpp

@@ -76,7 +76,7 @@ namespace Js
 {
     EngineExtensionObjectBase* EngineInterfaceObject::GetEngineExtension(EngineInterfaceExtensionKind extensionKind) const
     {
-        Assert(extensionKind <= MaxEngineInterfaceExtensionKind);
+        AnalysisAssert(extensionKind >= 0 && extensionKind <= MaxEngineInterfaceExtensionKind);
         if (extensionKind <= MaxEngineInterfaceExtensionKind)
         {
             Assert(engineExtensions[extensionKind] == nullptr || engineExtensions[extensionKind]->GetExtensionKind() == extensionKind);
@@ -87,7 +87,7 @@ namespace Js
 
     void EngineInterfaceObject::SetEngineExtension(EngineInterfaceExtensionKind extensionKind, EngineExtensionObjectBase* extensionObject)
     {
-        Assert(extensionKind <= MaxEngineInterfaceExtensionKind);
+        AnalysisAssert(extensionKind >= 0 && extensionKind <= MaxEngineInterfaceExtensionKind);
         if (extensionKind <= MaxEngineInterfaceExtensionKind)
         {
             Assert(engineExtensions[extensionKind] == nullptr);

+ 2 - 1
lib/Runtime/Math/Chakra.Runtime.Math.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />
@@ -24,6 +24,7 @@
         $(MSBuildThisFileDirectory)..;
         $(MSBuildThisFileDirectory)..\..\Common;
         $(MSBuildThisFileDirectory)..\..\Parser;
+        $(MSBuildThisFileDirectory)..\..\Runtime\ByteCode;
         $(MSBuildThisFileDirectory)..\..\Backend;
         %(AdditionalIncludeDirectories)
       </AdditionalIncludeDirectories>

+ 3 - 2
lib/Runtime/Types/Chakra.Runtime.Types.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />
@@ -24,6 +24,7 @@
         $(MSBuildThisFileDirectory)..;
         $(MSBuildThisFileDirectory)..\..\Common;
         $(MSBuildThisFileDirectory)..\..\Parser;
+        $(MSBuildThisFileDirectory)..\..\Runtime\ByteCode;
         $(MSBuildThisFileDirectory)..\..\Backend;
         %(AdditionalIncludeDirectories)
       </AdditionalIncludeDirectories>
@@ -41,7 +42,7 @@
     <ClCompile Include="$(MSBuildThisFileDirectory)DynamicObjectSnapshotEnumerator.cpp" />
     <ClCompile Include="$(MSBuildThisFileDirectory)DynamicObjectSnapshotEnumeratorWPCache.cpp" />
     <ClCompile Include="$(MSBuildThisFileDirectory)DynamicType.cpp" />
-    <ClCompile Include="$(MSBuildThisFileDirectory)ES5ArrayTypeHandler.cpp" />    
+    <ClCompile Include="$(MSBuildThisFileDirectory)ES5ArrayTypeHandler.cpp" />
     <ClCompile Include="$(MSBuildThisFileDirectory)JavascriptEnumerator.cpp" />
     <ClCompile Include="$(MSBuildThisFileDirectory)MissingPropertyTypeHandler.cpp" />
     <ClCompile Include="$(MSBuildThisFileDirectory)NullTypeHandler.cpp" />

+ 9 - 9
lib/common/BackEndAPI.h

@@ -37,15 +37,15 @@ typedef uintptr  UIntConstType;
 typedef IntMath<intptr>::Type IntConstMath;
 typedef double  FloatConstType;
 
-#include "..\Backend\EmitBuffer.h"
-#include "..\Backend\InterpreterThunkEmitter.h"
-#include "..\Runtime\Bytecode\BackEndOpCodeAttr.h"
-#include "..\Backend\BackEndOpCodeAttrAsmJs.h"
-#include "..\Backend\CodeGenNumberAllocator.h"
-#include "..\Backend\NativeCodeData.h"
-#include "..\Backend\JnHelperMethod.h"
-#include "..\Backend\IRType.h"
-#include "..\Backend\InlineeFrameInfo.h"
+#include "EmitBuffer.h"
+#include "InterpreterThunkEmitter.h"
+#include "BackEndOpCodeAttr.h"
+#include "BackEndOpCodeAttrAsmJs.h"
+#include "CodeGenNumberAllocator.h"
+#include "NativeCodeData.h"
+#include "JnHelperMethod.h"
+#include "IRType.h"
+#include "InlineeFrameInfo.h"
 
 NativeCodeGenerator * NewNativeCodeGenerator(Js::ScriptContext * nativeCodeGen);
 void DeleteNativeCodeGenerator(NativeCodeGenerator * nativeCodeGen);

+ 1 - 1
lib/common/DataStructures/BigInt.cpp

@@ -1,4 +1,4 @@
-//-------------------------------------------------------------------------------------------------------
+//-------------------------------------------------------------------------------------------------------
 // Copyright (C) Microsoft. All rights reserved.
 // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
 //-------------------------------------------------------------------------------------------------------

+ 1 - 1
lib/common/DataStructures/BigInt.h

@@ -1,4 +1,4 @@
-//-------------------------------------------------------------------------------------------------------
+//-------------------------------------------------------------------------------------------------------
 // Copyright (C) Microsoft. All rights reserved.
 // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
 //-------------------------------------------------------------------------------------------------------

+ 1 - 1
lib/common/DataStructures/Chakra.Common.DataStructures.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props"/>
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />

+ 1 - 1
lib/common/Exceptions/Chakra.Common.Exceptions.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />

+ 2 - 2
lib/common/Exceptions/reporterror.h

@@ -17,8 +17,8 @@ enum ErrorReason
     LargeHeapBlock_Metadata_Corrupt = 9,
     Fatal_Version_Inconsistency = 10,
     MarkStack_OUTOFMEMORY = 11,
-    Fatal_FailedToBox_OUTOFMEMORY = 12,
-    EnterScript_FromDOM_NoScriptScope = 13
+    EnterScript_FromDOM_NoScriptScope = 12,
+    Fatal_FailedToBox_OUTOFMEMORY = 13
 };
 
 extern "C" void ReportFatalException(

+ 1 - 1
lib/common/Memory/Chakra.Common.Memory.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />

+ 1 - 1
lib/common/Memory/Chakra.Common.Memory.vcxproj.filters

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
     <ARMASM Include="$(MSBuildThisFileDirectory)arm\arm_SAVE_REGISTERS.asm">

+ 2 - 1
lib/common/Memory/HeapBlockMap.cpp

@@ -815,12 +815,13 @@ HeapBlockMap32::GetWriteWatchHelperOnOOM(DWORD writeWatchFlags, _In_ void* baseA
         DWORD r = ::GetWriteWatch(writeWatchFlags, pageAddress, AutoSystemInfo::PageSize, &result, &resultBufferCount, granularity);
         Assert(r == 0);
         Assert(resultBufferCount <= 1);
-        AnalysisAssert(dirtyCount <= pageCount);
+        AnalysisAssert(dirtyCount < pageCount);
 
         // The requested page was dirty
         if (resultBufferCount == 1)
         {
             Assert(result == pageAddress);
+#pragma prefast(suppress:22102)
             addresses[dirtyCount] = pageAddress;
             dirtyCount++;
         }

+ 5 - 0
lib/common/Memory/RecyclerRootPtr.h

@@ -17,6 +17,10 @@ public:
 
     T * operator->() const { Assert(ptr != nullptr); return ptr; }
     operator T*() const { return ptr; }
+
+    RecyclerRootPtr(RecyclerRootPtr<T>&&);
+    RecyclerRootPtr& operator=(RecyclerRootPtr<T> &&);
+
 protected:
     T * ptr;
 private:
@@ -24,6 +28,7 @@ private:
     RecyclerRootPtr& operator=(RecyclerRootPtr<T> const& ptr); // Disable
 };
 
+
 typedef RecyclerRootPtr<void> RecyclerRootVar;
 
 template <typename T>

+ 1 - 1
lib/common/codex/Chakra.Common.Codex.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props"/>
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />

+ 1 - 1
lib/common/common/Chakra.Common.Common.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />

+ 1 - 1
lib/common/common/Chakra.Common.Common.vcxproj.filters

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
     <ClCompile Include="$(MSBuildThisFileDirectory)Api.cpp" />

+ 1 - 1
lib/common/common/DateUtilities.h

@@ -28,7 +28,7 @@ namespace Js
         static HRESULT WinRTDateToES5Date(INT64 winrtDate, __out double* pResult);
         static HRESULT ES5DateToWinRTDate(double es5Date, __out INT64* pResult);
         static HRESULT WinRTTimeSpanToNumberV6(INT64 span, __out double* pResult);
-        static HRESULT NumberToWinRTTimeSpanV6(double span, __out INT64* pResult);       
+        static HRESULT NumberToWinRTTimeSpanV6(double span, __out INT64* pResult);
 
         static double TimeFromSt(SYSTEMTIME *pst);
         static double DayTimeFromSt(SYSTEMTIME *pst);

+ 1 - 1
lib/common/common/NumberUtilities.cpp

@@ -1,4 +1,4 @@
-//-------------------------------------------------------------------------------------------------------
+//-------------------------------------------------------------------------------------------------------
 // Copyright (C) Microsoft. All rights reserved.
 // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
 //-------------------------------------------------------------------------------------------------------

+ 3 - 3
lib/common/common/NumberUtilities_strtod.cpp

@@ -2316,7 +2316,7 @@ int Js::NumberUtilities::FDblToStr(double dbl, Js::NumberUtilities::FormatType f
             //Either session pointer is null or session is in compat mode switch to compat handling
             if ((wExp10 + nDigits) > 0)
             {
-                Assert(wExp10 + nDigits + 1 <= kcbMaxRgb);
+                AnalysisAssert(wExp10 + nDigits + 1 <= kcbMaxRgb);
                 wExp10 += RoundTo(rgb, pbLim, wExp10 + nDigits, rgbAdj, &pbLimAdj);
             }
             else
@@ -2340,7 +2340,7 @@ int Js::NumberUtilities::FDblToStr(double dbl, Js::NumberUtilities::FormatType f
     case Js::NumberUtilities::FormatExponential:
         if (nDigits >= 0)
         {
-            Assert(nDigits + 2 <= kcbMaxRgb);
+            AnalysisAssert(nDigits + 2 <= kcbMaxRgb);
             wExp10 += RoundTo(rgb, pbLim, nDigits + 1, rgbAdj, &pbLimAdj);
         }
         else
@@ -2349,7 +2349,7 @@ int Js::NumberUtilities::FDblToStr(double dbl, Js::NumberUtilities::FormatType f
         break;
 
     case Js::NumberUtilities::FormatPrecision:
-        Assert(nDigits + 1 <= kcbMaxRgb);
+        AnalysisAssert(nDigits + 1 <= kcbMaxRgb);
         wExp10 += RoundTo( rgb, pbLim, nDigits, rgbAdj, &pbLimAdj );
 
         // NOTE: the 'e' in the toPrecision algorithm in the ECMA standard is equal to wExp - 1.

+ 1 - 1
lib/common/core/Chakra.Common.Core.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />

+ 1 - 1
lib/common/core/FaultInjection.cpp

@@ -268,7 +268,7 @@ namespace Js
         }
     }
 #pragma warning( pop )
-#pragma optimize( "g", on )
+#pragma optimize( "", on )
 #define CaptureStack(FramesToSkip, FramesToCapture, BackTrace, BackTraceHash) \
     RtlCaptureStackBackTrace(FramesToSkip, FramesToCapture, BackTrace, BackTraceHash)
 #else

+ 1 - 1
lib/common/util/Chakra.Common.Util.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props"/>
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />

+ 2 - 1
lib/jsrt/Chakra.Jsrt.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props" />
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />
@@ -23,6 +23,7 @@
       <AdditionalIncludeDirectories>
         $(MSBuildThisFileDirectory);
         $(MSBuildThisFileDirectory)..\Runtime;
+        $(MSBuildThisFileDirectory)..\Runtime\ByteCode;
         $(MSBuildThisFileDirectory)..\Common;
         $(MSBuildThisFileDirectory)..\Parser;
         $(MSBuildThisFileDirectory)..\Backend;

+ 2 - 1
lib/jsrt/core/Chakra.Jsrt.Core.vcxproj

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Condition="'$(ChakraBuildPathImported)'!='true'" Project="$(SolutionDir)Chakra.Build.Paths.props"/>
   <Import Project="$(BuildConfigPropsPath)Chakra.Build.ProjectConfiguration.props" />
@@ -24,6 +24,7 @@
         $(MSBuildThisFileDirectory);
         $(MSBuildThisFileDirectory)..;
         $(MSBuildThisFileDirectory)..\..\Runtime;
+        $(MSBuildThisFileDirectory)..\..\Runtime\ByteCode;
         $(MSBuildThisFileDirectory)..\..\Common;
         $(MSBuildThisFileDirectory)..\..\Parser;
         $(MSBuildThisFileDirectory)..\..\Backend;