greybel-interpreter 2.2.3 → 2.2.4

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.
@@ -17,6 +17,7 @@ const cps_1 = require("./cps");
17
17
  const handler_container_1 = require("./handler-container");
18
18
  const noop_1 = require("./operations/noop");
19
19
  const default_1 = require("./types/default");
20
+ const function_1 = require("./types/function");
20
21
  const list_1 = require("./types/list");
21
22
  const map_1 = require("./types/map");
22
23
  const number_1 = require("./types/number");
@@ -148,10 +149,12 @@ class Interpreter extends events_1.EventEmitter {
148
149
  const numberIntrinsics = map_1.CustomMap.createWithInitialValue(number_1.CustomNumber.intrinsics);
149
150
  const listIntrinsics = map_1.CustomMap.createWithInitialValue(list_1.CustomList.intrinsics);
150
151
  const mapIntrinsics = map_1.CustomMap.createWithInitialValue(map_1.CustomMap.intrinsics);
152
+ const funcRefIntrinsics = map_1.CustomMap.createWithInitialValue(function_1.CustomFunction.intrinsics);
151
153
  this.apiContext.set(new string_1.CustomString('string'), stringIntrinsics);
152
154
  this.apiContext.set(new string_1.CustomString('number'), numberIntrinsics);
153
155
  this.apiContext.set(new string_1.CustomString('list'), listIntrinsics);
154
156
  this.apiContext.set(new string_1.CustomString('map'), mapIntrinsics);
157
+ this.apiContext.set(new string_1.CustomString('funcRef'), funcRefIntrinsics);
155
158
  this.apiContext.extend(this.api);
156
159
  const newParams = new list_1.CustomList(this.params.map((item) => new string_1.CustomString(item)));
157
160
  this.globalContext.scope.set(exports.PARAMS_PROPERTY, newParams);
@@ -1,5 +1,6 @@
1
1
  import { OperationContext } from '../context';
2
2
  import { Operation } from '../operations/operation';
3
+ import { ObjectValue } from '../utils/object-value';
3
4
  import { CustomValue } from './base';
4
5
  import { CustomMap } from './map';
5
6
  export interface Callback {
@@ -15,6 +16,7 @@ export declare class Argument {
15
16
  constructor(name: string, defaultValue?: Operation | CustomValue);
16
17
  }
17
18
  export declare class CustomFunction extends CustomValue {
19
+ static readonly intrinsics: ObjectValue;
18
20
  readonly scope?: OperationContext;
19
21
  readonly name: string;
20
22
  readonly value: Callback;
@@ -13,6 +13,7 @@ exports.CustomFunction = exports.Argument = exports.SUPER_NAMESPACE = exports.SE
13
13
  const context_1 = require("../context");
14
14
  const operation_1 = require("../operations/operation");
15
15
  const reference_1 = require("../operations/reference");
16
+ const object_value_1 = require("../utils/object-value");
16
17
  const base_1 = require("./base");
17
18
  const default_1 = require("./default");
18
19
  const map_1 = require("./map");
@@ -82,7 +83,7 @@ class CustomFunction extends base_1.CustomValue {
82
83
  return true;
83
84
  }
84
85
  instanceOf(v) {
85
- return v instanceof CustomFunction;
86
+ return v.value === CustomFunction.intrinsics;
86
87
  }
87
88
  run(self, args, callContext, next) {
88
89
  var _a;
@@ -122,4 +123,5 @@ class CustomFunction extends base_1.CustomValue {
122
123
  });
123
124
  }
124
125
  }
126
+ CustomFunction.intrinsics = new object_value_1.ObjectValue();
125
127
  exports.CustomFunction = CustomFunction;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greybel-interpreter",
3
- "version": "2.2.3",
3
+ "version": "2.2.4",
4
4
  "description": "Interpreter",
5
5
  "main": "dist/index",
6
6
  "typings": "dist/index",