@jdeighan/coffee-utils 4.1.14 → 4.1.18

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jdeighan/coffee-utils",
3
3
  "type": "module",
4
- "version": "4.1.14",
4
+ "version": "4.1.18",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
@@ -19,6 +19,9 @@
19
19
  "engines": {
20
20
  "node": ">=12.0.0"
21
21
  },
22
+ "ava": {
23
+ "verbose": false
24
+ },
22
25
  "scripts": {
23
26
  "build": "cls && rm -f ./src/*.js && coffee -c ./src",
24
27
  "old_pretest": "npm run build && rm -f ./test/*.js && rm -f ./test/*.coffee && cielo -fq ./test",
@@ -22,8 +22,11 @@ export class CallStack
22
22
 
23
23
  returnFrom: (fName) ->
24
24
 
25
+ if @lStack.length == 0
26
+ croak "returnFrom('#{fName}') but stack is empty"
25
27
  {funcName, hInfo} = @lStack.pop()
26
28
  if funcName != fName
29
+ @dump()
27
30
  croak "returnFrom('#{fName}') but TOS is '#{funcName}'"
28
31
  return hInfo
29
32
 
@@ -37,7 +40,7 @@ export class CallStack
37
40
 
38
41
  dump: (label='CALL STACK') ->
39
42
 
40
- log "#{label}:"
43
+ console.log "#{label}:"
41
44
  for item, i in @lStack
42
- log "#{i}: #{JSON.stringify(item)}"
45
+ console.log "#{i}: #{JSON.stringify(item)}"
43
46
  return
package/src/call_stack.js CHANGED
@@ -23,8 +23,12 @@ export var CallStack = class CallStack {
23
23
  // ........................................................................
24
24
  returnFrom(fName) {
25
25
  var funcName, hInfo;
26
+ if (this.lStack.length === 0) {
27
+ croak(`returnFrom('${fName}') but stack is empty`);
28
+ }
26
29
  ({funcName, hInfo} = this.lStack.pop());
27
30
  if (funcName !== fName) {
31
+ this.dump();
28
32
  croak(`returnFrom('${fName}') but TOS is '${funcName}'`);
29
33
  }
30
34
  return hInfo;
@@ -38,11 +42,11 @@ export var CallStack = class CallStack {
38
42
  // ........................................................................
39
43
  dump(label = 'CALL STACK') {
40
44
  var i, item, j, len, ref;
41
- log(`${label}:`);
45
+ console.log(`${label}:`);
42
46
  ref = this.lStack;
43
47
  for (i = j = 0, len = ref.length; j < len; i = ++j) {
44
48
  item = ref[i];
45
- log(`${i}: ${JSON.stringify(item)}`);
49
+ console.log(`${i}: ${JSON.stringify(item)}`);
46
50
  }
47
51
  }
48
52
 
@@ -162,7 +162,7 @@ export debug = (lArgs...) ->
162
162
  else if (lMatches = str.match(///^
163
163
  \s*
164
164
  return
165
- .*
165
+ .+
166
166
  from
167
167
  \s+
168
168
  ([A-Za-z_][A-Za-z0-9_\.]*)
@@ -178,7 +178,7 @@ export var debug = function(...lArgs) {
178
178
  curFunc = lMatches[1];
179
179
  stack.call(curFunc, curEnv());
180
180
  debugging = shouldDebug(curFunc, debugging);
181
- } else if ((lMatches = str.match(/^\s*return.*from\s+([A-Za-z_][A-Za-z0-9_\.]*)/))) {
181
+ } else if ((lMatches = str.match(/^\s*return.+from\s+([A-Za-z_][A-Za-z0-9_\.]*)/))) {
182
182
  returning = true;
183
183
  curFunc = lMatches[1];
184
184
  hInfo = stack.returnFrom(curFunc);