fez-lisp 1.6.30 → 1.6.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/debugger.js +10 -41
package/package.json
CHANGED
package/src/debugger.js
CHANGED
@@ -835,7 +835,13 @@ const keywords = {
|
|
835
835
|
[STATIC_TYPES.NUMBERS]: (args, env) => evaluate(args[0], env),
|
836
836
|
[STATIC_TYPES.COLLECTIONS]: (args, env) => evaluate(args[0], env),
|
837
837
|
[STATIC_TYPES.ABSTRACTIONS]: (args, env) => evaluate(args[0], env),
|
838
|
-
[STATIC_TYPES.BOOLEANS]: (args, env) => evaluate(args[0], env)
|
838
|
+
[STATIC_TYPES.BOOLEANS]: (args, env) => evaluate(args[0], env),
|
839
|
+
|
840
|
+
[DEBUG.TYPE_SIGNATURE]: (args, env) => evaluate(args[0], env),
|
841
|
+
[DEBUG.SIGNATURE]: (args, env) => evaluate(args[0], env),
|
842
|
+
[DEBUG.STRING]: (args, env) => evaluate(args[0], env),
|
843
|
+
[DEBUG.UNQUOTED_STRING]: (args, env) => evaluate(args[0], env),
|
844
|
+
[DEBUG.LOG]: (args, env) => evaluate(args[0], env)
|
839
845
|
}
|
840
846
|
const debugStack = []
|
841
847
|
const evaluate = (exp, env = keywords) => {
|
@@ -882,9 +888,10 @@ export const startDebug = (ast, speed = 250, start, end) => {
|
|
882
888
|
debugStack.length = 0
|
883
889
|
evaluate(ast)
|
884
890
|
start = start ? debugStack.findIndex(start) : 0
|
885
|
-
end = end ? debugStack.findIndex(end) : debugStack.length
|
886
|
-
const stack = debugStack.slice(start, end)
|
891
|
+
end = end ? debugStack.findIndex(end) + 1 : debugStack.length
|
892
|
+
const stack = debugStack.slice(start, end)
|
887
893
|
if (speed !== 0) {
|
894
|
+
stack.reverse()
|
888
895
|
const rec = () => {
|
889
896
|
setTimeout(() => {
|
890
897
|
if (stack.length) {
|
@@ -905,44 +912,6 @@ export const debug = (ast, checkTypes = true, userDefinedTypes) => {
|
|
905
912
|
let types = new Map()
|
906
913
|
const debugEnv = {
|
907
914
|
...keywords,
|
908
|
-
[STATIC_TYPES.ABSTRACTION]: (args, env) => {
|
909
|
-
const T = evaluate(args[0], env)
|
910
|
-
const t = typeof T
|
911
|
-
if (t !== 'function')
|
912
|
-
throw new TypeError(
|
913
|
-
`Argument of (${STATIC_TYPES.ABSTRACTION}) must be an (${
|
914
|
-
RUNTIME_TYPES.LAMBDA
|
915
|
-
}) but got something else (${
|
916
|
-
STATIC_TYPES.ABSTRACTION
|
917
|
-
} ${stringifyArgs(args)})`
|
918
|
-
)
|
919
|
-
return T
|
920
|
-
},
|
921
|
-
[STATIC_TYPES.ATOM]: (args, env) => {
|
922
|
-
const T = evaluate(args[0], env)
|
923
|
-
const t = typeof T
|
924
|
-
if (t !== 'number')
|
925
|
-
throw new TypeError(
|
926
|
-
`Argument of (${STATIC_TYPES.ATOM}) must be an (${
|
927
|
-
RUNTIME_TYPES.NUMBER
|
928
|
-
}) but got something else (${STATIC_TYPES.ATOM} ${stringifyArgs(
|
929
|
-
args
|
930
|
-
)})`
|
931
|
-
)
|
932
|
-
return T
|
933
|
-
},
|
934
|
-
[STATIC_TYPES.COLLECTION]: (args, env) => {
|
935
|
-
const T = evaluate(args[0], env)
|
936
|
-
if (!Array.isArray(T))
|
937
|
-
throw new TypeError(
|
938
|
-
`Argument of (${STATIC_TYPES.COLLECTION}) must be an (${
|
939
|
-
RUNTIME_TYPES.ARRAY
|
940
|
-
}) but got something else (${STATIC_TYPES.COLLECTION} ${stringifyArgs(
|
941
|
-
args
|
942
|
-
)})`
|
943
|
-
)
|
944
|
-
return T
|
945
|
-
},
|
946
915
|
[DEBUG.TYPE_SIGNATURE]: (args, env) => {
|
947
916
|
if (args.length !== 2)
|
948
917
|
throw new RangeError(
|