Commit Graph
159 Commits
Author SHA1 Message Date
a0db9a6c19 feat: Implement Bitwise and Shift Operator Support (#496)
Co-authored-by: Ganesan Karuppasamy <[email protected]>
2023-12-25 18:25:26 +01:00
100vlxandGitHub 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 PeyrardandGitHub 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 MedvedevandGitHub 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
mdmcconnellandGitHub 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
hesiningandGitHub 9255e223d9 Add Wrap and Unwrap method to hold self error (#352) 2023-03-10 21:08:40 +01:00
Anton MedvedevandGitHub 4876b330e5 Fix nil key check in map (#351) 2023-03-09 23:49:13 +01:00
blotusandGitHub 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