a0db9a6c19
feat: Implement Bitwise and Shift Operator Support ( #496 )
...
Co-authored-by: Ganesan Karuppasamy <[email protected] >
2023-12-25 18:25:26 +01:00
100vlx and GitHub
005b78f0ab
Get source from *vm.Program ( #491 )
2023-12-06 11:02:19 +01:00
Anton Medvedev
551d2a7e0f
Use expr-lang/expr
2023-12-03 21:53:01 +01:00
Anton Medvedev
8048a93b2d
Add ast comments
...
Rename program.Opcodes() to program.DisassembleWriter()
2023-11-27 19:15:20 +01:00
Anton Medvedev
2cf93593f4
Hide fields in vm.Program
2023-11-27 13:52:56 +01:00
Augustin Peyrard and GitHub
fe7f698b81
Fix Fetch and OpDeref ( #467 )
...
* Fix OpDeref allowing to deref pointer of interfaces
Loop over `Ptr` and `Interface` kind and get `Elem`. Also return
directly the `nil` otherwise we might are returning the pointer nil
value and not the base nil.
* Fix deref interface in Fetch
We were only de-referencing pointers, but we can have pointer of
interface or interface obfuscating pointers...
So before trying to fetch anything, just deference fully the
variable.
2023-11-16 12:40:28 +01:00
Anton Medvedev
63496e6fe7
Add type checks for 42 in ["a"] as invalid
2023-09-20 14:00:15 +02:00
Anton Medvedev
4daca7fa08
Update vm.go
2023-09-06 09:42:58 +02:00
Anton Medvedev
3d460e5519
Fix negative ranges memory budget
2023-09-03 11:25:31 +02:00
Anton Medvedev
05d700f4ea
Change memoryBudget type to uint
...
Fixes #427
2023-09-03 11:13:50 +02:00
Anton Medvedev
92dc6c69f6
Fix duration multiplication by integer
2023-08-30 17:45:26 +02:00
Anton Medvedev
76958b5d3f
Fix date manipulation operations
2023-08-30 15:23:33 +02:00
Anton Medvedev
6d8d2390cf
Remove countBy
2023-08-30 14:55:05 +02:00
Anton Medvedev
5023b3005d
Add reduce()
2023-08-30 13:33:16 +02:00
Anton Medvedev
7f85c0551f
Add countBy()
2023-08-30 12:07:16 +02:00
Anton Medvedev
32f5fde2eb
Replace interface{} with any
2023-08-30 11:25:15 +02:00
Anton Medvedev
3f57b885d4
Add groupBy
2023-08-30 11:14:54 +02:00
Anton Medvedev
9a9cab2e4a
Add sort builtin
2023-08-28 14:55:44 +02:00
Anton Medvedev
166d8b8ce9
Add filter()[-1] optimization
2023-08-24 11:15:43 +02:00
Anton Medvedev
8c52bd6d8b
Add filter()[0] optimization
2023-08-24 11:15:43 +02:00
Anton Medvedev
2c139ca36a
Add find() and findIndex()
2023-08-24 11:15:43 +02:00
Anton Medvedev
ed5f9bfbcb
Add variables
2023-08-22 22:30:07 +02:00
Anton Medvedev
4ae978d384
Allow to disable builtins
2023-08-19 22:24:42 +02:00
Anton Medvedev
ff899ca004
Small fixes
2023-08-18 14:21:59 +02:00
Anton Medvedev
bd4e6b6476
Move memory budget test
2023-08-18 13:46:11 +02:00
Anton Medvedev
07fde81118
Fix slice out of bound errors
2023-08-16 11:29:09 +02:00
Anton Medvedev
ffc47e10cc
Add func names in disassemble
2023-08-15 23:05:53 +02:00
Anton Medvedev
7e1b727f95
Integrate repl with debugger
2023-08-15 16:40:36 +02:00
Anton Medvedev
9598368114
Improve OpCallTyped performance
2023-08-14 16:06:22 +02:00
Anton Medvedev
719f30d3ad
Add builtin functions
2023-08-14 15:37:06 +02:00
Anton Medvedev
67bd8e364d
Add string() builtin
2023-08-14 13:06:29 +02:00
Anton Medvedev
aabd39562a
Refactor expr_test.go
2023-08-14 11:50:42 +02:00
Anton Medvedev
8177d8bd9f
Add OpCallBuiltin opcode to avoid an extra allocation
2023-08-14 11:50:42 +02:00
Anton Medvedev
8d959ea2fe
Refactor builtin.Function and move builtin funcs to builtin package
2023-08-14 11:50:42 +02:00
Anton Medvedev and GitHub
95fc04c65e
Refactor deref ( #398 )
...
* Refactor deref types
* Refactor deref opcode inserts
* Add multiple pointers deref
2023-08-10 22:09:32 +02:00
Anton Medvedev
756bf2f9b1
Add OpInvalid
2023-07-19 17:19:59 +04:00
Anton Medvedev
fda73cd719
Fix OpLoadEnv disassemble
2023-07-19 17:09:45 +04:00
mdmcconnell and GitHub
4e57a43464
env[] keyword implemented in parser ( #382 )
2023-07-12 11:01:19 +02:00
Anton Medvedev
72d233630c
Beautify program disassemble
2023-03-21 11:43:04 +01:00
hesining and GitHub
9255e223d9
Add Wrap and Unwrap method to hold self error ( #352 )
2023-03-10 21:08:40 +01:00
Anton Medvedev and GitHub
4876b330e5
Fix nil key check in map ( #351 )
2023-03-09 23:49:13 +01:00
blotus and GitHub
84db94d36b
runtime.Fetch: add string type assertion check before trying to check if the value is a method ( #349 )
2023-03-09 13:48:26 +01:00
Anton Medvedev
95f8b7ff17
Add nil coalescing operator
2023-02-03 15:53:43 +01:00
Anton Medvedev
19c72f6e03
Fix abs() for positive numbers
2023-02-03 11:07:11 +01:00
Anton Medvedev
182aac0d60
Remove redundant assignment
2023-01-30 22:54:28 +01:00
Anton Medvedev
3e919ad53f
Unflatten builtins opcodes
2023-01-30 22:24:35 +01:00
Anton Medvedev
12a40c72cb
Flatten builtin opcodes in vm
2023-01-30 22:24:35 +01:00
Anton Medvedev
6ac7fb473a
Add support for negative indexes
2023-01-30 19:16:44 +01:00
Anton Medvedev
a469abd32b
Add int() and float() builtins
2023-01-29 20:34:15 +01:00
Anton Medvedev
b737180582
Improve builtin performance
2023-01-29 20:34:15 +01:00