-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO.txt
87 lines (80 loc) · 2.72 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
To Version 0.0
#1 - Support single export point (Compatibility to CommonJS): [OK]
(!js-export name object)
#2 - Create Javascript Objects on fly: [OK]
(define object (!js-object))
(!js-obj-set object name (some-value))
(!js-obj-set object name (some-lambda-func))
(!js-obj-set object "name" (some-value))
(!js-obj-set object "name" (some-lambda-func))
(!js-obj-set "object" name (some-value))
(!js-obj-set "object" name (some-lambda-func))
(!js-obj-set "object" "name" (some-value))
(!js-obj-set "object" "name" (some-lambda-func))
(!js-obj-get object name)
(!js-obj-get object "name")
(!js-obj-get "object" name)
(!js-obj-get "object" "name")
; Alias to !js-obj-set = !set, !js-obj-get = !get
(!set object name (some-value))
(!set object name (some-lambda-func))
(!set object "name" (some-value))
(!set object "name" (some-lambda-func))
(!set "object" name (some-value))
(!set "object" name (some-lambda-func))
(!set "object" "name" (some-value))
(!set "object" "name" (some-lambda-func))
(!get object name)
(!get object "name")
(!get "object" name)
(!get "object" "name")
; Export object
(!js-export name object)
(!js-export "name" object)
#3 - Support Javascript Import: [OK]
(!js-require _ underscore)
(!js-require _ "underscore")
To Version 0.1.0
#4 - Add Object method call support
#4.1 - Expressions:
#4.1.1 - Converted call (return is converted using the host2scm function):
(!js-expression-call object method ...)
(!js-e-call object method ...)
(!js-x-call object method ...)
(!js-call object method ...)
(!call object method ...)
(!! object method ...)
#4.1.2 - Raw call (return is not converted using the host2scm function):
(!js-expression-raw-call object method ...)
(!js-e-rcall object method ...)
(!js-x-rcall object method ...)
(!js-rcall object method ...)
(!rcall object method ...)
(!!r object method ...)
#4.2 - Statements:
(!js-statement-call object method ...)
(!js-s-call object method ...)
(!s-call object method ...)
(!!! object method ...)
#5 - Add Promises handling (CreatePromise, Then, Catch) support
(!js-async promise then-lambda then-lambda ... catch-lambda)
#6 - Add Javascript class definition support
(!js-class ClassName
(!js-instance-var var1)
(!js-instance-var var2 "Variable Content")
(!js-class-method var3)
(!js-class-method var4 "Variable Content")
(!js-instance-var "var5")
(!js-instance-var "var6" "Variable Content")
(!js-class-method "var7")
(!js-class-method "var8" "Variable Content")
(!js-method instanceMethod (lambda (self ...)
...))
(!js-class-method classMethod (lambda (classObject ...)
...))
(!js-method "instanceMethod2" (lambda (self ...)
...))
(!js-class-method "classMethod2" (lambda (classObject ...)
...)))
To next versions
# To be defined - no more features being planned.