@jdeighan/coffee-utils 7.0.61 → 7.0.64

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jdeighan/coffee-utils",
3
3
  "type": "module",
4
- "version": "7.0.61",
4
+ "version": "7.0.64",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
@@ -52,6 +52,6 @@
52
52
  "svelte": "^3.48.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@jdeighan/unit-tester": "^2.0.6"
55
+ "@jdeighan/unit-tester": "^2.0.7"
56
56
  }
57
57
  }
@@ -21,6 +21,13 @@ export isComment = (line) ->
21
21
 
22
22
  # ---------------------------------------------------------------------------
23
23
 
24
+ export eval_expr = (str) ->
25
+
26
+ str = str.replace(/\bundef\b/g, 'undefined')
27
+ return Function('"use strict";return (' + str + ')')();
28
+
29
+ # ---------------------------------------------------------------------------
30
+
24
31
  export haltOnError = () ->
25
32
 
26
33
  doHaltOnError = true
@@ -23,6 +23,12 @@ export var isComment = function(line) {
23
23
  return defined(lMatches);
24
24
  };
25
25
 
26
+ // ---------------------------------------------------------------------------
27
+ export var eval_expr = function(str) {
28
+ str = str.replace(/\bundef\b/g, 'undefined');
29
+ return Function('"use strict";return (' + str + ')')();
30
+ };
31
+
26
32
  // ---------------------------------------------------------------------------
27
33
  export var haltOnError = function() {
28
34
  return doHaltOnError = true;
@@ -92,14 +92,17 @@ export doTheLogging = (type, label, lObjects) ->
92
92
 
93
93
  assert isString(label), "non-string label #{OL(label)}"
94
94
  level = callStack.getLevel()
95
- sep = '-'.repeat(40)
96
95
 
97
96
  switch type
98
97
 
99
98
  when 'enter'
100
99
  log label, prefix(level)
101
- pre = prefix(level+1)
102
- itemPre = prefix(level+2, 'noLastVbar')
100
+ if label.match(///^ \s* call///)
101
+ pre = prefix(level+1, 'noLastVbar')
102
+ itemPre = prefix(level+2, 'noLast2Vbars')
103
+ else
104
+ pre = prefix(level+1)
105
+ itemPre = prefix(level+2, 'noLastVbar')
103
106
  for obj,i in lObjects
104
107
  logItem "arg[#{i}]", obj, pre, itemPre
105
108
 
@@ -131,15 +131,19 @@ export var debug2 = function(orgLabel, ...lObjects) {
131
131
 
132
132
  // ---------------------------------------------------------------------------
133
133
  export var doTheLogging = function(type, label, lObjects) {
134
- var i, itemPre, j, k, l, len, len1, len2, level, obj, pre, sep;
134
+ var i, itemPre, j, k, l, len, len1, len2, level, obj, pre;
135
135
  assert(isString(label), `non-string label ${OL(label)}`);
136
136
  level = callStack.getLevel();
137
- sep = '-'.repeat(40);
138
137
  switch (type) {
139
138
  case 'enter':
140
139
  log(label, prefix(level));
141
- pre = prefix(level + 1);
142
- itemPre = prefix(level + 2, 'noLastVbar');
140
+ if (label.match(/^\s*call/)) {
141
+ pre = prefix(level + 1, 'noLastVbar');
142
+ itemPre = prefix(level + 2, 'noLast2Vbars');
143
+ } else {
144
+ pre = prefix(level + 1);
145
+ itemPre = prefix(level + 2, 'noLastVbar');
146
+ }
143
147
  for (i = j = 0, len = lObjects.length; j < len; i = ++j) {
144
148
  obj = lObjects[i];
145
149
  logItem(`arg[${i}]`, obj, pre, itemPre);