1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-09 23:34:20 +00:00

Javascript: Replace old engine with QuickJS

This commit is contained in:
attila 2023-03-03 22:58:11 +01:00 committed by Anthony Nicholls
parent 3af4adf82d
commit db3c2c6a52
52 changed files with 72999 additions and 1865 deletions

View file

@ -1047,6 +1047,17 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_core/files/juce_TemporaryFile.h"
"../../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp"
"../../../../../modules/juce_core/files/juce_WildcardFileFilter.h"
"../../../../../modules/juce_core/javascript/choc/containers/choc_Value.h"
"../../../../../modules/juce_core/javascript/choc/javascript/choc_javascript.h"
"../../../../../modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h"
"../../../../../modules/juce_core/javascript/choc/math/choc_MathHelpers.h"
"../../../../../modules/juce_core/javascript/choc/platform/choc_Assert.h"
"../../../../../modules/juce_core/javascript/choc/platform/choc_DisableAllWarnings.h"
"../../../../../modules/juce_core/javascript/choc/platform/choc_ReenableAllWarnings.h"
"../../../../../modules/juce_core/javascript/choc/text/choc_FloatToString.h"
"../../../../../modules/juce_core/javascript/choc/text/choc_JSON.h"
"../../../../../modules/juce_core/javascript/choc/text/choc_StringUtilities.h"
"../../../../../modules/juce_core/javascript/choc/text/choc_UTF8.h"
"../../../../../modules/juce_core/javascript/juce_Javascript.cpp"
"../../../../../modules/juce_core/javascript/juce_Javascript.h"
"../../../../../modules/juce_core/javascript/juce_JSON.cpp"
@ -3163,6 +3174,17 @@ set_source_files_properties(
"../../../../../modules/juce_core/files/juce_TemporaryFile.h"
"../../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp"
"../../../../../modules/juce_core/files/juce_WildcardFileFilter.h"
"../../../../../modules/juce_core/javascript/choc/containers/choc_Value.h"
"../../../../../modules/juce_core/javascript/choc/javascript/choc_javascript.h"
"../../../../../modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h"
"../../../../../modules/juce_core/javascript/choc/math/choc_MathHelpers.h"
"../../../../../modules/juce_core/javascript/choc/platform/choc_Assert.h"
"../../../../../modules/juce_core/javascript/choc/platform/choc_DisableAllWarnings.h"
"../../../../../modules/juce_core/javascript/choc/platform/choc_ReenableAllWarnings.h"
"../../../../../modules/juce_core/javascript/choc/text/choc_FloatToString.h"
"../../../../../modules/juce_core/javascript/choc/text/choc_JSON.h"
"../../../../../modules/juce_core/javascript/choc/text/choc_StringUtilities.h"
"../../../../../modules/juce_core/javascript/choc/text/choc_UTF8.h"
"../../../../../modules/juce_core/javascript/juce_Javascript.cpp"
"../../../../../modules/juce_core/javascript/juce_Javascript.h"
"../../../../../modules/juce_core/javascript/juce_JSON.cpp"

View file

@ -3408,6 +3408,17 @@
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_RangedDirectoryIterator.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_TemporaryFile.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_WildcardFileFilter.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\containers\choc_Value.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript_QuickJS.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\math\choc_MathHelpers.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_Assert.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_DisableAllWarnings.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_ReenableAllWarnings.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_FloatToString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_JSON.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_StringUtilities.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_UTF8.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/>

View file

@ -431,6 +431,24 @@
<Filter Include="JUCE Modules\juce_core\files">
<UniqueIdentifier>{7868764A-6572-381A-906C-9C26792A4C29}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\containers">
<UniqueIdentifier>{259B70B2-0C68-1990-EC86-42DAA564D388}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\javascript">
<UniqueIdentifier>{19C3DF40-ABE4-49F7-CDD2-7A592EA01F73}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\math">
<UniqueIdentifier>{20DE6E65-B828-EB00-17F7-541D368DFA9B}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\platform">
<UniqueIdentifier>{5CCB85C1-6052-8F8C-FCA7-E34D5514A0EE}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\text">
<UniqueIdentifier>{375615B1-7B81-BB18-920B-926E88A78F9A}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc">
<UniqueIdentifier>{17CA846A-C621-9676-4FBD-8B04DBAA4488}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript">
<UniqueIdentifier>{03678508-A517-48BB-FB4A-485628C34E08}</UniqueIdentifier>
</Filter>
@ -5331,6 +5349,39 @@
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_WildcardFileFilter.h">
<Filter>JUCE Modules\juce_core\files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\containers\choc_Value.h">
<Filter>JUCE Modules\juce_core\javascript\choc\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript.h">
<Filter>JUCE Modules\juce_core\javascript\choc\javascript</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript_QuickJS.h">
<Filter>JUCE Modules\juce_core\javascript\choc\javascript</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\math\choc_MathHelpers.h">
<Filter>JUCE Modules\juce_core\javascript\choc\math</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_Assert.h">
<Filter>JUCE Modules\juce_core\javascript\choc\platform</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_DisableAllWarnings.h">
<Filter>JUCE Modules\juce_core\javascript\choc\platform</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_ReenableAllWarnings.h">
<Filter>JUCE Modules\juce_core\javascript\choc\platform</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_FloatToString.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_JSON.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_StringUtilities.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_UTF8.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h">
<Filter>JUCE Modules\juce_core\javascript</Filter>
</ClInclude>

View file

@ -3408,6 +3408,17 @@
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_RangedDirectoryIterator.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_TemporaryFile.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_WildcardFileFilter.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\containers\choc_Value.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript_QuickJS.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\math\choc_MathHelpers.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_Assert.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_DisableAllWarnings.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_ReenableAllWarnings.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_FloatToString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_JSON.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_StringUtilities.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_UTF8.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/>

View file

@ -431,6 +431,24 @@
<Filter Include="JUCE Modules\juce_core\files">
<UniqueIdentifier>{7868764A-6572-381A-906C-9C26792A4C29}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\containers">
<UniqueIdentifier>{259B70B2-0C68-1990-EC86-42DAA564D388}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\javascript">
<UniqueIdentifier>{19C3DF40-ABE4-49F7-CDD2-7A592EA01F73}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\math">
<UniqueIdentifier>{20DE6E65-B828-EB00-17F7-541D368DFA9B}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\platform">
<UniqueIdentifier>{5CCB85C1-6052-8F8C-FCA7-E34D5514A0EE}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\text">
<UniqueIdentifier>{375615B1-7B81-BB18-920B-926E88A78F9A}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc">
<UniqueIdentifier>{17CA846A-C621-9676-4FBD-8B04DBAA4488}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript">
<UniqueIdentifier>{03678508-A517-48BB-FB4A-485628C34E08}</UniqueIdentifier>
</Filter>
@ -5331,6 +5349,39 @@
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_WildcardFileFilter.h">
<Filter>JUCE Modules\juce_core\files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\containers\choc_Value.h">
<Filter>JUCE Modules\juce_core\javascript\choc\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript.h">
<Filter>JUCE Modules\juce_core\javascript\choc\javascript</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript_QuickJS.h">
<Filter>JUCE Modules\juce_core\javascript\choc\javascript</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\math\choc_MathHelpers.h">
<Filter>JUCE Modules\juce_core\javascript\choc\math</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_Assert.h">
<Filter>JUCE Modules\juce_core\javascript\choc\platform</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_DisableAllWarnings.h">
<Filter>JUCE Modules\juce_core\javascript\choc\platform</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_ReenableAllWarnings.h">
<Filter>JUCE Modules\juce_core\javascript\choc\platform</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_FloatToString.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_JSON.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_StringUtilities.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_UTF8.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h">
<Filter>JUCE Modules\juce_core\javascript</Filter>
</ClInclude>

View file

@ -3408,6 +3408,17 @@
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_RangedDirectoryIterator.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_TemporaryFile.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_WildcardFileFilter.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\containers\choc_Value.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript_QuickJS.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\math\choc_MathHelpers.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_Assert.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_DisableAllWarnings.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_ReenableAllWarnings.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_FloatToString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_JSON.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_StringUtilities.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_UTF8.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSON.h"/>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_JSONSerialisation.h"/>

View file

@ -431,6 +431,24 @@
<Filter Include="JUCE Modules\juce_core\files">
<UniqueIdentifier>{7868764A-6572-381A-906C-9C26792A4C29}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\containers">
<UniqueIdentifier>{259B70B2-0C68-1990-EC86-42DAA564D388}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\javascript">
<UniqueIdentifier>{19C3DF40-ABE4-49F7-CDD2-7A592EA01F73}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\math">
<UniqueIdentifier>{20DE6E65-B828-EB00-17F7-541D368DFA9B}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\platform">
<UniqueIdentifier>{5CCB85C1-6052-8F8C-FCA7-E34D5514A0EE}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc\text">
<UniqueIdentifier>{375615B1-7B81-BB18-920B-926E88A78F9A}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript\choc">
<UniqueIdentifier>{17CA846A-C621-9676-4FBD-8B04DBAA4488}</UniqueIdentifier>
</Filter>
<Filter Include="JUCE Modules\juce_core\javascript">
<UniqueIdentifier>{03678508-A517-48BB-FB4A-485628C34E08}</UniqueIdentifier>
</Filter>
@ -5331,6 +5349,39 @@
<ClInclude Include="..\..\..\..\modules\juce_core\files\juce_WildcardFileFilter.h">
<Filter>JUCE Modules\juce_core\files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\containers\choc_Value.h">
<Filter>JUCE Modules\juce_core\javascript\choc\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript.h">
<Filter>JUCE Modules\juce_core\javascript\choc\javascript</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\javascript\choc_javascript_QuickJS.h">
<Filter>JUCE Modules\juce_core\javascript\choc\javascript</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\math\choc_MathHelpers.h">
<Filter>JUCE Modules\juce_core\javascript\choc\math</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_Assert.h">
<Filter>JUCE Modules\juce_core\javascript\choc\platform</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_DisableAllWarnings.h">
<Filter>JUCE Modules\juce_core\javascript\choc\platform</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\platform\choc_ReenableAllWarnings.h">
<Filter>JUCE Modules\juce_core\javascript\choc\platform</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_FloatToString.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_JSON.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_StringUtilities.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\choc\text\choc_UTF8.h">
<Filter>JUCE Modules\juce_core\javascript\choc\text</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_core\javascript\juce_Javascript.h">
<Filter>JUCE Modules\juce_core\javascript</Filter>
</ClInclude>

View file

@ -52,6 +52,28 @@
#include "../Assets/DemoUtilities.h"
static constexpr const char javascriptSource[] = R"x(/*
Javascript! In this simple demo, the native
code provides an object called 'Demo' which
has a method 'print' that writes to the
console below...
*/
Demo.print ("Hello World in JUCE + Javascript!");
Demo.print ("");
function factorial (n)
{
var total = 1;
while (n > 0)
total = total * n--;
return total;
}
for (var i = 1; i < 10; ++i)
Demo.print ("Factorial of " + i + " = " + factorial (i));
)x";
//==============================================================================
class JavaScriptDemo final : public Component,
private CodeDocument::Listener,
@ -75,28 +97,7 @@ public:
codeDocument.addListener (this);
editor->loadContent (
"/*\n"
" Javascript! In this simple demo, the native\n"
" code provides an object called \'Demo\' which\n"
" has a method \'print\' that writes to the\n"
" console below...\n"
"*/\n"
"\n"
"Demo.print (\"Hello World in JUCE + Javascript!\");\n"
"Demo.print (\"\");\n"
"\n"
"function factorial (n)\n"
"{\n"
" var total = 1;\n"
" while (n > 0)\n"
" total = total * n--;\n"
" return total;\n"
"}\n"
"\n"
"for (var i = 1; i < 10; ++i)\n"
" Demo.print (\"Factorial of \" + i \n"
" + \" = \" + factorial (i));\n");
editor->loadContent (javascriptSource);
setSize (600, 750);
}