v0.2.0 4f9c11b

op_eq.json RawHistoryFolder

1{
2  "boolean": [
3    { "expr": "true == true", "result": { "kind": "Boolean", "value": true } },
4    {
5      "expr": "false == false",
6      "result": { "kind": "Boolean", "value": true }
7    },
8    {
9      "expr": "false == true",
10      "result": { "kind": "Boolean", "value": false }
11    }
12  ],
13
14  "number": [
15    { "expr": "0 == -0", "result": { "kind": "Boolean", "value": true } },
16    { "expr": "2 == 2", "result": { "kind": "Boolean", "value": true } },
17    { "expr": "1.001 == 1.002", "result": { "kind": "Boolean", "value": false } },
18    { "expr": "120 == 1.2e2", "result": { "kind": "Boolean", "value": true } },
19    { "expr": "1 == 2", "result": { "kind": "Boolean", "value": false } },
20    { "expr": "NaN == NaN", "result": { "kind": "Boolean", "value": false } },
21    {
22      "expr": "Infinity == Infinity",
23      "result": { "kind": "Boolean", "value": true }
24    },
25    {
26      "expr": "-Infinity == Infinity",
27      "result": { "kind": "Boolean", "value": false }
28    },
29    {
30      "expr": "0 == Infinity",
31      "result": { "kind": "Boolean", "value": false }
32    },
33    {
34      "expr": "1 == Infinity",
35      "result": { "kind": "Boolean", "value": false }
36    }
37  ],
38
39  "string": [
40    { "expr": "'a' == 'a'", "result": { "kind": "Boolean", "value": true } },
41    { "expr": "'a' == 'b'", "result": { "kind": "Boolean", "value": false } }
42  ],
43
44  "null": [
45    { "expr": "null == null", "result": { "kind": "Boolean", "value": true } }
46  ],
47
48  "object": [
49    {
50      "expr": "object1 == object1",
51      "contexts": { "object1": {} },
52      "result": { "kind": "Boolean", "value": true }
53    },
54    {
55      "expr": "object1 == object2",
56      "contexts": { "object1": {}, "object2": {} },
57      "result": { "kind": "Boolean", "value": false }
58    }
59  ],
60
61  "array": [
62    {
63      "expr": "array1 == array1",
64      "contexts": { "array1": [] },
65      "result": { "kind": "Boolean", "value": true }
66    },
67    {
68      "expr": "array1 == array2",
69      "contexts": { "array1": [], "array2": [] },
70      "result": { "kind": "Boolean", "value": false }
71    }
72  ],
73
74  "coerce_bool_number": [
75    { "expr": "false == 0", "result": { "kind": "Boolean", "value": true } },
76    { "expr": "true == 1", "result": { "kind": "Boolean", "value": true } },
77    { "expr": "false == NaN", "result": { "kind": "Boolean", "value": false } },
78    { "expr": "true == 2", "result": { "kind": "Boolean", "value": false } }
79  ],
80
81  "coerce_bool_string": [
82    { "expr": "false == ''", "result": { "kind": "Boolean", "value": true } },
83    {
84      "expr": "false == '  '",
85      "result": { "kind": "Boolean", "value": true }
86    },
87    {
88      "expr": "false == ' 0.0 '",
89      "result": { "kind": "Boolean", "value": true }
90    },
91    {
92      "expr": "true == ' 1.0 '",
93      "result": { "kind": "Boolean", "value": true }
94    },
95    {
96      "expr": "true == ' 1 '",
97      "result": { "kind": "Boolean", "value": true }
98    },
99    {
100      "expr": "false == '-1'",
101      "result": { "kind": "Boolean", "value": false }
102    },
103    { "expr": "true == '2'", "result": { "kind": "Boolean", "value": false } }
104  ],
105
106  "coerce_bool_null": [
107    {
108      "expr": "false == null",
109      "result": { "kind": "Boolean", "value": true }
110    },
111    {
112      "expr": "true == null",
113      "result": { "kind": "Boolean", "value": false }
114    }
115  ],
116
117  "coerce_bool_object-array": [
118    {
119      "expr": "false == test",
120      "contexts": { "test": {} },
121      "result": { "kind": "Boolean", "value": false }
122    },
123    {
124      "expr": "false == test",
125      "contexts": { "test": [] },
126      "result": { "kind": "Boolean", "value": false }
127    },
128    {
129      "expr": "true == test",
130      "contexts": { "test": {} },
131      "result": { "kind": "Boolean", "value": false }
132    },
133    {
134      "expr": "true == test",
135      "contexts": { "test": [] },
136      "result": { "kind": "Boolean", "value": false }
137    }
138  ],
139
140  "coerce_number_bool": [
141    { "expr": "0 == false", "result": { "kind": "Boolean", "value": true } },
142    { "expr": "1 == true", "result": { "kind": "Boolean", "value": true } },
143    {
144      "expr": "NaN == false",
145      "result": { "kind": "Boolean", "value": false }
146    },
147    { "expr": "2 == true", "result": { "kind": "Boolean", "value": false } }
148  ],
149
150  "coerce_number_string": [
151    {
152      "expr": "0 == ' -0.0 '",
153      "result": { "kind": "Boolean", "value": true }
154    },
155    { "expr": "0 == ''", "result": { "kind": "Boolean", "value": true } },
156    { "expr": "0 == '  '", "result": { "kind": "Boolean", "value": true } },
157    {
158      "expr": "120 == ' +1.2e2 '",
159      "result": { "kind": "Boolean", "value": true }
160    },
161    {
162      "expr": "120.0 == ' 1.2E2 '",
163      "result": { "kind": "Boolean", "value": true }
164    },
165    {
166      "expr": "120 == ' 1.2e+2 '",
167      "result": { "kind": "Boolean", "value": true }
168    },
169    {
170      "expr": "-120 == ' -1.2E+2 '",
171      "result": { "kind": "Boolean", "value": true }
172    },
173    {
174      "expr": "0.012 == ' 1.2e-2 '",
175      "result": { "kind": "Boolean", "value": true }
176    },
177    {
178      "expr": "0.012 == ' 1.2E-2 '",
179      "result": { "kind": "Boolean", "value": true }
180    },
181    {
182      "expr": "255.0 == ' 0xff '",
183      "result": { "kind": "Boolean", "value": true }
184    },
185    {
186      "expr": "8.0 == ' 0o10 '",
187      "result": { "kind": "Boolean", "value": true }
188    },
189    {
190      "expr": "Infinity == ' Infinity '",
191      "result": { "kind": "Boolean", "value": true }
192    },
193    {
194      "expr": "-Infinity == ' -Infinity '",
195      "result": { "kind": "Boolean", "value": true }
196    },
197    {
198      "expr": "NaN == 'NaN'",
199      "result": { "kind": "Boolean", "value": false }
200    },
201    { "expr": "1 == '0'", "result": { "kind": "Boolean", "value": false } },
202    { "expr": "1 == 'a'", "result": { "kind": "Boolean", "value": false } }
203  ],
204
205  "coerce_number_null": [
206    { "expr": "0 == null", "result": { "kind": "Boolean", "value": true } }
207  ],
208
209  "coerce_number_object-array": [
210    {
211      "expr": "0 == test",
212      "contexts": { "test": {} },
213      "result": { "kind": "Boolean", "value": false }
214    },
215    {
216      "expr": "1 == test",
217      "contexts": { "test": {} },
218      "result": { "kind": "Boolean", "value": false }
219    },
220    {
221      "expr": "0 == test",
222      "contexts": { "test": [] },
223      "result": { "kind": "Boolean", "value": false }
224    },
225    {
226      "expr": "1 == test",
227      "contexts": { "test": [] },
228      "result": { "kind": "Boolean", "value": false }
229    }
230  ],
231
232  "coerce_string_bool": [
233    { "expr": "'' == false", "result": { "kind": "Boolean", "value": true } },
234    {
235      "expr": "'  ' == false",
236      "result": { "kind": "Boolean", "value": true }
237    },
238    {
239      "expr": "' 0.0 ' == false",
240      "result": { "kind": "Boolean", "value": true }
241    },
242    {
243      "expr": "' 1.0 ' == true",
244      "result": { "kind": "Boolean", "value": true }
245    },
246    {
247      "expr": "' 1 ' == true",
248      "result": { "kind": "Boolean", "value": true }
249    },
250    {
251      "expr": "'-1' == false",
252      "result": { "kind": "Boolean", "value": false }
253    },
254    { "expr": "'2' == true", "result": { "kind": "Boolean", "value": false } }
255  ],
256
257  "coerce_string_number": [
258    {
259      "expr": "' -0.0 ' == 0",
260      "result": { "kind": "Boolean", "value": true }
261    },
262    { "expr": "'' == 0", "result": { "kind": "Boolean", "value": true } },
263    { "expr": "'  ' == 0", "result": { "kind": "Boolean", "value": true } },
264    {
265      "expr": "' +1.2e2 ' == 120",
266      "result": { "kind": "Boolean", "value": true }
267    },
268    {
269      "expr": "' 1.2E2 ' == 120.0",
270      "result": { "kind": "Boolean", "value": true }
271    },
272    {
273      "expr": "' 1.2e+2 ' == 120",
274      "result": { "kind": "Boolean", "value": true }
275    },
276    {
277      "expr": "' -1.2E+2 ' == -120",
278      "result": { "kind": "Boolean", "value": true }
279    },
280    {
281      "expr": "' 1.2e-2 ' == 0.012",
282      "result": { "kind": "Boolean", "value": true }
283    },
284    {
285      "expr": "' 1.2E-2 ' == 0.012",
286      "result": { "kind": "Boolean", "value": true }
287    },
288    {
289      "expr": "' 0xff ' == 255.0",
290      "result": { "kind": "Boolean", "value": true }
291    },
292    {
293      "expr": "' 0o10 ' == 8.0",
294      "result": { "kind": "Boolean", "value": true }
295    },
296    {
297      "expr": "' Infinity ' == Infinity",
298      "result": { "kind": "Boolean", "value": true }
299    },
300    {
301      "expr": "' -Infinity ' == -Infinity",
302      "result": { "kind": "Boolean", "value": true }
303    },
304    {
305      "expr": "'NaN' == NaN",
306      "result": { "kind": "Boolean", "value": false }
307    },
308    { "expr": "'0' == 1", "result": { "kind": "Boolean", "value": false } },
309    { "expr": "'a' == 1", "result": { "kind": "Boolean", "value": false } }
310  ],
311
312  "coerce_string_null": [
313    { "expr": "'' == null", "result": { "kind": "Boolean", "value": true } },
314    {
315      "expr": "'   ' == null",
316      "result": { "kind": "Boolean", "value": true }
317    },
318    { "expr": "'0' == null", "result": { "kind": "Boolean", "value": true } },
319    {
320      "expr": "'false' == null",
321      "result": { "kind": "Boolean", "value": false }
322    },
323    {
324      "expr": "'null' == null",
325      "result": { "kind": "Boolean", "value": false }
326    }
327  ],
328
329  "coerce_string_object": [
330    {
331      "expr": "'' == test",
332      "contexts": { "test": {} },
333      "result": { "kind": "Boolean", "value": false }
334    },
335    {
336      "expr": "'false' == test",
337      "contexts": { "test": {} },
338      "result": { "kind": "Boolean", "value": false }
339    },
340    {
341      "expr": "'0' == test",
342      "contexts": { "test": {} },
343      "result": { "kind": "Boolean", "value": false }
344    },
345    {
346      "expr": "'null' == test",
347      "contexts": { "test": {} },
348      "result": { "kind": "Boolean", "value": false }
349    },
350    {
351      "expr": "'Object' == test",
352      "contexts": { "test": {} },
353      "result": { "kind": "Boolean", "value": false }
354    }
355  ],
356
357  "coerce_string_array": [
358    {
359      "expr": "'' == test",
360      "contexts": { "test": [] },
361      "result": { "kind": "Boolean", "value": false }
362    },
363    {
364      "expr": "'false' == test",
365      "contexts": { "test": [] },
366      "result": { "kind": "Boolean", "value": false }
367    },
368    {
369      "expr": "'0' == test",
370      "contexts": { "test": [] },
371      "result": { "kind": "Boolean", "value": false }
372    },
373    {
374      "expr": "'null' == test",
375      "contexts": { "test": [] },
376      "result": { "kind": "Boolean", "value": false }
377    },
378    {
379      "expr": "'Array' == test",
380      "contexts": { "test": [] },
381      "result": { "kind": "Boolean", "value": false }
382    }
383  ],
384
385  "coerce_null_bool": [
386    {
387      "expr": "null == false",
388      "result": { "kind": "Boolean", "value": true }
389    },
390    {
391      "expr": "null == true",
392      "result": { "kind": "Boolean", "value": false }
393    }
394  ],
395
396  "coerce_null_number": [
397    { "expr": "null == 0", "result": { "kind": "Boolean", "value": true } },
398    { "expr": "false == 1", "result": { "kind": "Boolean", "value": false } }
399  ],
400
401  "coerce_null_string": [
402    { "expr": "null == ''", "result": { "kind": "Boolean", "value": true } },
403    {
404      "expr": "null == '   '",
405      "result": { "kind": "Boolean", "value": true }
406    },
407    { "expr": "null == '0'", "result": { "kind": "Boolean", "value": true } },
408    {
409      "expr": "null == 'false'",
410      "result": { "kind": "Boolean", "value": false }
411    },
412    {
413      "expr": "null == 'null'",
414      "result": { "kind": "Boolean", "value": false }
415    }
416  ],
417
418  "coerce_null_object-array": [
419    {
420      "expr": "null == test",
421      "contexts": { "test": {} },
422      "result": { "kind": "Boolean", "value": false }
423    },
424    {
425      "expr": "null == test",
426      "contexts": { "test": [] },
427      "result": { "kind": "Boolean", "value": false }
428    }
429  ]
430}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 3

↑↓ moveenter openesc close