Skip to content

Commit

Permalink
add joke build for quickjs-in-quickjs
Browse files Browse the repository at this point in the history
  • Loading branch information
justjake committed Jan 2, 2024
1 parent e63adab commit 28949e3
Show file tree
Hide file tree
Showing 82 changed files with 97,200 additions and 142 deletions.
2 changes: 2 additions & 0 deletions c/interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,8 @@ MaybeAsync(JSBorrowedChar *) QTS_Dump(JSContext *ctx, JSValueConst *obj) {
copy_prop_if_needed(ctx, enumerable_props, *obj, "name");
copy_prop_if_needed(ctx, enumerable_props, *obj, "message");
copy_prop_if_needed(ctx, enumerable_props, *obj, "stack");
copy_prop_if_needed(ctx, enumerable_props, *obj, "fileName");
copy_prop_if_needed(ctx, enumerable_props, *obj, "lineNumber");

// Serialize again.
JSValue enumerable_json = JS_JSONStringify(ctx, enumerable_props, JS_UNDEFINED, JS_UNDEFINED);
Expand Down
78 changes: 78 additions & 0 deletions doc/@jitl/quickjs-ng-purejs-mjs-release-sync/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
[quickjs-emscripten](../../packages.md)**@jitl/quickjs-ng-purejs-mjs-release-sync**[Readme](README.md) \| [Exports](exports.md)

***

# @jitl/quickjs-ng-purejs-mjs-release-sync

Compiled to pure JS, no WebAssembly required. Very slow.

This generated package is part of [quickjs-emscripten](https://github.com/justjake/quickjs-emscripten).
It contains a variant of the quickjs WASM library, and can be used with quickjs-emscripten-core.

```typescript
import variant from "@jitl/quickjs-ng-purejs-mjs-release-sync"
import { newQuickJSWASMModuleFromVariant } from "quickjs-emscripten-core"
const QuickJS = await newQuickJSWASMModuleFromVariant(variant)
```

This variant was built with the following settings:

## Contents

- [Library: quickjs-ng](README.md#library-quickjs-ng)
- [Release mode: release](README.md#release-mode-release)
- [Exports: import](README.md#exports-import)
- [Extra async magic? No](README.md#extra-async-magic-no)
- [Single-file, or separate .wasm file? purejs](README.md#single-file-or-separate-wasm-file-purejs)
- [More details](README.md#more-details)

## Library: quickjs-ng

[quickjs-ng/quickjs](https://github.com/quickjs-ng/quickjs) is a newer fork of quickjs under active community development. It implements more EcmaScript features, and drop some non-standard QuickJS only features like BigFloat. May become the default library in a future version of quickjs-emscripten.

## Release mode: release

Optimized for performance; use when building/deploying your application.

## Exports: import

Exports the following in package.json for the package entrypoint:

- Exports a NodeJS-compatible ESModule. Cannot be imported synchronously from a NodeJS CommonJS module.

## Extra async magic? No

The default, normal build. Note that both variants support regular async functions.

## Single-file, or separate .wasm file? purejs

The C library code is compiled directly to JS. This is the slowest possible option, and is intended only for humorous (quickjs-in-quickjs) use.

## More details

Full variant JSON description:

```json
{
"library": "quickjs-ng",
"releaseMode": "release",
"syncMode": "sync",
"description": "Compiled to pure JS, no WebAssembly required. Very slow.",
"emscriptenInclusion": "purejs",
"exports": {
"import": {
"emscriptenEnvironment": ["web", "worker", "node"]
}
}
}
```

Variant-specific Emscripten build flags:

```json
["-Oz", "-flto", "--closure 1", "-s FILESYSTEM=0", "-s WASM=0", "-s SINGLE_FILE=1"]
```

***

Generated using [typedoc-plugin-markdown](https://www.npmjs.com/package/typedoc-plugin-markdown) and [TypeDoc](https://typedoc.org/)
40 changes: 40 additions & 0 deletions doc/@jitl/quickjs-ng-purejs-mjs-release-sync/exports.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[quickjs-emscripten](../../packages.md)**@jitl/quickjs-ng-purejs-mjs-release-sync**[Readme](README.md) \| [Exports](exports.md)

***

[quickjs-emscripten](../../packages.md) / @jitl/quickjs-ng-purejs-mjs-release-sync

# @jitl/quickjs-ng-purejs-mjs-release-sync

## Contents

- [Variables](exports.md#variables)
- [default](exports.md#default)
- [@jitl/quickjs-ng-purejs-mjs-release-sync](exports.md#jitlquickjs-ng-purejs-mjs-release-sync)

## Variables

### default

> **`const`** **default**: [`QuickJSSyncVariant`](../../quickjs-emscripten/interfaces/QuickJSSyncVariant.md)
### @jitl/quickjs-ng-purejs-mjs-release-sync

[Docs](https://github.com/justjake/quickjs-emscripten/blob/main/doc/@jitl/quickjs-ng-purejs-mjs-release-sync/README.md) |
Compiled to pure JS, no WebAssembly required. Very slow.

| Variable | Setting | Description |
| -- | -- | -- |
| library | quickjs-ng | [quickjs-ng/quickjs](https://github.com/quickjs-ng/quickjs) is a newer fork of quickjs under active community development. It implements more EcmaScript features, and drop some non-standard QuickJS only features like BigFloat. May become the default library in a future version of quickjs-emscripten. |
| releaseMode | release | Optimized for performance; use when building/deploying your application. |
| syncMode | sync | The default, normal build. Note that both variants support regular async functions. |
| emscriptenInclusion | purejs | The C library code is compiled directly to JS. This is the slowest possible option, and is intended only for humorous (quickjs-in-quickjs) use. |
| exports | import | Has these package.json export conditions |

#### Source

index.ts:20

***

Generated using [typedoc-plugin-markdown](https://www.npmjs.com/package/typedoc-plugin-markdown) and [TypeDoc](https://typedoc.org/)
78 changes: 78 additions & 0 deletions doc/@jitl/quickjs-purejs-mjs-release-sync/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
[quickjs-emscripten](../../packages.md)**@jitl/quickjs-purejs-mjs-release-sync**[Readme](README.md) \| [Exports](exports.md)

***

# @jitl/quickjs-purejs-mjs-release-sync

Compiled to pure JS, no WebAssembly required. Very slow.

This generated package is part of [quickjs-emscripten](https://github.com/justjake/quickjs-emscripten).
It contains a variant of the quickjs WASM library, and can be used with quickjs-emscripten-core.

```typescript
import variant from "@jitl/quickjs-purejs-mjs-release-sync"
import { newQuickJSWASMModuleFromVariant } from "quickjs-emscripten-core"
const QuickJS = await newQuickJSWASMModuleFromVariant(variant)
```

This variant was built with the following settings:

## Contents

- [Library: quickjs](README.md#library-quickjs)
- [Release mode: release](README.md#release-mode-release)
- [Exports: import](README.md#exports-import)
- [Extra async magic? No](README.md#extra-async-magic-no)
- [Single-file, or separate .wasm file? purejs](README.md#single-file-or-separate-wasm-file-purejs)
- [More details](README.md#more-details)

## Library: quickjs

The original [bellard/quickjs](https://github.com/bellard/quickjs) library.

## Release mode: release

Optimized for performance; use when building/deploying your application.

## Exports: import

Exports the following in package.json for the package entrypoint:

- Exports a NodeJS-compatible ESModule. Cannot be imported synchronously from a NodeJS CommonJS module.

## Extra async magic? No

The default, normal build. Note that both variants support regular async functions.

## Single-file, or separate .wasm file? purejs

The C library code is compiled directly to JS. This is the slowest possible option, and is intended only for humorous (quickjs-in-quickjs) use.

## More details

Full variant JSON description:

```json
{
"library": "quickjs",
"releaseMode": "release",
"syncMode": "sync",
"description": "Compiled to pure JS, no WebAssembly required. Very slow.",
"emscriptenInclusion": "purejs",
"exports": {
"import": {
"emscriptenEnvironment": ["web", "worker", "node"]
}
}
}
```

Variant-specific Emscripten build flags:

```json
["-Oz", "-flto", "--closure 1", "-s FILESYSTEM=0", "-s WASM=0", "-s SINGLE_FILE=1"]
```

***

Generated using [typedoc-plugin-markdown](https://www.npmjs.com/package/typedoc-plugin-markdown) and [TypeDoc](https://typedoc.org/)
40 changes: 40 additions & 0 deletions doc/@jitl/quickjs-purejs-mjs-release-sync/exports.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[quickjs-emscripten](../../packages.md)**@jitl/quickjs-purejs-mjs-release-sync**[Readme](README.md) \| [Exports](exports.md)

***

[quickjs-emscripten](../../packages.md) / @jitl/quickjs-purejs-mjs-release-sync

# @jitl/quickjs-purejs-mjs-release-sync

## Contents

- [Variables](exports.md#variables)
- [default](exports.md#default)
- [@jitl/quickjs-purejs-mjs-release-sync](exports.md#jitlquickjs-purejs-mjs-release-sync)

## Variables

### default

> **`const`** **default**: [`QuickJSSyncVariant`](../../quickjs-emscripten/interfaces/QuickJSSyncVariant.md)
### @jitl/quickjs-purejs-mjs-release-sync

[Docs](https://github.com/justjake/quickjs-emscripten/blob/main/doc/@jitl/quickjs-purejs-mjs-release-sync/README.md) |
Compiled to pure JS, no WebAssembly required. Very slow.

| Variable | Setting | Description |
| -- | -- | -- |
| library | quickjs | The original [bellard/quickjs](https://github.com/bellard/quickjs) library. |
| releaseMode | release | Optimized for performance; use when building/deploying your application. |
| syncMode | sync | The default, normal build. Note that both variants support regular async functions. |
| emscriptenInclusion | purejs | The C library code is compiled directly to JS. This is the slowest possible option, and is intended only for humorous (quickjs-in-quickjs) use. |
| exports | import | Has these package.json export conditions |

#### Source

[index.ts:20](https://github.com/justjake/quickjs-emscripten/blob/main/packages/variant-quickjs-purejs-mjs-release-sync/src/index.ts#L20)

***

Generated using [typedoc-plugin-markdown](https://www.npmjs.com/package/typedoc-plugin-markdown) and [TypeDoc](https://typedoc.org/)
2 changes: 2 additions & 0 deletions doc/packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
- [@jitl/quickjs-singlefile-browser-debug-asyncify](@jitl/quickjs-singlefile-browser-debug-asyncify/README.md)
- [@jitl/quickjs-singlefile-browser-release-sync](@jitl/quickjs-singlefile-browser-release-sync/README.md)
- [@jitl/quickjs-singlefile-browser-release-asyncify](@jitl/quickjs-singlefile-browser-release-asyncify/README.md)
- [@jitl/quickjs-purejs-mjs-release-sync](@jitl/quickjs-purejs-mjs-release-sync/README.md)
- [@jitl/quickjs-ng-purejs-mjs-release-sync](@jitl/quickjs-ng-purejs-mjs-release-sync/README.md)

***

Expand Down
28 changes: 28 additions & 0 deletions doc/quickjs-emscripten-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ const QuickJS = await newQuickJSWASMModuleFromVariant(releaseVariant)
- [@jitl/quickjs-singlefile-browser-debug-asyncify](README.md#jitlquickjs-singlefile-browser-debug-asyncify)
- [@jitl/quickjs-singlefile-browser-release-sync](README.md#jitlquickjs-singlefile-browser-release-sync)
- [@jitl/quickjs-singlefile-browser-release-asyncify](README.md#jitlquickjs-singlefile-browser-release-asyncify)
- [@jitl/quickjs-purejs-mjs-release-sync](README.md#jitlquickjs-purejs-mjs-release-sync)
- [@jitl/quickjs-ng-purejs-mjs-release-sync](README.md#jitlquickjs-ng-purejs-mjs-release-sync)

## What's a variant?

Expand Down Expand Up @@ -357,6 +359,32 @@ Variant with the WASM data embedded into a browser ESModule.
| emscriptenInclusion | singlefile | The WASM runtime is included directly in the JS file. Use if you run into issues with missing .wasm files when building or deploying your app. |
| exports | browser | Has these package.json export conditions |

### @jitl/quickjs-purejs-mjs-release-sync

[Docs](https://github.com/justjake/quickjs-emscripten/blob/main/doc/@jitl/quickjs-purejs-mjs-release-sync/README.md) |
Compiled to pure JS, no WebAssembly required. Very slow.

| Variable | Setting | Description |
| ------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| library | quickjs | The original [bellard/quickjs](https://github.com/bellard/quickjs) library. |
| releaseMode | release | Optimized for performance; use when building/deploying your application. |
| syncMode | sync | The default, normal build. Note that both variants support regular async functions. |
| emscriptenInclusion | purejs | The C library code is compiled directly to JS. This is the slowest possible option, and is intended only for humorous (quickjs-in-quickjs) use. |
| exports | import | Has these package.json export conditions |

### @jitl/quickjs-ng-purejs-mjs-release-sync

[Docs](https://github.com/justjake/quickjs-emscripten/blob/main/doc/@jitl/quickjs-ng-purejs-mjs-release-sync/README.md) |
Compiled to pure JS, no WebAssembly required. Very slow.

| Variable | Setting | Description |
| ------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| library | quickjs-ng | [quickjs-ng/quickjs](https://github.com/quickjs-ng/quickjs) is a newer fork of quickjs under active community development. It implements more EcmaScript features, and drop some non-standard QuickJS only features like BigFloat. May become the default library in a future version of quickjs-emscripten. |
| releaseMode | release | Optimized for performance; use when building/deploying your application. |
| syncMode | sync | The default, normal build. Note that both variants support regular async functions. |
| emscriptenInclusion | purejs | The C library code is compiled directly to JS. This is the slowest possible option, and is intended only for humorous (quickjs-in-quickjs) use. |
| exports | import | Has these package.json export conditions |

***

Generated using [typedoc-plugin-markdown](https://www.npmjs.com/package/typedoc-plugin-markdown) and [TypeDoc](https://typedoc.org/)
4 changes: 2 additions & 2 deletions doc/quickjs-emscripten-core/classes/QuickJSAsyncContext.md
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ socket.on("data", chunk => {

#### Source

[packages/quickjs-emscripten-core/src/context.ts:1005](https://github.com/justjake/quickjs-emscripten/blob/main/packages/quickjs-emscripten-core/src/context.ts#L1005)
[packages/quickjs-emscripten-core/src/context.ts:1006](https://github.com/justjake/quickjs-emscripten/blob/main/packages/quickjs-emscripten-core/src/context.ts#L1006)

***

Expand Down Expand Up @@ -423,7 +423,7 @@ socket.write(dataLifetime?.value)

#### Source

[packages/quickjs-emscripten-core/src/context.ts:988](https://github.com/justjake/quickjs-emscripten/blob/main/packages/quickjs-emscripten-core/src/context.ts#L988)
[packages/quickjs-emscripten-core/src/context.ts:989](https://github.com/justjake/quickjs-emscripten/blob/main/packages/quickjs-emscripten-core/src/context.ts#L989)

***

Expand Down
4 changes: 2 additions & 2 deletions doc/quickjs-emscripten-core/classes/QuickJSContext.md
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ socket.on("data", chunk => {

#### Source

[packages/quickjs-emscripten-core/src/context.ts:1005](https://github.com/justjake/quickjs-emscripten/blob/main/packages/quickjs-emscripten-core/src/context.ts#L1005)
[packages/quickjs-emscripten-core/src/context.ts:1006](https://github.com/justjake/quickjs-emscripten/blob/main/packages/quickjs-emscripten-core/src/context.ts#L1006)

***

Expand Down Expand Up @@ -443,7 +443,7 @@ socket.write(dataLifetime?.value)

#### Source

[packages/quickjs-emscripten-core/src/context.ts:988](https://github.com/justjake/quickjs-emscripten/blob/main/packages/quickjs-emscripten-core/src/context.ts#L988)
[packages/quickjs-emscripten-core/src/context.ts:989](https://github.com/justjake/quickjs-emscripten/blob/main/packages/quickjs-emscripten-core/src/context.ts#L989)

***

Expand Down
Loading

0 comments on commit 28949e3

Please sign in to comment.