Commit Graph

66900 Commits

Author SHA1 Message Date
Nikolay Nikolov
553cee72eb * tsk_wasm_suspending renamed tsk_wasm_suspending_first 2023-06-17 12:28:12 +03:00
Nikolay Nikolov
f800e40595 + print an error message, in case 'promising' exports are used on non-WebAssembly platform 2023-06-16 15:44:58 +03:00
Nikolay Nikolov
2f1ccd6f2a + support 'promising last' exports 2023-06-16 11:00:19 +03:00
Nikolay Nikolov
9d893b5d0d * tcpuprocdef.promising_export_name renamed promising_first_export_name 2023-06-16 10:50:35 +03:00
Nikolay Nikolov
9ea1f6de19 + added 'last' or 'first' to the internal promising wrapper name 2023-06-13 12:15:46 +03:00
Nikolay Nikolov
ed748a65b4 + added last:boolean parameter to implement_wasm_promising_wrapper 2023-06-13 12:14:09 +03:00
Nikolay Nikolov
2eb3f5f0b8 + introduced implement_wasm_promising_wrapper 2023-06-13 12:10:54 +03:00
Nikolay Nikolov
c67bcf0032 + introduced tcpuprocdef.add_promising_export 2023-06-13 11:57:23 +03:00
Nikolay Nikolov
601c8f9c8b * assert that any exported promising function is not synthetic 2023-06-13 11:44:10 +03:00
Nikolay Nikolov
c6b059ede6 * eo_promising renamed eo_promising_first 2023-06-13 11:42:15 +03:00
Nikolay Nikolov
4d62764fa3 + also allow declaring an external as 'suspending first' 2023-06-13 09:56:44 +03:00
Nikolay Nikolov
0f89852908 + support 'suspending last' externals as well 2023-06-13 09:34:54 +03:00
Nikolay Nikolov
aedacd9160 + comment for the po_wasm_suspending value 2023-06-13 09:12:59 +03:00
Nikolay Nikolov
f6cd75add9 + comments for tsk_wasm_suspending and tsk_wasm_promising 2023-06-13 09:11:02 +03:00
Nikolay Nikolov
d2396a848b + added a basic JS promise test 2023-06-11 16:59:29 +03:00
Nikolay Nikolov
c22b6c10b7 * fixed generating wrappers for suspending functions that return something, other than double 2023-06-11 16:50:49 +03:00
Nikolay Nikolov
15c95e0ac7 + initial implementation of WebAssembly promising exports 2023-06-11 16:43:45 +03:00
Nikolay Nikolov
80c8575636 * fixed creating suspended wrappers for functions without parameters 2023-06-11 15:24:55 +03:00
Nikolay Nikolov
1a4b97a62a * fixed compilation with -Sew 2023-06-11 15:09:49 +03:00
Nikolay Nikolov
b97f3a08ed * since exporting webassembly globals doesn't yet work accross units, added a
workaround by using property getters and setters
2023-06-11 15:00:56 +03:00
Nikolay Nikolov
b247302871 + initial attempt (not fully working, yet) at implementing WebAssembly suspending externals 2023-06-11 14:07:35 +03:00
Nikolay Nikolov
b891cef5d2 * ppudump compilation fixed 2023-06-11 12:00:54 +03:00
Nikolay Nikolov
95d7bdc3da + added parser support for the 'suspending' directive 2023-06-11 11:57:33 +03:00
Nikolay Nikolov
9b4366e4f6 + support externref and funcref WebAssembly globals in the internal object writer 2023-06-11 10:41:56 +03:00
Nikolay Nikolov
8eea58f649 + support WebAssembly reference types as WebAssembly globals 2023-06-11 10:31:12 +03:00
Nikolay Nikolov
d38dbcac8f * use tcallparanode.parasym to find the tparavarsym in twasmcallnode.pass_typecheck 2023-06-11 09:29:07 +03:00
Nikolay Nikolov
e6cbdba0bd * fixed crash in twasmcallnode.pass_typecheck when there is no procdefinition (for generic methods) 2023-06-11 09:23:56 +03:00
Nikolay Nikolov
c117c0abf5 * fixed another crash, introduced in 6ff566350c 2023-06-11 09:06:59 +03:00
Nikolay Nikolov
3d55ac9d09 * fixed bug, introduced in 6ff566350c, due to
missing parenthesis
2023-06-11 09:01:07 +03:00
Nikolay Nikolov
64569df017 * disallow passing WebAssembly reference types as untyped out parameters as well 2023-06-11 08:58:03 +03:00
Nikolay Nikolov
6ff566350c * disallow passing WebAssembly reference types as untyped var/constref/const parameters 2023-06-11 08:56:27 +03:00
Nikolay Nikolov
acf8fe59d0 * fixed program name in test 2023-06-11 08:32:25 +03:00
Nikolay Nikolov
f670ebbb28 * disallow WebAssembly reference types to be declared as var, constref or out parameters 2023-06-11 08:17:06 +03:00
Nikolay Nikolov
8cd6606970 + support nil comparison of WebAssembly reference types (externref and funcref) 2023-06-11 07:17:04 +03:00
Nikolay Nikolov
9daabb2123 + support using nil constants for setting values of WebAssembly reference types (funcref and externref) 2023-06-11 06:23:02 +03:00
Nikolay Nikolov
ca03841724 - removed redundant semicolon 2023-06-11 06:07:13 +03:00
Nikolay Nikolov
7abe3eeb84 + also test that pointers cannot be converted to externref implicitly 2023-06-11 05:56:49 +03:00
Nikolay Nikolov
a47a1c093a * disallow conversion between regular pointers and WasmExternRef 2023-06-11 05:28:39 +03:00
Nikolay Nikolov
021c1a7bb4 * fixed test's program name 2023-06-11 04:29:18 +03:00
Nikolay Nikolov
fcd5ecfcce + some basic tests for WebAssembly funcref types added 2023-06-11 04:27:05 +03:00
Nikolay Nikolov
8b138aa059 + also check for assigned(left) after calling inherited in twasmaddrnode.pass_typecheck, to avoid another crash 2023-06-11 04:11:02 +03:00
Nikolay Nikolov
84b60d3f00 * check for codegenerror in twasmaddrnode.pass_typecheck and exit early, to avoid crashes 2023-06-11 04:05:17 +03:00
Nikolay Nikolov
8743f72f11 + disallow taking the address of WebAssembly externref type 2023-06-11 04:01:58 +03:00
Nikolay Nikolov
65b175cebd + simple test for WasmExternRef 2023-06-11 03:35:25 +03:00
Nikolay Nikolov
fa9873c6eb Merge branch 'main' into wasm_reference_types 2023-06-11 03:08:40 +03:00
Michaël Van Canneyt
0f5c126a45 * Correct filename extensions for qoi. Fixes issue #40314 2023-06-10 22:29:26 +02:00
marcoonthegit
9bfb45dc05 * move ifdefed part from tvitem* to tvitemex*, closes #40312 2023-06-10 16:57:11 +02:00
Nikolay Nikolov
a0b78ad1f7 + WebAssembly internal assembler support for the ref.is_null instruction 2023-06-07 06:38:25 +03:00
Nikolay Nikolov
2039509cfb + WebAssembly internal asm support for the ref.null instruction 2023-06-07 06:13:17 +03:00
Nikolay Nikolov
11712658b0 + implemented WebAssembly code generator support for funcref and externref data
types, using new register types R_FUNCREFREGISTER and R_EXTERNREFREGISTER
2023-06-07 05:25:57 +03:00