https://github.com/nusr/gojs
Golang interpret JavaScript.Zero dependencies.
https://github.com/nusr/gojs
interpreter javascript no-dependencies zero-dependencies zero-dependency
Last synced: about 2 months ago
JSON representation
Golang interpret JavaScript.Zero dependencies.
- Host: GitHub
- URL: https://github.com/nusr/gojs
- Owner: nusr
- License: mit
- Created: 2022-10-05T11:00:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T08:21:46.000Z (about 1 year ago)
- Last Synced: 2025-03-23T20:22:24.047Z (3 months ago)
- Topics: interpreter, javascript, no-dependencies, zero-dependencies, zero-dependency
- Language: Go
- Homepage:
- Size: 84 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Golang interpret JavaScript.
[](https://github.com/nusr/gojs/actions/workflows/ci.yml)
[](https://codecov.io/gh/nusr/gojs)Zero dependencies.
## Lint
```bash
make lint
```## Test
```bash
make test
```## Support features
[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)
#### Expressions & operators
* [x] Addition (+)
* [x] Addition assignment (+=)
* [x] Assignment (=)
* [ ] async function expression
* [ ] async function* expression
* [ ] await
* [x] Bitwise AND (&)
* [x] Bitwise AND assignment (&=)
* [x] Bitwise NOT (~)
* [x] Bitwise OR (|)
* [x] Bitwise OR assignment (|=)
* [x] Bitwise XOR (^)
* [x] Bitwise XOR assignment (^=)
* [x] class expression
* [ ] Comma operator (,)
* [ ] Conditional (ternary) operator
* [x] Decrement (--)
* [x] delete operator
* [ ] Destructuring assignment
* [x] Division (/)
* [x] Division assignment (/=)
* [x] Equality (==)
* [x] Exponentiation (**)
* [x] Exponentiation assignment (**=)
* [x] Function expression
* [ ] function* expression
* [x] Greater than (>)
* [x] Greater than or equal (>=)
* [x] Grouping operator ( )
* [ ] import
* [ ] import.meta
* [x] in operator
* [x] Increment (++)
* [x] Inequality (!=)
* [ ] instanceof
* [x] Left shift (<<)
* [x] Left shift assignment (<<=)
* [x] Less than (<)
* [x] Less than or equal (<=)
* [x] Logical AND (&&)
* [x] Logical AND assignment (&&=)
* [x] Logical NOT (!)
* [X] Logical nullish assignment (??=)
* [x] Logical OR (||)
* [x] Logical OR assignment (||=)
* [x] Multiplication (*)
* [x] Multiplication assignment (*=)
* [x] new operator
* [ ] new.target
* [x] null
* [X] Nullish coalescing operator (??)
* [x] Object initializer
* [x] Operator precedence
* [ ] Optional chaining (?.)
* [x] Property accessors
* [x] Remainder (%)
* [x] Remainder assignment (%=)
* [x] Right shift (>>)
* [x] Right shift assignment (>>=)
* [ ] Spread syntax (...)
* [x] Strict equality (===)
* [x] Strict inequality (!==)
* [x] Subtraction (-)
* [x] Subtraction assignment (-=)
* [x] super
* [x] this
* [x] typeof
* [x] Unary negation (-)
* [x] Unary plus (+)
* [x] Unsigned right shift (>>>)
* [x] Unsigned right shift assignment (>>>=)
* [x] void operator
* [ ] yield
* [ ] yield*#### Statements & declarations
* [ ] async function
* [ ] async function*
* [x] block
* [ ] break
* [x] class
* [ ] const
* [ ] continue
* [ ] debugger
* [x] do...while
* [ ] empty
* [ ] export
* [x] for
* [ ] for await...of
* [ ] for...in
* [ ] for...of
* [x] function declaration
* [ ] function*
* [x] if...else
* [ ] import
* [ ] label
* [ ] let
* [x] return
* [ ] switch
* [ ] throw
* [ ] try...catch
* [x] var
* [x] while
* [ ] with#### Functions
* [ ] The arguments object
* [ ] Arrow function expressions
* [ ] Default parameters
* [ ] getter
* [x] Method definitions
* [ ] Rest parameters
* [ ] setter#### Classes
* [ ] Class static initialization blocks
* [x] constructor
* [x] extends
* [ ] Private class features
* [x] Public class fields
* [x] static