Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
bcfdcbe
Expose ITracker machinary thru new API and JsrtExternalObject
curtisman Jun 13, 2018
3d0d475
Stop depending on oaidl.h so that "interface" won't be redefined
curtisman Jun 14, 2018
a753558
Stop marshalling the prototype of a proxy
curtisman Jun 14, 2018
5b4cb47
Avoid using script context life time guest arena where unused memory …
curtisman Jun 19, 2018
3429eb6
Expose GC allocation API
curtisman Jul 19, 2018
1ee07df
Allow ENABLE_PARTIAL_GC to be disabled
curtisman Jul 19, 2018
116d352
Allow javascript null as prototype prototype when creating external o…
curtisman Aug 1, 2018
e86a1cc
Add Object Cloning and external type caching for non-default prototype
MikeHolman Aug 3, 2018
a4b06fd
disable spectre mitigations
MikeHolman Aug 24, 2018
9c55ed5
fix merge issue
MikeHolman Aug 24, 2018
c3b12f7
Add Inline Slots to External Objects
MikeHolman Aug 3, 2018
55670b0
Moving SCA to chakracore Part1
akroshg Aug 27, 2018
4e3295f
add private property api and new API for making property strings
MikeHolman Sep 11, 2018
12dd546
Merged PR 140126: Moving SCA to chakracore Part1
akroshg Sep 11, 2018
16f9a5f
Part2 Serialization/Deserialization for ArrayBuffer
akroshg Sep 12, 2018
048703e
Merged PR 141107: Part2 Serialization/Deserialization for ArrayBuffer
akroshg Sep 13, 2018
caca89a
add API for full object define
MikeHolman Sep 13, 2018
0bf65ef
Part 3 : Serialization/Deserialization Host object hookup
akroshg Sep 14, 2018
0652260
weakref improvements
MikeHolman Sep 17, 2018
9ee0ba7
make obj callback into a list
MikeHolman Sep 18, 2018
5086248
Merged PR 141536: Part 3 : Serialization/Deserialization Host object …
akroshg Sep 20, 2018
0991d2c
Pogo build script change
atulkatti Aug 30, 2018
dee1a4b
Custom external object for DOM wrappers that need interceptors.
atulkatti Sep 4, 2018
f7b0c65
Merged PR 142408: Custom external object for DOM wrappers that need i…
atulkatti Sep 21, 2018
156ec6c
Avoid determining whether a property name is numeric in the shim.
atulkatti Sep 21, 2018
aac435f
Merged PR 142595: Avoid determining whether a property name is numeri…
atulkatti Sep 21, 2018
a0c36a8
add strict mode parse flag
MikeHolman Sep 19, 2018
8b1bb54
Fix JsrtExternalObject creation asserts.
atulkatti Sep 25, 2018
2fc8c39
Merged PR 142906: don't create property string for indexed property i…
MikeHolman Sep 25, 2018
9fceff2
Merged PR 143442: Fix JsrtExternalObject creation asserts.
atulkatti Sep 27, 2018
d4f148d
Refactor CEO APIs.
atulkatti Oct 10, 2018
18615ff
Rename interceptor struct.
atulkatti Oct 10, 2018
66a7a42
Merged PR 145578: Refactor CEO APIs. Rename interceptor struct.
atulkatti Oct 10, 2018
807083e
Merged PR 146054: Add JsIsConstructor to Jsrt to support running Chro…
paolosevMSFT Oct 17, 2018
c4a6bae
Merge remote-tracking branch 'origin/master' into feature/shim
MikeHolman Oct 17, 2018
8e2aae3
Merged PR 146704: update shim branch with latest master
MikeHolman Oct 17, 2018
d2a2dd2
Merged PR 146829: Fix build break caused by the new function JsIsCons…
paolosevMSFT Oct 17, 2018
36888b9
Adding documentation to the Serializer/Deserializer APIs
akroshg Oct 18, 2018
5da225c
Fixing HeapFree AV
akroshg Oct 19, 2018
ddcb579
Merged PR 147153: Fixing HeapFree AV
akroshg Oct 19, 2018
80e5ad8
Batch tracing of the blink wrappers until EndMark. We will then do Ch…
atulkatti Oct 17, 2018
8daeeb3
Merged PR 147332: Batch tracing of the blink wrappers until EndMark. …
atulkatti Oct 22, 2018
dba723b
Fixing RL.exe buffer too small AV.
akroshg Oct 24, 2018
03c4087
Disabling the TTD test as they are not-stable
akroshg Oct 24, 2018
15643c7
Merged PR 147841: Disabling the TTD test as they are not-stable
akroshg Oct 24, 2018
e1460af
Merged PR 147834: Fixing RL.exe buffer too small AV.
akroshg Oct 25, 2018
581fe07
make some small perf improvements
MikeHolman Nov 1, 2018
9782d41
Merged PR 149294: avoid prop record lookup for external function crea…
MikeHolman Nov 1, 2018
ddd5145
Fix NoJIT builds
rajatd Nov 2, 2018
ff84136
Merged PR 149575: Fix NoJIT builds
rajatd Nov 2, 2018
ea430d9
update incorrect baseline
MikeHolman Nov 2, 2018
cb90e11
actually enable caching for CreateKeys enumerator
MikeHolman Nov 5, 2018
55a6e38
Share types of CrossSiteObject<ScriptFunction> objects
pleath Oct 23, 2018
3526add
Force new type check when object ptr copy prop creates a mismatch
pleath Oct 26, 2018
ba3fca2
add scripts to build chakracore from GN
VSadov Nov 9, 2018
5bfc37b
Merged PR 150736: add scripts to build chakracore from GN
VSadov Nov 9, 2018
372cc14
Making Typeof-Br/Cm fast-path more generic
rajatd Nov 9, 2018
75beaab
defer initialize custom external object
MikeHolman Nov 13, 2018
8aec929
fix TTD tests
MikeHolman Nov 13, 2018
5adf7e9
delete bad native test
MikeHolman Nov 13, 2018
2b43c0d
Merged PR 151039: defer initialize custom external objects
MikeHolman Nov 20, 2018
58f8651
Undo small change to make objtypespec more aggressive in the presence…
pleath Nov 16, 2018
88fd9bf
Fix the order of setting "initialized" flag in CustomExternalWrapperO…
VSadov Nov 30, 2018
36ae40f
Merged PR 153748: Fix the order of setting "initialized" flag in Cust…
VSadov Nov 30, 2018
469b086
Provide JSRT APIs to get Array prototype iteration functions. Also, f…
atulkatti Nov 30, 2018
75cfe99
Merged PR 153810: Provide JSRT APIs to get Array prototype iteration …
atulkatti Dec 3, 2018
bdf25ed
Track assignments in some missing corner cases
pleath Dec 3, 2018
63b3461
make EnterFinalPause also CHAKRA_CALLBACK
VSadov Dec 6, 2018
1566986
Merged PR 154679: make EnterFinalPause also CHAKRA_CALLBACK
VSadov Dec 6, 2018
9d87ba3
Fixes asserts in Speedometer
VSadov Dec 20, 2018
e1129e1
Merged PR 156729: Fixes asserts in Speedometer
VSadov Dec 20, 2018
a886606
Inline more .call/.apply targets
rajatd Dec 28, 2018
ec741b5
wrong offeset in bytecode deserializer
VSadov Jan 12, 2019
6e530f4
Merged PR 159115: Small fix to avoid asserts later
VSadov Jan 14, 2019
00e64fd
Merge remote-tracking branch 'origin/master' into feature/shim
MikeHolman Jan 28, 2019
efc2ea2
update bytecode
MikeHolman Jan 28, 2019
c484d6d
Merge branch 'feature/shim' into users/michhol/mergeshim
MikeHolman Jan 29, 2019
452bd6f
fix chakra full build
MikeHolman Jan 29, 2019
ea28f1e
fix bad merge
MikeHolman Jan 29, 2019
1e3af79
fix whitespace issues
MikeHolman Jan 29, 2019
535c306
linux build fixes
MikeHolman Jan 30, 2019
62c130d
fix copyright headers
MikeHolman Jan 30, 2019
e34faa4
more linux build fixes
MikeHolman Jan 31, 2019
645e589
add PAL guid file
MikeHolman Jan 31, 2019
2114fdb
more linux/osx fixes
MikeHolman Feb 1, 2019
9b3774a
change serialization to use C API
MikeHolman Feb 4, 2019
e8e59bf
add callback state
MikeHolman Feb 5, 2019
ff0ffa4
fix deserialization APIs
MikeHolman Feb 5, 2019
7740a8e
fix interceptors to be plain C
MikeHolman Feb 5, 2019
2717bfc
consolidate JSRT APIs; fix OSX build
MikeHolman Feb 6, 2019
6eb30a7
fix issue from include of oaidl.h
MikeHolman Feb 6, 2019
282f7a2
move chakracore only types behind ifdefs
MikeHolman Feb 7, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#-------------------------------------------------------------------------------------------------------
# Copyright (C) Microsoft. All rights reserved.
# Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
#-------------------------------------------------------------------------------------------------------

