|
12 | 12 | patch-args-clj-to-js]] |
13 | 13 | )) |
14 | 14 |
|
15 | | -(def DummyLib (this-as ct (aget ct "DummyLib"))) |
| 15 | +;(def DummyLib (this-as ct (aget ct "DummyLib"))) |
| 16 | +(def DummyLib (js-obj)) |
16 | 17 |
|
17 | 18 | (defn init [] |
18 | 19 | ; patch the dummy library |
|
51 | 52 | (add-test "js access cljs vector as array" |
52 | 53 | (fn [] |
53 | 54 | (let [v [1 2 3 4 5]] |
54 | | - (assert (= 5 v/length)) |
| 55 | + (assert (= 5 (.-length v))) |
55 | 56 | (assert (= 1 (aget v 0))) |
56 | 57 | (assert (= 3 (aget v "2"))) |
57 | 58 | (assert (= 5 (aget v 4))) |
|
66 | 67 | (assert (= 1 (aget l 0))) |
67 | 68 | (assert (= 21 (aget l 10))) |
68 | 69 | (assert (= js/undefined (aget l 70))) |
69 | | - (assert (= 50 l/length)) |
| 70 | + (assert (= 50 (.-length l))) |
70 | 71 | ))) |
71 | 72 |
|
72 | 73 | (add-test "js access lazy seq of vectors as array of arrays" |
|
80 | 81 | ; (assert (js-arrays-equal (array 2 1) (aget l 5))) |
81 | 82 | (assert (= js/undefined (aget l 7))) |
82 | 83 | (assert (= js/undefined (aget (aget l 0) 3))) |
83 | | - (assert (= 6 l/length)) |
| 84 | + (assert (= 6 (.-length l))) |
84 | 85 | ))) |
85 | 86 |
|
86 | 87 | (add-test "js access maps as object fields" |
87 | 88 | (fn [] |
88 | 89 | (let [m {:one 1 :two 2 :three 3}] |
89 | | - (assert (= 1 m/one)) |
| 90 | + (assert (= 1 (.-one m))) |
90 | 91 | (assert (= 2 (aget m "two"))) |
91 | 92 | (assert (= 3 (.-three m))) |
92 | 93 | (assert (= js/undefined (.-four m))) |
|
101 | 102 | (fn [] |
102 | 103 | (let [v [1,2] |
103 | 104 | m {:one 1, :two 2} |
104 | | - [r0 r1 r2] (DummyLib/wrapArgs0and2 v m m)] |
| 105 | + [r0 r1 r2] (.wrapArgs0and2 js/DummyLib v m m)] |
105 | 106 |
|
106 | 107 | ; (.log js/console r0) |
107 | 108 | ; (.log js/console (array 1 2)) |
|
128 | 129 |
|
129 | 130 | (add-test "patch-return-value-to-clj" |
130 | 131 | (fn [] |
131 | | - (let [ra (DummyLib/wrapReturnArgsIntoArray 0 1 2) |
132 | | - rav (DummyLib/wrapReturnArgsIntoArray (array 0 1) (array 2 3) (array 4 5)) |
133 | | - ro (DummyLib/wrapReturnArgsIntoObject 1 2 3) |
134 | | - rov (DummyLib/wrapReturnArgsIntoObject (array 0 1) (array 2 3) (array 4 5))] |
| 132 | + (let [ra (.wrapReturnArgsIntoArray js/DummyLib 0 1 2) |
| 133 | + rav (.wrapReturnArgsIntoArray js/DummyLib (array 0 1) (array 2 3) (array 4 5)) |
| 134 | + ro (.wrapReturnArgsIntoObjectjs/DummyLib 1 2 3) |
| 135 | + rov (.wrapReturnArgsIntoObjectjs/DummyLib (array 0 1) (array 2 3) (array 4 5))] |
135 | 136 |
|
136 | 137 | ; (.log js/console (str rov)) |
137 | 138 |
|
|
151 | 152 | (let [m {:one 1 :two 2 :three 3}] |
152 | 153 |
|
153 | 154 | ; check equality where you can |
154 | | - (assert (= 1 (DummyLib/wrapCall0on1 :one m))) |
155 | | - (assert (= 3 (DummyLib/wrapCall0on1 :three m))) |
156 | | - (assert (= nil (DummyLib/wrapCall0on1 :four m))) |
| 155 | + (assert (= 1 (.wrapCall0on1 js/DummyLib :one m))) |
| 156 | + (assert (= 3 (.wrapCall0on1 js/DummyLib :three m))) |
| 157 | + (assert (= nil (.wrapCall0on1 js/DummyLib :four m))) |
157 | 158 | ))) |
158 | 159 |
|
159 | 160 | (add-test "patch everything in to-js and out to-clj" |
160 | 161 | (fn [] |
161 | | - (let [ra (DummyLib/wrapArraysInAndOut 1 2 3) |
162 | | - rav (DummyLib/wrapArraysInAndOut [0 1] [2 3] [4 5]) |
163 | | - [r1 r2 r3] (DummyLib/wrapArraysInAndOut [:a :b :c] [#{:a, :b, :c}] ["a" "b" "c"])] |
| 162 | + (let [ra (.wrapArraysInAndOut js/DummyLib 1 2 3) |
| 163 | + rav (.wrapArraysInAndOut js/DummyLib [0 1] [2 3] [4 5]) |
| 164 | + [r1 r2 r3] (.wrapArraysInAndOut js/DummyLib [:a :b :c] [#{:a, :b, :c}] ["a" "b" "c"])] |
164 | 165 |
|
165 | 166 | ; (.log js/console r2) |
166 | 167 | ; (.log js/console (str (r2 0))) |
|
183 | 184 | (assert (hyde? v)) |
184 | 185 | (assert (not (has-cache? v))) |
185 | 186 | (assert (= (v (from-cache v)))) |
186 | | - (let [[ra rv] (DummyLib/zeroOutFirstArrayElement v)] |
| 187 | + (let [[ra rv] (.zeroOutFirstArrayElement js/DummyLib v)] |
187 | 188 | ; the method thinks it changed the vector |
188 | 189 | (assert (= rv 0)) |
189 | 190 | ; locally the vector remains unchanged |
|
204 | 205 | (assert (hyde? m)) |
205 | 206 | (assert (not (has-cache? m))) |
206 | 207 | (assert (= (m (from-cache m)))) |
207 | | - (let [[rm rv] (DummyLib/zeroOutMapKeyOne m)] |
| 208 | + (let [[rm rv] (.zeroOutMapKeyOne js/DummyLib m)] |
208 | 209 | ; the method thinks it changed the map |
209 | 210 | (assert (= rv 0)) |
210 | 211 | ; locally the vector remains unchanged |
|
225 | 226 | (assert (hyde? m)) |
226 | 227 | (assert (not (has-cache? m))) |
227 | 228 | (assert (= (m (from-cache m)))) |
228 | | - (let [[rm rv] (DummyLib/zeroOutMapKeyTen m)] |
| 229 | + (let [[rm rv] (.zeroOutMapKeyTen js/DummyLib m)] |
229 | 230 | ; (-> js/fdebug (set! m)) |
230 | 231 | ; (-> js/gdebug (set! rm)) |
231 | 232 | ; (-> js/has (set! has-cache?)) |
|
249 | 250 | (assert (hyde? m)) |
250 | 251 | (assert (not (has-cache? m))) |
251 | 252 | (assert (= (m (from-cache m)))) |
252 | | - (let [[rm1 rv1] (DummyLib/zeroOutMapKeyOne m) |
253 | | - [rm2 rv2] (DummyLib/zeroOutMapKeyTen rm1)] |
| 253 | + (let [[rm1 rv1] (.zeroOutMapKeyOne js/DummyLib m) |
| 254 | + [rm2 rv2] (.zeroOutMapKeyTen js/DummyLib rm1)] |
254 | 255 | ; remote additons to the maps |
255 | 256 | (assert (= rv1 0)) |
256 | 257 | (assert (= rv2 0)) |
|
284 | 285 | (assert (not (has-cache? d))) |
285 | 286 | (let [ |
286 | 287 | ;[rm1 rv1] (DummyLib/zeroOutFirstArrayElement d) |
287 | | - [rm2 rv2] (DummyLib/zeroOutMapKeyOne (nth d 2)) |
288 | | - [rm3 rv3] (DummyLib/zeroOutMapKeyTen (nth d 2)) |
289 | | - [rm4 rv4] (DummyLib/zeroOutFirstArrayElement (get-in d [2 :vec])) |
290 | | - [rm5 rv5] (DummyLib/zeroOutFirstArrayElement (get-in d [2 :vec 2]))] |
| 288 | + [rm2 rv2] (.zeroOutMapKeyOne js/DummyLib (nth d 2)) |
| 289 | + [rm3 rv3] (.zeroOutMapKeyTen js/DummyLib (nth d 2)) |
| 290 | + [rm4 rv4] (.zeroOutFirstArrayElement js/DummyLib (get-in d [2 :vec])) |
| 291 | + [rm5 rv5] (.zeroOutFirstArrayElement js/DummyLib (get-in d [2 :vec 2]))] |
291 | 292 |
|
292 | 293 | ; cache information is only known locally |
293 | 294 | (assert (not (has-cache? d))) |
|
299 | 300 | ; (-> js/fdebug3 (set! (nth d 2))) |
300 | 301 | ; (.log js/console (str (recurse-from-hyde-cache d))) |
301 | 302 |
|
302 | | - (assert (= |
| 303 | + (assert (= |
303 | 304 | (recurse-from-hyde-cache d) |
304 | 305 | [ {:bye 1, :now 2, :zero 3} |
305 | 306 | {:two [], :three 3} |
|
341 | 342 |
|
342 | 343 | ; (add-test "js->clj with cycle?" |
343 | 344 | ; (fn [] |
344 | | -; (let [a (js-obj) b (js-obj)] (set! (.-a b) a) (set! (.-b a) b) (js->clj a)) ; #cljs surprise of the day |
| 345 | +; (let [a (js-obj) b (js-obj)] (set! (.-a b) a) (set! (.-b a) b) (js->clj a)) ; #cljs surprise of the day |
345 | 346 | ; (let [c (js->clj js/p)]))) |
346 | 347 | ; )) |
347 | 348 |
|
|
0 commit comments