Commit graph

86107 commits

Author SHA1 Message Date
Dale Glass
0369949d9b Add tests for object registration and exception raising 2023-05-19 00:17:39 +02:00
Dale Glass
cd02b22bd7 Don't crash in uncaughtException() if there isn't an exception 2023-05-19 00:17:39 +02:00
Dale Glass
4beb5eceeb Tests for runtime exceptions and throw() 2023-05-19 00:17:39 +02:00
Dale Glass
cb0c62024d Throw the right exception class, and add the thrown value to it 2023-05-19 00:17:39 +02:00
Dale Glass
2a5ec7db3d Rework tests, add tests for exceptions 2023-05-19 00:17:39 +02:00
Dale Glass
bb74c2ecc9 Allow accessing engine exceptions from ScriptManager 2023-05-19 00:17:39 +02:00
Dale Glass
de02da5fda Register more metatypes -- more work needed 2023-05-19 00:17:39 +02:00
Dale Glass
b1e2a94d71 Deduplicate QDebug output 2023-05-19 00:17:39 +02:00
Dale Glass
8d6270392d Make ScriptEngine a QObject instead of the derived class
Fix signal -- only needs to be in ScriptEngine
2023-05-19 00:17:39 +02:00
Dale Glass
67e7a7375a Further exception work on V8
* Get rid of maybeEmitUncaughtException
* Mostly get rid of makeError
* Introduce exception hierarchy, change exceptions to shared_ptr
* Simplify exception throwing code
2023-05-19 00:17:39 +02:00
Dale Glass
c0e62c5cc2 Initial exception handling
Make exception handling use the new ScriptException class.
Add exception signal
Throw exceptions in script evaluation
Remove references to ScriptManager from ScriptEngine
2023-05-19 00:17:39 +02:00
2bcd1106d1 Fixed ScriptObjectV8Proxy access after delete 2023-05-19 00:17:39 +02:00
27554da415 Addeed V8 getters/setters to ScriptVariantV8Proxy, fixed animation scripting 2023-05-19 00:17:39 +02:00
4e91765a3f Reverted change that broke AnimationObjec scripting interface 2023-05-19 00:17:38 +02:00
3be4fdc33d Fixed deadlock in updating animation state handlers 2023-05-19 00:17:38 +02:00
cae1e1195d V8 QObject pointer handling changes 2023-05-19 00:17:38 +02:00
5e5003ff03 Fixed crash on standing up from sit script 2023-05-19 00:17:38 +02:00
8e718262bd Fixed object containing UniquePersistent 2023-05-19 00:17:38 +02:00
9fd2f4ed08 Fix broken hifi-deps CONTROL file 2023-05-19 00:17:38 +02:00
acc658ee80 Fixed deadlock in Create App 2023-05-19 00:17:38 +02:00
ae7d229d0e Fix copyright headers 2023-05-19 00:17:38 +02:00
Dale Glass
02a0e33e95 Add NETWORKLESS_TEST_SCRIPT type to NetworkManager.
This is a slightly hacky way to make ScriptManager work without any
networking, and minimize the number of dependencies needed to run
a test.
2023-05-19 00:17:38 +02:00
12f239b18c Fix V8 memory leak and persistend handle problems 2023-05-19 00:17:38 +02:00
Dale Glass
84fd17cb66 Review fixes 2023-05-19 00:17:38 +02:00
Dale Glass
0f46fb9b4d Add a ScriptManagerScriptingInterface.cpp, will be useful later. 2023-05-19 00:17:38 +02:00
Dale Glass
a13723990e More Doxygen for ScriptEngine 2023-05-19 00:17:38 +02:00
Dale Glass
36cba56325 A bit more documentation 2023-05-19 00:17:38 +02:00
Dale Glass
4d70155e59 Create ScriptManagerScriptingInterface to move off the scripting API into its own class
Add a lot of documentation
2023-05-19 00:17:38 +02:00
Dale Glass
9e21792508 Some minor improvements to Doxygen generation
Enable graphs, use SVG
2023-05-19 00:17:38 +02:00
Dale Glass
e35aa8046d Add more Doxygen docs
Doesn't work right in ScriptManager, looks like a conflict with JSDoc
2023-05-19 00:17:38 +02:00
887ebd5365 Removed deadlock in signal proxy disconnect again 2023-05-19 00:17:38 +02:00
d25e5491eb Fixed V8 crash with Create App 2023-05-19 00:17:38 +02:00
b554fc70ea Added script timers performance debugging 2023-05-19 00:17:38 +02:00
faf9b75487 Added signal time and call count debugging 2023-05-19 00:17:38 +02:00
1ad1aee11f Minor scripting-related fixes 2023-05-19 00:17:38 +02:00
5cf32a968c V8 fixes 2023-05-19 00:17:37 +02:00
f65e72c8f2 Listing objects and their properties on API debugger now works 2023-05-19 00:17:37 +02:00
37cc62d082 Fix problem with sit script 2023-05-19 00:17:37 +02:00
5809576577 Fixed Create App 2023-05-19 00:17:37 +02:00
c3417b807c Increased thread safety in V8 2023-05-19 00:17:37 +02:00
57a2dccc6a V8 bugfixes 2023-05-19 00:17:37 +02:00
89f29ce5ca Safer demarshal functions with no void pointers 2023-05-19 00:17:37 +02:00
acbec55b70 Further work on V8 2023-05-19 00:17:37 +02:00
b786ffccd5 Added more debug info to crash with signals 2023-05-19 00:17:37 +02:00
3e692a60b4 V8 fixes 2023-05-19 00:17:37 +02:00
3a5b927979 Functions connected to signals now use context that was active during connecting 2023-05-19 00:17:37 +02:00
044cd506a6 Script engine thread safety improvements 2023-05-19 00:17:37 +02:00
6bd8a8d503 V8 threading safetyu improvements 2023-05-19 00:17:37 +02:00
5099e68b56 V8 fixes, including calls and signals 2023-05-19 00:17:37 +02:00
c8898e8366 Added script include test 2023-05-19 00:17:37 +02:00