action("ChakraCoreBuild") {
script = "tools/run_msbuild.py"

chakracore_solution = rebase_path("Build\Chakra.Core.sln")

# NOSORT
sources = [
chakracore_solution
]

outputs = [
"$target_gen_dir/ChakraCore.lib",
"$target_gen_dir/../../../ChakraCore.pdb",
"$target_gen_dir/../../../ChakraCore.dll"
]

# The path should be like: "Build/VcBuild/bin/x64_debug""
outdir = "Build/VcBuild/bin/" + current_cpu

if (is_debug) {
config = "Debug"
outdir = outdir + "_debug"
}
else {
config = "Release"
outdir = outdir + "_release"
}

outdir = rebase_path(outdir)

# On Windows, run msbuild.exe on sln and copy lib, dll, pdb files to appropriate locations,
# def main(sln, outdir, target_gen_dir, *flags):

args = [
chakracore_solution,
outdir,
rebase_path(target_gen_dir),
"/m",
"/t:Build",
"/p:Configuration=$config",
"/p:platform=$current_cpu"
]
}
452 changes: 451 additions & 1 deletion Build/Chakra.Core.sln

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion bin/ChakraCore/ChakraCore.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,9 @@
<ProjectReference Include="..\..\lib\Runtime\Math\Chakra.Runtime.Math.vcxproj">
<Project>{abc904ad-9415-46f8-aa23-e33193f81f7c}</Project>
</ProjectReference>
<ProjectReference Include="..\..\lib\SCACore\Chakra.SCACore.vcxproj">
<Project>{4da3a367-6ed2-4ee8-9698-5bcd0b8af7f5}</Project>
</ProjectReference>
<ProjectReference Include="..\..\lib\WasmReader\Chakra.WasmReader.vcxproj">
<Project>{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}</Project>
</ProjectReference>
Expand Down Expand Up @@ -194,4 +197,4 @@
</ItemGroup>
<Import Project="$(BuildConfigPropsPath)Chakra.Build.targets" Condition="exists('$(BuildConfigPropsPath)Chakra.Build.targets')" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
</Project>
2 changes: 1 addition & 1 deletion bin/ChakraCore/TestHooks.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#pragma once

