Commit graph

16 commits

Author SHA1 Message Date
Charlie Gordon
708dbcbf5b
Fix big endian serialization (#269)
* Fix big endian serialization

Big endian serialization was broken because:
- it partially relied on `WORDS_ENDIAN` (unconditionally undef'd in cutils.h)
- endianness was not handled at all in the bc reader.
- `bc_tag_str` was missing the `"RegExp"` string
- `lre_byte_swap()` was broken for `REOP_range` and `REOP_range32`

Modifications:
- remove `WORDS_ENDIAN`
- use `bc_put_u32()` / `bc_put_u64()` in `JS_WriteBigInt()`
- use `bc_get_u32()` / `bc_get_u64()` in `JS_ReadBigInt()`
- handle host endianness in `bc_get_u16()`, `bc_get_u32()`, `bc_get_u64()` and
  `JS_ReadFunctionBytecode()`
- handle optional littleEndian argument as specified in
  `js_dataview_getValue()` and `js_dataview_setValue()`
- fix `bc_tag_str` and `lre_byte_swap()`
2024-03-02 18:38:29 +01:00
Ben Noordhuis
56d60020f4
Fix tcc build, remove PACK macro (#271)
There was no definition of the macro for compilers that were not gcc,
clang or msvc. While it would be easy to add one, a better approach is
to switch to memcpy() and avoid type punning altogether.

Fixes: https://github.com/quickjs-ng/quickjs/issues/270
2024-02-18 13:39:33 +01:00
Rob Loach
229b07b9b2 android: Additional malloc_usable_size() fixes 2024-01-31 07:39:53 +01:00
Rob Loach
412c0011bb android: In NDK, malloc_usable_size() was renamed to dlmalloc_usable_size() 2024-01-29 22:28:58 +01:00
Jason
48e4c63a0e
Add support for compiling with Microsoft Visual Studio C++ (MSVC) (#246) 2024-01-16 12:42:05 +01:00
Saúl Ibarra Corretgé
0a640f5040 Add container_of macro
Ref: c3599515c8
2023-12-23 00:11:41 +01:00
Ben Noordhuis
5cbf8727a6
Retain function source code in serialized bytecode (#218)
Also fix a small memory leak in the output from `qjsc -e`.

Fixes: https://github.com/quickjs-ng/quickjs/issues/217
2023-12-16 01:01:26 +01:00
Felipe Gasper
9de152667f
Add NetBSD support (#177) 2023-12-07 15:48:31 +01:00
Saúl Ibarra Corretgé
18b30961ee DRY malloc_usable_size 2023-12-05 12:34:02 +01:00
Saúl Ibarra Corretgé
bfd8c381cb Add support for building with ClangCL on Windows
Since ClangCL is compatible with MSVC this should get us almost there.

Ref: https://clang.llvm.org/docs/MSVCCompatibility.html
2023-11-30 01:23:09 +01:00
Divy Srivastava
6b78c7f3e1
Implement polymorphic inline caches (#120) 2023-11-29 09:12:02 +01:00
Ben Noordhuis
5c3077e091
Implement RegExp serialization (#153)
JS_WriteObject() and JS_ReadObject() now support RegExp objects.
2023-11-29 08:50:53 +01:00
Ben Noordhuis
bef2a12566
DRY surrogate pair handling (#95) 2023-11-20 09:46:02 +01:00
Ben Noordhuis
162a8b7409
Remove trailing whitespace (#46)
Not purely cosmetic because it breaks navigation with { and } in the
One True Editor.
2023-11-12 10:01:40 +01:00
bellard
8900766099 2020-07-05 release 2020-09-06 19:07:30 +02:00
bellard
91459fb672 2020-01-05 release 2020-09-06 18:53:08 +02:00