Skip to content

Commit 3a8a9a0

Browse files
committed
Merge branch 'master' of https://github.com/pre10der89/ChakraCore into chakra_nuget
2 parents b486c3c + 3f84a23 commit 3a8a9a0

File tree

101 files changed

+2269
-1939
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+2269
-1939
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ install_manifest.txt
8787
*.o
8888
Makefile
8989
pal/src/config.h
90+
DbgController.js.h
9091

9192
# Generated by other tools
9293
*.orig

bin/ChakraCore/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ target_include_directories (
2323
#
2424
if(CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
2525
set(LINKER_START_GROUP
26+
-fPIC
2627
-Wl,--start-group
2728
-Wl,--whole-archive
2829
)

bin/ChakraCore/ChakraCoreShared.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ void DummyJSRTCall()
1515
JsRuntimeHandle *runtime;
1616
JsRuntimeAttributes attr;
1717
JsCreateRuntime(attr, nullptr, runtime);
18+
JsDiagStartDebugging(runtime, nullptr, nullptr);
1819
}
1920
#endif
2021

@@ -30,4 +31,4 @@ EXTERN_C BOOL WINAPI DllMain(HINSTANCE hmod, DWORD dwReason, PVOID pvReserved)
3031
return TRUE;
3132
}
3233

33-
static_assert(__LINE__ == 33, "You shouldn't add anything to this file or ChakraCoreDllFunc.cpp. Please consider again!");
34+
static_assert(__LINE__ == 34, "You shouldn't add anything to this file or ChakraCoreDllFunc.cpp. Please consider again!");

bin/External/catch.hpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1571,8 +1571,8 @@ std::string toString( std::string const& value );
15711571
std::string toString( std::wstring const& value );
15721572
std::string toString( const char* const value );
15731573
std::string toString( char* const value );
1574-
std::string toString( const wchar_t* const value );
1575-
std::string toString( wchar_t* const value );
1574+
std::string toString( const WCHAR* const value );
1575+
std::string toString( WCHAR* const value );
15761576
std::string toString( int value );
15771577
std::string toString( unsigned long value );
15781578
std::string toString( unsigned int value );
@@ -8095,14 +8095,14 @@ std::string toString( char* const value ) {
80958095
return Catch::toString( static_cast<const char*>( value ) );
80968096
}
80978097

8098-
std::string toString( const wchar_t* const value )
8098+
std::string toString( const WCHAR* const value )
80998099
{
81008100
return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" );
81018101
}
81028102

8103-
std::string toString( wchar_t* const value )
8103+
std::string toString( WCHAR* const value )
81048104
{
8105-
return Catch::toString( static_cast<const wchar_t*>( value ) );
8105+
return Catch::toString( static_cast<const WCHAR*>( value ) );
81068106
}
81078107