#ifdef ENABLE_TEST_HOOKS

#include <oaidl.h>
interface ICustomConfigFlags;

#if defined(_WIN32) || defined(_MSC_VER)
Expand Down
10 changes: 10 additions & 0 deletions bin/NativeTests/JsRTApiTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,11 @@ namespace JsRTApiTest
CHECK(data == (void *)0xdeadbeef);
}

void CALLBACK ExternalObjectTraceCallback(void *data)
{
CHECK(data == (void *)0xdeadbeef);
}

void CrossContextSetPropertyTest(JsRuntimeAttributes attributes, JsRuntimeHandle runtime)
{
bool hasExternalData;
Expand Down Expand Up @@ -292,6 +297,11 @@ namespace JsRTApiTest
REQUIRE(JsSetPrototype(jsrtExternalObjectRef, mainObjectRef) == JsNoError);
REQUIRE(JsHasExternalData(jsrtExternalObjectRef, &hasExternalData) == JsNoError);
REQUIRE(hasExternalData);

JsValueRef object3 = JS_INVALID_REFERENCE;
JsGetterSetterInterceptor * interceptor3 = nullptr;
JsValueRef prototype2 = JS_INVALID_REFERENCE;
REQUIRE(JsCreateCustomExternalObject((void *)0xdeadbeef, 0, ExternalObjectTraceCallback, ExternalObjectFinalizeCallback, &interceptor3, prototype2, &object3) == JsNoError);
}

TEST_CASE("ApiTest_CrossContextSetPropertyTest", "[ApiTest]")
Expand Down
22 changes: 22 additions & 0 deletions bin/ch/ChakraRtInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,20 @@ bool ChakraRTInterface::LoadChakraDll(ArgInfo* argInfo, HINSTANCE *outLibrary)
m_jsApiHooks.pfJsrtCreateRuntime = (JsAPIHooks::JsrtCreateRuntimePtr)GetChakraCoreSymbol(library, "JsCreateRuntime");
m_jsApiHooks.pfJsrtCreateContext = (JsAPIHooks::JsrtCreateContextPtr)GetChakraCoreSymbol(library, "JsCreateContext");
m_jsApiHooks.pfJsrtSetObjectBeforeCollectCallback = (JsAPIHooks::JsrtSetObjectBeforeCollectCallbackPtr)GetChakraCoreSymbol(library, "JsSetObjectBeforeCollectCallback");
m_jsApiHooks.pfJsrtSetRuntimeDomWrapperTracingCallbacks = (JsAPIHooks::JsrtSetRuntimeDomWrapperTracingCallbacksPtr)GetChakraCoreSymbol(library, "JsSetRuntimeDomWrapperTracingCallbacks");
m_jsApiHooks.pfJsrtSetRuntimeMemoryLimit = (JsAPIHooks::JsrtSetRuntimeMemoryLimitPtr)GetChakraCoreSymbol(library, "JsSetRuntimeMemoryLimit");
m_jsApiHooks.pfJsrtSetCurrentContext = (JsAPIHooks::JsrtSetCurrentContextPtr)GetChakraCoreSymbol(library, "JsSetCurrentContext");
m_jsApiHooks.pfJsrtGetCurrentContext = (JsAPIHooks::JsrtGetCurrentContextPtr)GetChakraCoreSymbol(library, "JsGetCurrentContext");
m_jsApiHooks.pfJsrtDisposeRuntime = (JsAPIHooks::JsrtDisposeRuntimePtr)GetChakraCoreSymbol(library, "JsDisposeRuntime");
m_jsApiHooks.pfJsrtCreateObject = (JsAPIHooks::JsrtCreateObjectPtr)GetChakraCoreSymbol(library, "JsCreateObject");
m_jsApiHooks.pfJsrtCreateExternalObject = (JsAPIHooks::JsrtCreateExternalObjectPtr)GetChakraCoreSymbol(library, "JsCreateExternalObject");
m_jsApiHooks.pfJsrtGetArrayForEachFunction = (JsAPIHooks::JsrtGetArrayForEachFunctionPtr)GetChakraCoreSymbol(library, "JsGetArrayForEachFunction");;
m_jsApiHooks.pfJsrtGetArrayKeysFunction = (JsAPIHooks::JsrtGetArrayKeysFunctionPtr)GetChakraCoreSymbol(library, "JsGetArrayKeysFunction");;
m_jsApiHooks.pfJsrtGetArrayValuesFunction = (JsAPIHooks::JsrtGetArrayValuesFunctionPtr)GetChakraCoreSymbol(library, "JsGetArrayValuesFunction");;
m_jsApiHooks.pfJsrtGetArrayEntriesFunction = (JsAPIHooks::JsrtGetArrayEntriesFunctionPtr)GetChakraCoreSymbol(library, "JsGetArrayEntriesFunction");;
m_jsApiHooks.pfJsrtGetPropertyIdSymbolIterator = (JsAPIHooks::JsrtGetPropertyIdSymbolIteratorPtr)GetChakraCoreSymbol(library, "JsGetPropertyIdSymbolIterator");;
m_jsApiHooks.pfJsrtGetErrorPrototype = (JsAPIHooks::JsrtGetErrorPrototypePtr)GetChakraCoreSymbol(library, "JsGetErrorPrototype");;
m_jsApiHooks.pfJsrtGetIteratorPrototype = (JsAPIHooks::JsrtGetIteratorPrototypePtr)GetChakraCoreSymbol(library, "JsGetIteratorPrototype");;
m_jsApiHooks.pfJsrtCreateFunction = (JsAPIHooks::JsrtCreateFunctionPtr)GetChakraCoreSymbol(library, "JsCreateFunction");
m_jsApiHooks.pfJsrtCreateNamedFunction = (JsAPIHooks::JsCreateNamedFunctionPtr)GetChakraCoreSymbol(library, "JsCreateNamedFunction");
m_jsApiHooks.pfJsrtSetProperty = (JsAPIHooks::JsrtSetPropertyPtr)GetChakraCoreSymbol(library, "JsSetProperty");
Expand All @@ -105,6 +113,7 @@ bool ChakraRTInterface::LoadChakraDll(ArgInfo* argInfo, HINSTANCE *outLibrary)
m_jsApiHooks.pfJsrtDoubleToNumber = (JsAPIHooks::JsrtDoubleToNumberPtr)GetChakraCoreSymbol(library, "JsDoubleToNumber");
m_jsApiHooks.pfJsrtGetExternalData = (JsAPIHooks::JsrtGetExternalDataPtr)GetChakraCoreSymbol(library, "JsGetExternalData");
m_jsApiHooks.pfJsrtSetExternalData = (JsAPIHooks::JsrtSetExternalDataPtr)GetChakraCoreSymbol(library, "JsSetExternalData");
m_jsApiHooks.pfJsrtCloneObject = (JsAPIHooks::JsrtCloneObjectPtr)GetChakraCoreSymbol(library, "JsCloneObject");
m_jsApiHooks.pfJsrtCreateArray = (JsAPIHooks::JsrtCreateArrayPtr)GetChakraCoreSymbol(library, "JsCreateArray");
m_jsApiHooks.pfJsrtCreateArrayBuffer = (JsAPIHooks::JsrtCreateArrayBufferPtr)GetChakraCoreSymbol(library, "JsCreateArrayBuffer");
m_jsApiHooks.pfJsrtCreateSharedArrayBufferWithSharedContent = (JsAPIHooks::JsrtCreateSharedArrayBufferWithSharedContentPtr)GetChakraCoreSymbol(library, "JsCreateSharedArrayBufferWithSharedContent");
Expand All @@ -119,6 +128,7 @@ bool ChakraRTInterface::LoadChakraDll(ArgInfo* argInfo, HINSTANCE *outLibrary)
m_jsApiHooks.pfJsrtRelease = (JsAPIHooks::JsrtReleasePtr)GetChakraCoreSymbol(library, "JsRelease");
m_jsApiHooks.pfJsrtAddRef = (JsAPIHooks::JsrtAddRefPtr)GetChakraCoreSymbol(library, "JsAddRef");
m_jsApiHooks.pfJsrtGetValueType = (JsAPIHooks::JsrtGetValueType)GetChakraCoreSymbol(library, "JsGetValueType");
m_jsApiHooks.pfJsrtGetIndexedProperty = (JsAPIHooks::JsrtGetIndexedPropertyPtr)GetChakraCoreSymbol(library, "JsGetIndexedProperty");
m_jsApiHooks.pfJsrtSetIndexedProperty = (JsAPIHooks::JsrtSetIndexedPropertyPtr)GetChakraCoreSymbol(library, "JsSetIndexedProperty");
m_jsApiHooks.pfJsrtSetPromiseContinuationCallback = (JsAPIHooks::JsrtSetPromiseContinuationCallbackPtr)GetChakraCoreSymbol(library, "JsSetPromiseContinuationCallback");
m_jsApiHooks.pfJsrtSetHostPromiseRejectionTracker = (JsAPIHooks::JsrtSetHostPromiseRejectionTrackerPtr)GetChakraCoreSymbol(library, "JsSetHostPromiseRejectionTracker");
Expand Down Expand Up @@ -178,6 +188,18 @@ bool ChakraRTInterface::LoadChakraDll(ArgInfo* argInfo, HINSTANCE *outLibrary)
m_jsApiHooks.pfJsrtTTDGetSnapTimeTopLevelEventMove = (JsAPIHooks::JsrtTTDGetSnapTimeTopLevelEventMovePtr)GetChakraCoreSymbol(library, "JsTTDGetSnapTimeTopLevelEventMove");
m_jsApiHooks.pfJsrtTTDMoveToTopLevelEvent = (JsAPIHooks::JsrtTTDMoveToTopLevelEventPtr)GetChakraCoreSymbol(library, "JsTTDMoveToTopLevelEvent");
m_jsApiHooks.pfJsrtTTDReplayExecution = (JsAPIHooks::JsrtTTDReplayExecutionPtr)GetChakraCoreSymbol(library, "JsTTDReplayExecution");
m_jsApiHooks.pfJsrtVarSerializer = (JsAPIHooks::JsrtVarSerializerPtr)GetChakraCoreSymbol(library, "JsVarSerializer");
m_jsApiHooks.pfJsrtVarSerializerSetTransferableVars = (JsAPIHooks::JsrtVarSerializerSetTransferableVarsPtr)GetChakraCoreSymbol(library, "JsVarSerializerSetTransferableVars");
m_jsApiHooks.pfJsrtVarSerializerWriteValue = (JsAPIHooks::JsrtVarSerializerWriteValuePtr)GetChakraCoreSymbol(library, "JsVarSerializerWriteValue");
m_jsApiHooks.pfJsrtVarSerializerReleaseData = (JsAPIHooks::JsrtVarSerializerReleaseDataPtr)GetChakraCoreSymbol(library, "JsVarSerializerReleaseData");
m_jsApiHooks.pfJsrtVarSerializerFree = (JsAPIHooks::JsrtVarSerializerFreePtr)GetChakraCoreSymbol(library, "JsVarSerializerFree");
m_jsApiHooks.pfJsrtVarDeserializer = (JsAPIHooks::JsrtVarDeserializerPtr)GetChakraCoreSymbol(library, "JsVarDeserializer");
m_jsApiHooks.pfJsrtVarDeserializerSetTransferableVars = (JsAPIHooks::JsrtVarDeserializerSetTransferableVarsPtr)GetChakraCoreSymbol(library, "JsVarDeserializerSetTransferableVars");
m_jsApiHooks.pfJsrtVarDeserializerReadValue = (JsAPIHooks::JsrtVarDeserializerReadValuePtr)GetChakraCoreSymbol(library, "JsVarDeserializerReadValue");
m_jsApiHooks.pfJsrtVarDeserializerFree = (JsAPIHooks::JsrtVarDeserializerFreePtr)GetChakraCoreSymbol(library, "JsVarDeserializerFree");

m_jsApiHooks.pfJsrtDetachArrayBuffer = (JsAPIHooks::JsrtDetachArrayBufferPtr)GetChakraCoreSymbol(library, "JsDetachArrayBuffer");

#ifdef _WIN32
m_jsApiHooks.pfJsrtConnectJITProcess = (JsAPIHooks::JsrtConnectJITProcess)GetChakraCoreSymbol(library, "JsConnectJITProcess");
#endif
Expand Down
Loading