81088108
std::string toString( int value ) {
@@ -10506,4 +10506,3 @@ int main (int argc, char * const argv[]) {
1050610506
using Catch::Detail::Approx;
1050710507

1050810508
#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
10509-

bin/NativeTests/JsRTApiTest.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ namespace JsRTApiTest
108108
REQUIRE(JsCreateObject(&object) == JsNoError);
109109

110110
JsPropertyIdRef name1 = JS_INVALID_REFERENCE;
111-
const wchar_t* name = nullptr;
111+
const WCHAR* name = nullptr;
112112
REQUIRE(JsGetPropertyIdFromName(_u("stringProperty1"), &name1) == JsNoError);
113113
REQUIRE(JsGetPropertyNameFromId(name1, &name) == JsNoError);
114114
CHECK(!wcscmp(name, _u("stringProperty1")));
@@ -582,7 +582,7 @@ namespace JsRTApiTest
582582
JsValueRef CALLBACK ExternalFunctionPreScriptAbortionCallback(JsValueRef /* function */, bool /* isConstructCall */, JsValueRef * args /* args */, USHORT /* cargs */, void * /* callbackState */)
583583
{
584584
JsValueRef result = JS_INVALID_REFERENCE;
585-
const wchar_t *scriptText = nullptr;
585+
const WCHAR *scriptText = nullptr;
586586
size_t scriptTextLen;
587587

588588
REQUIRE(JsStringToPointer(args[0], &scriptText, &scriptTextLen) == JsNoError);
@@ -593,7 +593,7 @@ namespace JsRTApiTest
593593
JsValueRef CALLBACK ExternalFunctionPostScriptAbortionCallback(JsValueRef /* function */, bool /* isConstructCall */, JsValueRef * args /* args */, USHORT /* cargs */, void * /* callbackState */)
594594
{
595595
JsValueRef result = JS_INVALID_REFERENCE;
596-
const wchar_t *scriptText = nullptr;
596+
const WCHAR *scriptText = nullptr;
597597
size_t scriptTextLen;
598598

599599
REQUIRE(JsStringToPointer(args[0], &scriptText, &scriptTextLen) == JsNoError);
@@ -656,7 +656,7 @@ namespace JsRTApiTest
656656
REQUIRE(JsCreateFunction(ExternalFunctionCallback, nullptr, &function) == JsNoError);
657657
testConstructorName(function, _u(""), 0);
658658

659-
wchar_t name[] = _u("FooName");
659+
WCHAR name[] = _u("FooName");
660660
JsValueRef nameString = JS_INVALID_REFERENCE;
661661
REQUIRE(JsPointerToString(name, _countof(name) - 1, &nameString) == JsNoError);
662662
REQUIRE(JsCreateNamedFunction(nameString, ExternalFunctionCallback, nullptr, &function) == JsNoError);
@@ -688,7 +688,7 @@ namespace JsRTApiTest
688688

689689
JsValueRef args[] = { GetUndefined() };
690690

691-
// throw from script, handle in host
691+
// throw from script, handle in host
692692
REQUIRE(JsGetPropertyIdFromName(_u("throwAtHost"), &name) == JsNoError);
693693
REQUIRE(JsGetProperty(global, name, &function) == JsNoError);
694694
REQUIRE(JsCallFunction(function, args, _countof(args), &result) == JsErrorScriptException);
@@ -701,12 +701,12 @@ namespace JsRTApiTest
701701
REQUIRE(JsGetPropertyIdFromName(_u("callHost"), &name) == JsNoError);
702702
REQUIRE(JsSetProperty(global, name, result, true) == JsNoError);
703703

704-
// throw from host callback, catch in script
704+
// throw from host callback, catch in script
705705
REQUIRE(JsGetPropertyIdFromName(_u("callHostWithTryCatch"), &name) == JsNoError);
706706
REQUIRE(JsGetProperty(global, name, &function) == JsNoError);
707707
REQUIRE(JsCallFunction(function, args, _countof(args), &result) == JsNoError);
708708

709-
// throw from host callback, through script, handle in host
709+
// throw from host callback, through script, handle in host
710710
REQUIRE(JsGetPropertyIdFromName(_u("callHostWithNoTryCatch"), &name) == JsNoError);
711711
REQUIRE(JsGetProperty(global, name, &function) == JsNoError);
712712
REQUIRE(JsCallFunction(function, args, _countof(args), &result) == JsErrorScriptException);
@@ -855,7 +855,7 @@ namespace JsRTApiTest
855855
JsValueRef nameValue = JS_INVALID_REFERENCE;
856856
REQUIRE(JsGetIndexedProperty(propertyNames, indexValue, &nameValue) == JsNoError);
857857

858-
const wchar_t *name = nullptr;
858+
const WCHAR *name = nullptr;
859859
size_t length;
860860
REQUIRE(JsStringToPointer(nameValue, &name, &length) == JsNoError);
861861

@@ -879,7 +879,7 @@ namespace JsRTApiTest
879879
JsPropertyIdRef propertyId = JS_INVALID_REFERENCE;
880880
JsValueRef outValue = JS_INVALID_REFERENCE;
881881
JsValueRef propertySymbols = JS_INVALID_REFERENCE;
882-
const wchar_t* name = nullptr;
882+
const WCHAR* name = nullptr;
883883
JsPropertyIdType propertyIdType;
884884

885885
REQUIRE(JsCreateObject(&object) == JsNoError);
@@ -1003,7 +1003,7 @@ namespace JsRTApiTest
10031003
bool boolValue;
10041004
BYTE *compiledScript = nullptr;
10051005
unsigned int scriptSize = 0;
1006-
const wchar_t *stringValue;
1006+
const WCHAR *stringValue;
10071007
size_t stringLength;
10081008
ByteCodeCallbackTracker tracker = {};
10091009

@@ -1030,7 +1030,7 @@ namespace JsRTApiTest
10301030

10311031
tracker.script = script;
10321032
REQUIRE(JsRunSerializedScriptWithCallback(
1033-
[](JsSourceContext sourceContext, const wchar_t** scriptBuffer)
1033+
[](JsSourceContext sourceContext, const WCHAR** scriptBuffer)
10341034
{
10351035
((ByteCodeCallbackTracker*)sourceContext)->loadedScript = true;
10361036
*scriptBuffer = ((ByteCodeCallbackTracker*)sourceContext)->script;
@@ -1079,7 +1079,7 @@ namespace JsRTApiTest
10791079
REQUIRE(oldProtect == PAGE_READWRITE);
10801080
tracker.script = scriptFnToString;
10811081
REQUIRE(JsRunSerializedScriptWithCallback(
1082-
[](JsSourceContext sourceContext, const wchar_t** scriptBuffer)
1082+
[](JsSourceContext sourceContext, const WCHAR** scriptBuffer)
10831083
{
10841084
((ByteCodeCallbackTracker*)sourceContext)->loadedScript = true;
10851085
*scriptBuffer = ((ByteCodeCallbackTracker*)sourceContext)->script;
@@ -1619,7 +1619,7 @@ namespace JsRTApiTest
16191619
REQUIRE(JsCreateFunction(ExternalFunctionPostScriptAbortionCallback, nullptr, &postScriptAbortFunction) == JsNoError);
16201620
JsValueRef scriptTextArg = JS_INVALID_REFERENCE;
16211621

1622-
wchar_t *scriptText = const_cast<wchar_t *>(terminationTests[i]);
1622+
WCHAR *scriptText = const_cast<WCHAR *>(terminationTests[i]);
16231623
REQUIRE(JsPointerToString(scriptText, wcslen(scriptText), &scriptTextArg) == JsNoError);
16241624
JsValueRef args[] = { scriptTextArg };
16251625

bin/ch/CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,13 @@ target_include_directories (ch
3434

3535
if(STATIC_LIBRARY)
3636
if(CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)
37-
set(LINKER_START_GROUP -Wl,--start-group)
38-
set(LINKER_END_GROUP -Wl,--end-group -static-libstdc++)
37+
set(LINKER_START_GROUP -pie -Wl,--start-group)
38+
set(LINKER_END_GROUP -Wl,--end-group)
39+
if (CC_TARGET_OS_LINUX) # do not embed libstdc++ statically on Android
40+
set(LINKER_END_GROUP "${LINKER_END_GROUP} -static-libstdc++")
41+
else()
42+
set(LINKER_END_GROUP "${LINKER_END_GROUP} -llog")
43+
endif()
3944
elseif(CC_TARGET_OS_OSX)
4045
set(LINKER_START_GROUP -Wl,-force_load,)
4146
endif()

bin/ch/ChakraRtInterface.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,9 @@ bool ChakraRTInterface::LoadChakraDll(ArgInfo* argInfo, HINSTANCE *outLibrary)
141141
m_jsApiHooks.pfJsrtParse = (JsAPIHooks::JsrtParse)GetChakraCoreSymbol(library, "JsParse");
142142
m_jsApiHooks.pfJsrtSerialize = (JsAPIHooks::JsrtSerialize)GetChakraCoreSymbol(library, "JsSerialize");
143143
m_jsApiHooks.pfJsrtRunSerialized = (JsAPIHooks::JsrtRunSerialized)GetChakraCoreSymbol(library, "JsRunSerialized");
144-
m_jsApiHooks.pfJsrtCreateStringUtf8 = (JsAPIHooks::JsrtCreateStringUtf8)GetChakraCoreSymbol(library, "JsCreateStringUtf8");
145-
m_jsApiHooks.pfJsrtCopyStringUtf8 = (JsAPIHooks::JsrtCopyStringUtf8)GetChakraCoreSymbol(library, "JsCopyStringUtf8");
146-
m_jsApiHooks.pfJsrtCreatePropertyIdUtf8= (JsAPIHooks::JsrtCreatePropertyIdUtf8)GetChakraCoreSymbol(library, "JsCreatePropertyIdUtf8");
144+
m_jsApiHooks.pfJsrtCreateString = (JsAPIHooks::JsrtCreateString)GetChakraCoreSymbol(library, "JsCreateString");
145+
m_jsApiHooks.pfJsrtCopyString = (JsAPIHooks::JsrtCopyString)GetChakraCoreSymbol(library, "JsCopyString");
146+
m_jsApiHooks.pfJsrtCreatePropertyId = (JsAPIHooks::JsrtCreatePropertyId)GetChakraCoreSymbol(library, "JsCreatePropertyId");
147147
m_jsApiHooks.pfJsrtCreateExternalArrayBuffer = (JsAPIHooks::JsrtCreateExternalArrayBuffer)GetChakraCoreSymbol(library, "JsCreateExternalArrayBuffer");
148148

149149
m_jsApiHooks.pfJsrtTTDCreateRecordRuntime = (JsAPIHooks::JsrtTTDCreateRecordRuntimePtr)GetChakraCoreSymbol(library, "JsTTDCreateRecordRuntime");

bin/ch/ChakraRtInterface.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ struct JsAPIHooks
7373
typedef JsErrorCode(WINAPI *JsrtParse)(JsValueRef script, JsSourceContext sourceContext, JsValueRef sourceUrl, JsParseScriptAttributes parseAttributes, JsValueRef *result);
7474
typedef JsErrorCode(WINAPI *JsrtSerialize)(JsValueRef script, JsValueRef *buffer, JsParseScriptAttributes parseAttributes);
7575
typedef JsErrorCode(WINAPI *JsrtRunSerialized)(JsValueRef buffer, JsSerializedLoadScriptCallback scriptLoadCallback, JsSourceContext sourceContext, JsValueRef sourceUrl, JsValueRef * result);
76-
typedef JsErrorCode(WINAPI *JsrtCopyStringUtf8)(JsValueRef value, unsigned char* buffer, size_t bufferSize, size_t* written);
77-
typedef JsErrorCode(WINAPI *JsrtCreateStringUtf8)(const unsigned char *content, size_t length, JsValueRef *value);
76+
typedef JsErrorCode(WINAPI *JsrtCopyString)(JsValueRef value, char* buffer, size_t bufferSize, size_t* written);
77+
typedef JsErrorCode(WINAPI *JsrtCreateString)(const char *content, size_t length, JsValueRef *value);
7878
typedef JsErrorCode(WINAPI *JsrtCreateExternalArrayBuffer)(void *data, unsigned int byteLength, JsFinalizeCallback finalizeCallback, void *callbackState, JsValueRef *result);
79-
typedef JsErrorCode(WINAPI *JsrtCreatePropertyIdUtf8)(const char *name, size_t length, JsPropertyIdRef *propertyId);
79+
typedef JsErrorCode(WINAPI *JsrtCreatePropertyId)(const char *name, size_t length, JsPropertyIdRef *propertyId);
8080

8181
typedef JsErrorCode(WINAPI *JsrtTTDCreateRecordRuntimePtr)(JsRuntimeAttributes attributes, const byte* infoUri, size_t infoUriCount, size_t snapInterval, size_t snapHistoryLength, JsTTDInitializeForWriteLogStreamCallback writeInitializeFunction, TTDOpenResourceStreamCallback openResourceStream, JsTTDReadBytesFromStreamCallback readBytesFromStream, JsTTDWriteBytesToStreamCallback writeBytesToStream, JsTTDFlushAndCloseStreamCallback flushAndCloseStream, JsThreadServiceCallback threadService, JsRuntimeHandle *runtime);
8282
typedef JsErrorCode(WINAPI *JsrtTTDCreateReplayRuntimePtr)(JsRuntimeAttributes attributes, const byte* infoUri, size_t infoUriCount, bool enableDebugging, JsTTDInitializeForWriteLogStreamCallback writeInitializeFunction, TTDOpenResourceStreamCallback openResourceStream, JsTTDReadBytesFromStreamCallback readBytesFromStream, JsTTDWriteBytesToStreamCallback writeBytesToStream, JsTTDFlushAndCloseStreamCallback flushAndCloseStream, JsThreadServiceCallback threadService, JsRuntimeHandle *runtime);
@@ -164,9 +164,9 @@ struct JsAPIHooks
164164
JsrtParse pfJsrtParse;
165165
JsrtSerialize pfJsrtSerialize;
166166
JsrtRunSerialized pfJsrtRunSerialized;
167-
JsrtCreateStringUtf8 pfJsrtCreateStringUtf8;
168-
JsrtCopyStringUtf8 pfJsrtCopyStringUtf8;
169-
JsrtCreatePropertyIdUtf8 pfJsrtCreatePropertyIdUtf8;
167+
JsrtCreateString pfJsrtCreateString;
168+
JsrtCopyString pfJsrtCopyString;
169+
JsrtCreatePropertyId pfJsrtCreatePropertyId;
170170
JsrtCreateExternalArrayBuffer pfJsrtCreateExternalArrayBuffer;
171171

172172
JsrtTTDCreateRecordRuntimePtr pfJsrtTTDCreateRecordRuntime;
@@ -368,9 +368,9 @@ class ChakraRTInterface
368368
static JsErrorCode WINAPI JsParse(JsValueRef script, JsSourceContext sourceContext, JsValueRef sourceUrl, JsParseScriptAttributes parseAttributes, JsValueRef *result) { return HOOK_JS_API(Parse(script, sourceContext, sourceUrl, parseAttributes, result)); }
369369
static JsErrorCode WINAPI JsSerialize(JsValueRef script, JsValueRef *buffer, JsParseScriptAttributes parseAttributes) { return HOOK_JS_API(Serialize(script, buffer, parseAttributes)); }
370370
static JsErrorCode WINAPI JsRunSerialized(JsValueRef buffer, JsSerializedLoadScriptCallback scriptLoadCallback, JsSourceContext sourceContext, JsValueRef sourceUrl, JsValueRef * result) { return HOOK_JS_API(RunSerialized(buffer, scriptLoadCallback, sourceContext, sourceUrl, result)); }
371-
static JsErrorCode WINAPI JsCopyStringUtf8(JsValueRef value, unsigned char* buffer, size_t bufferSize, size_t* written) { return HOOK_JS_API(CopyStringUtf8(value, buffer, bufferSize, written)); }
372-
static JsErrorCode WINAPI JsCreateStringUtf8(const unsigned char *content, size_t length, JsValueRef *value) { return HOOK_JS_API(CreateStringUtf8(content, length, value)); }
373-
static JsErrorCode WINAPI JsCreatePropertyIdUtf8(const char *name, size_t length, JsPropertyIdRef *propertyId) { return HOOK_JS_API(CreatePropertyIdUtf8(name, length, propertyId)); }
371+
static JsErrorCode WINAPI JsCopyString(JsValueRef value, char* buffer, size_t bufferSize, size_t* written) { return HOOK_JS_API(CopyString(value, buffer, bufferSize, written)); }
372+
static JsErrorCode WINAPI JsCreateString(const char *content, size_t length, JsValueRef *value) { return HOOK_JS_API(CreateString(content, length, value)); }
373+
static JsErrorCode WINAPI JsCreatePropertyId(const char *name, size_t length, JsPropertyIdRef *propertyId) { return HOOK_JS_API(CreatePropertyId(name, length, propertyId)); }
374374
static JsErrorCode WINAPI JsCreateExternalArrayBuffer(void *data, unsigned int byteLength, JsFinalizeCallback finalizeCallback, void *callbackState, JsValueRef *result) { return HOOK_JS_API(CreateExternalArrayBuffer(data, byteLength, finalizeCallback, callbackState, result)); }
375375
};
376376

bin/ch/Debugger.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,8 @@ bool Debugger::Initialize()
235235
(void*)controllerScript, (unsigned int)strlen(controllerScript),
236236
nullptr, nullptr, &scriptSource));
237237
JsValueRef fname;
238-
ChakraRTInterface::JsCreateStringUtf8(
239-
(const unsigned char*)"DbgController.js", strlen("DbgController.js"), &fname);
238+
ChakraRTInterface::JsCreateString(
239+
"DbgController.js", strlen("DbgController.js"), &fname);
240240
IfJsrtErrorFailLogAndRetFalse(ChakraRTInterface::JsParse(scriptSource,
241241
JS_SOURCE_CONTEXT_NONE, fname, JsParseScriptAttributeLibraryCode,
242242
&globalFunc));
@@ -323,8 +323,8 @@ bool Debugger::SetBaseline()
323323
script[numChars] = '\0';
324324

325325
JsValueRef wideScriptRef;
326-
IfJsrtErrorFailLogAndRetFalse(ChakraRTInterface::JsCreateStringUtf8(
327-
(const unsigned char*)script, strlen(script), &wideScriptRef));
326+
IfJsrtErrorFailLogAndRetFalse(ChakraRTInterface::JsCreateString(
327+
script, strlen(script), &wideScriptRef));
328328

329329
this->CallFunctionNoResult("SetBaseline", wideScriptRef);
330330
}

bin/ch/Debugger.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ static const char controllerScript[] = {
1010
'\0'
1111
};
1212
#else
13-
static const char controllerScript[] = { '\0' };
13+
#include "DbgController.js.h"
1414
#endif
15-
15+
1616
class Debugger
1717
{
1818
public:

0 commit comments

Comments
 (0)