@markw65/monkeyc-optimizer 1.1.28 → 1.1.30

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/README.md CHANGED
@@ -887,3 +887,18 @@ No functional change, just fixes a typo that broke the typescript exports.
887
887
 
888
888
  - Improved optimizations
889
889
  - Constant folding between `Char` and types other than `Number` is now handled (previously such comparisons were just left for Garmin's compiler to handle). This works around a [bug in Garmin's optimizer](https://forums.garmin.com/developer/connect-iq/i/bug-reports/the-optimizer-constant-folds-char-comparisons-incorrectly) by (correctly) resolving the comparisons before Garmin's optimizer can do the wrong thing.
890
+
891
+ ### 1.1.29
892
+
893
+ - Bug fixes
894
+
895
+ - Fixes an issue where a value could incorrectly be inferred to be true-ish when its declared type was known to be an object of class type. This is not of itself incorrect, but some Toybox APIs are declared as returning an Object of a class, but may in fact return null - so we can't treat them as non-null.
896
+
897
+ - Enhancements
898
+ - various methods used by the extension for completion and hover info have been updated to give more accurate results.
899
+
900
+ ### 1.1.30
901
+
902
+ - Bug fixes
903
+ - Fixes an issue where exporting a project that uses barrels could fail.
904
+ - Fixes a type analysis bug that could result in the type checker incorrectly thinking two types were disjoint.
File without changes
package/build/api.cjs CHANGED
@@ -18,44 +18,44 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var api_exports = {};
20
20
  __export(api_exports, {
21
- checkCompilerVersion: () => import_chunk_ZI7CGRJC.checkCompilerVersion,
22
- collectNamespaces: () => import_chunk_ZI7CGRJC.collectNamespaces,
23
- createDocumentationMap: () => import_chunk_ZI7CGRJC.createDocumentationMap,
24
- diagnostic: () => import_chunk_ZI7CGRJC.diagnostic,
25
- diagnosticHelper: () => import_chunk_ZI7CGRJC.diagnosticHelper,
26
- findNamesInScope: () => import_chunk_ZI7CGRJC.findNamesInScope,
27
- findUsingForNode: () => import_chunk_ZI7CGRJC.findUsingForNode,
28
- formatAst: () => import_chunk_ZI7CGRJC.formatAst,
29
- formatAstLongLines: () => import_chunk_ZI7CGRJC.formatAstLongLines,
30
- getApiFunctionInfo: () => import_chunk_ZI7CGRJC.getApiFunctionInfo,
31
- getApiMapping: () => import_chunk_ZI7CGRJC.getApiMapping,
32
- getSuperClasses: () => import_chunk_ZI7CGRJC.getSuperClasses,
21
+ checkCompilerVersion: () => import_chunk_QINU6R5E.checkCompilerVersion,
22
+ collectNamespaces: () => import_chunk_QINU6R5E.collectNamespaces,
23
+ createDocumentationMap: () => import_chunk_QINU6R5E.createDocumentationMap,
24
+ diagnostic: () => import_chunk_QINU6R5E.diagnostic,
25
+ diagnosticHelper: () => import_chunk_QINU6R5E.diagnosticHelper,
26
+ findNamesInScope: () => import_chunk_QINU6R5E.findNamesInScope,
27
+ findUsingForNode: () => import_chunk_QINU6R5E.findUsingForNode,
28
+ formatAst: () => import_chunk_QINU6R5E.formatAst,
29
+ formatAstLongLines: () => import_chunk_QINU6R5E.formatAstLongLines,
30
+ getApiFunctionInfo: () => import_chunk_QINU6R5E.getApiFunctionInfo,
31
+ getApiMapping: () => import_chunk_QINU6R5E.getApiMapping,
32
+ getSuperClasses: () => import_chunk_QINU6R5E.getSuperClasses,
33
33
  hasProperty: () => import_chunk_MBTLUWXR.hasProperty,
34
- isClassVariable: () => import_chunk_ZI7CGRJC.isClassVariable,
35
- isLocal: () => import_chunk_ZI7CGRJC.isLocal,
36
- isLookupCandidate: () => import_chunk_ZI7CGRJC.isLookupCandidate,
37
- isStateNode: () => import_chunk_ZI7CGRJC.isStateNode,
38
- lookupByFullName: () => import_chunk_ZI7CGRJC.lookupByFullName,
39
- lookupNext: () => import_chunk_ZI7CGRJC.lookupNext,
40
- lookupResultContains: () => import_chunk_ZI7CGRJC.lookupResultContains,
41
- lookupWithType: () => import_chunk_ZI7CGRJC.lookupWithType,
42
- makeToyboxLink: () => import_chunk_ZI7CGRJC.makeToyboxLink,
43
- mapVarDeclsByType: () => import_chunk_ZI7CGRJC.mapVarDeclsByType,
44
- markInvokeClassMethod: () => import_chunk_ZI7CGRJC.markInvokeClassMethod,
45
- parseSdkVersion: () => import_chunk_ZI7CGRJC.parseSdkVersion,
46
- sameLookupResult: () => import_chunk_ZI7CGRJC.sameLookupResult,
34
+ isClassVariable: () => import_chunk_QINU6R5E.isClassVariable,
35
+ isLocal: () => import_chunk_QINU6R5E.isLocal,
36
+ isLookupCandidate: () => import_chunk_QINU6R5E.isLookupCandidate,
37
+ isStateNode: () => import_chunk_QINU6R5E.isStateNode,
38
+ lookupByFullName: () => import_chunk_QINU6R5E.lookupByFullName,
39
+ lookupNext: () => import_chunk_QINU6R5E.lookupNext,
40
+ lookupResultContains: () => import_chunk_QINU6R5E.lookupResultContains,
41
+ lookupWithType: () => import_chunk_QINU6R5E.lookupWithType,
42
+ makeToyboxLink: () => import_chunk_QINU6R5E.makeToyboxLink,
43
+ mapVarDeclsByType: () => import_chunk_QINU6R5E.mapVarDeclsByType,
44
+ markInvokeClassMethod: () => import_chunk_QINU6R5E.markInvokeClassMethod,
45
+ parseSdkVersion: () => import_chunk_QINU6R5E.parseSdkVersion,
46
+ sameLookupResult: () => import_chunk_QINU6R5E.sameLookupResult,
47
47
  traverseAst: () => import_chunk_MBTLUWXR.traverseAst,
48
- variableDeclarationName: () => import_chunk_ZI7CGRJC.variableDeclarationName,
49
- visitReferences: () => import_chunk_ZI7CGRJC.visitReferences,
50
- visit_resources: () => import_chunk_ZI7CGRJC.visit_resources,
51
- visitorNode: () => import_chunk_ZI7CGRJC.visitorNode
48
+ variableDeclarationName: () => import_chunk_QINU6R5E.variableDeclarationName,
49
+ visitReferences: () => import_chunk_QINU6R5E.visitReferences,
50
+ visit_resources: () => import_chunk_QINU6R5E.visit_resources,
51
+ visitorNode: () => import_chunk_QINU6R5E.visitorNode
52
52
  });
53
53
  module.exports = __toCommonJS(api_exports);
54
- var import_chunk_ZI7CGRJC = require("./chunk-ZI7CGRJC.cjs");
54
+ var import_chunk_QINU6R5E = require("./chunk-QINU6R5E.cjs");
55
55
  var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
56
56
  var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
57
57
  var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
58
- (0, import_chunk_ZI7CGRJC.init_api)();
58
+ (0, import_chunk_QINU6R5E.init_api)();
59
59
  // Annotate the CommonJS export names for ESM import in node:
60
60
  0 && (module.exports = {
61
61
  checkCompilerVersion,
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_ZI7CGRJC_exports = {};
30
- __export(chunk_ZI7CGRJC_exports, {
29
+ var chunk_QINU6R5E_exports = {};
30
+ __export(chunk_QINU6R5E_exports, {
31
31
  EnumTagsConst: () => EnumTagsConst,
32
32
  LastTypeTag: () => LastTypeTag,
33
33
  ObjectLikeTagsConst: () => ObjectLikeTagsConst,
@@ -122,7 +122,7 @@ __export(chunk_ZI7CGRJC_exports, {
122
122
  visitorNode: () => visitorNode,
123
123
  xml_util_exports: () => xml_util_exports
124
124
  });
125
- module.exports = __toCommonJS(chunk_ZI7CGRJC_exports);
125
+ module.exports = __toCommonJS(chunk_QINU6R5E_exports);
126
126
  var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
127
127
  var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
128
128
  var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
@@ -10768,6 +10768,7 @@ function filterDecls(decls, possible, name) {
10768
10768
  return [null, null];
10769
10769
  const result = decls.reduce(
10770
10770
  (cur, decl) => {
10771
+ let declSups;
10771
10772
  const found = possible.reduce((flag, poss) => {
10772
10773
  if (decl === poss || poss.type === "ClassDeclaration" && getSuperClasses(poss)?.has(decl)) {
10773
10774
  if (!cur[0]) {
@@ -10776,12 +10777,27 @@ function filterDecls(decls, possible, name) {
10776
10777
  cur[0].add(poss);
10777
10778
  cur[1].add(poss);
10778
10779
  return true;
10779
- } else if (decl.type === "ClassDeclaration" && getSuperClasses(decl)?.has(poss)) {
10780
+ } else if (declSups !== void 0 ? declSups?.has(poss) : decl.type === "ClassDeclaration" && (declSups = getSuperClasses(decl))?.has(poss)) {
10780
10781
  if (!cur[0]) {
10781
- cur = [/* @__PURE__ */ new Set(), /* @__PURE__ */ new Set()];
10782
+ cur = [/* @__PURE__ */ new Set([decl]), /* @__PURE__ */ new Set([poss])];
10783
+ } else {
10784
+ cur[0].add(decl);
10785
+ if (Array.from(cur[1]).every((d) => {
10786
+ if (decl === d)
10787
+ return false;
10788
+ if (!declSups.has(d))
10789
+ return true;
10790
+ if (d.type === "ClassDeclaration" && getSuperClasses(d)?.has(poss)) {
10791
+ return false;
10792
+ }
10793
+ if (poss.type === "ClassDeclaration" && getSuperClasses(poss)?.has(d)) {
10794
+ cur[1].delete(d);
10795
+ }
10796
+ return true;
10797
+ })) {
10798
+ cur[1].add(poss);
10799
+ }
10782
10800
  }
10783
- cur[0].add(decl);
10784
- cur[1].add(poss);
10785
10801
  return true;
10786
10802
  }
10787
10803
  return flag;
@@ -13174,7 +13190,8 @@ var init_types = (0, import_chunk_ABYVSU2C.__esm)({
13174
13190
  ValueTypeTagsConst = 8 | 16 | 32 | 64 | 128 | 256 | 131072;
13175
13191
  ObjectLikeTagsConst = 6 | ValueTypeTagsConst | 512 | 1024 | 2048 | 65536;
13176
13192
  EnumTagsConst = SingletonTypeTagsConst | ValueTypeTagsConst & ~131072;
13177
- TruthyTypes = 4 | 32768 | 4096 | 16384 | 8192;
13193
+ TruthyTypes = 4 | // TypeTag.Object | // omit because of missing null on various Toybox types
13194
+ 4096 | 16384 | 8192;
13178
13195
  }
13179
13196
  });
13180
13197
  function couldBeHelper(a, b, shallow) {
@@ -13183,6 +13200,9 @@ function couldBeHelper(a, b, shallow) {
13183
13200
  if (a.value == null || b.value == null || a.value === b.value) {
13184
13201
  return true;
13185
13202
  }
13203
+ if (common & SingletonTypeTagsConst) {
13204
+ return true;
13205
+ }
13186
13206
  if (common & ValueTypeTagsConst && common & UnionDataTypeTagsConst) {
13187
13207
  return true;
13188
13208
  }
@@ -19533,6 +19553,20 @@ function lookupWithType(state, node, typeMap, nonLocal = false, stack = null) {
19533
19553
  return [node.property.name, next];
19534
19554
  }
19535
19555
  }
19556
+ } else if (node.type === "Literal") {
19557
+ const type = typeFromLiteral(node);
19558
+ const results2 = getStateNodeDeclsFromType(state, type);
19559
+ return [node.raw, [{ parent: null, results: results2 }]];
19560
+ } else if (node.type === "UnaryExpression" && node.operator === ":") {
19561
+ return [
19562
+ node.argument.name,
19563
+ [
19564
+ {
19565
+ parent: null,
19566
+ results: lookupByFullName(state, "Toybox.Lang.Symbol")
19567
+ }
19568
+ ]
19569
+ ];
19536
19570
  }
19537
19571
  return results;
19538
19572
  }
@@ -19993,7 +20027,7 @@ function findNamesInExactScope(decl, regexp) {
19993
20027
  if (!decl.decls)
19994
20028
  return [];
19995
20029
  return Object.entries(decl.decls).flatMap(
19996
- ([key, value2]) => regexp.test(key) ? value2 : []
20030
+ ([name, decls]) => regexp.test(name) ? { name, decls } : []
19997
20031
  );
19998
20032
  }
19999
20033
  function findNamesInScope(declStack, pattern) {
@@ -20003,11 +20037,18 @@ function findNamesInScope(declStack, pattern) {
20003
20037
  decls.forEach((parent) => {
20004
20038
  if (parent.type === "ClassDeclaration") {
20005
20039
  if (parent.superClass && parent.superClass !== true) {
20006
- helper(parent.superClass, depth2 + 1);
20040
+ helper(parent.superClass, depth2);
20007
20041
  }
20008
20042
  }
20009
- findNamesInExactScope(parent, regex).forEach((sn) => {
20010
- results.set(sn, { parent, depth: depth2 });
20043
+ findNamesInExactScope(parent, regex).forEach(({ name, decls: decls2 }) => {
20044
+ let names = results.get(name);
20045
+ if (!names) {
20046
+ results.set(name, names = /* @__PURE__ */ new Map());
20047
+ }
20048
+ names.set(
20049
+ depth2,
20050
+ decls2.map((decl) => ({ decl, parent }))
20051
+ );
20011
20052
  });
20012
20053
  });
20013
20054
  };
@@ -20016,7 +20057,11 @@ function findNamesInScope(declStack, pattern) {
20016
20057
  helper(declStack[declStack.length - 1 - depth], depth);
20017
20058
  depth++;
20018
20059
  }
20019
- return Array.from(results);
20060
+ return Array.from(results.values()).map(
20061
+ (m) => Array.from(m).map(
20062
+ ([depth2, entries]) => entries.map(({ decl, parent }) => [decl, { parent, depth: depth2 }])
20063
+ )
20064
+ ).flat(2);
20020
20065
  }
20021
20066
  function mapVarDeclsByType(state, decls, node, typeMap) {
20022
20067
  return decls.flatMap((decl) => {
@@ -29802,7 +29847,7 @@ async function generateOneConfig(buildConfig, manifestXML, dependencyFiles, conf
29802
29847
  const opt_time = await (0, import_chunk_PVBIKZYZ.first_modified)(
29803
29848
  Object.values(fnMap).map((v) => v.output)
29804
29849
  );
29805
- if (source_time < opt_time && 1684251991147 < opt_time) {
29850
+ if (source_time < opt_time && 1686169752423 < opt_time) {
29806
29851
  return {
29807
29852
  hasTests,
29808
29853
  diagnostics: prevDiagnostics,
@@ -29839,7 +29884,7 @@ async function generateOneConfig(buildConfig, manifestXML, dependencyFiles, conf
29839
29884
  hasTests: hasTests2,
29840
29885
  diagnostics,
29841
29886
  sdkVersion,
29842
- optimizerVersion: "1.1.28",
29887
+ optimizerVersion: "1.1.30",
29843
29888
  ...Object.fromEntries(
29844
29889
  configOptionsToCheck.map((option) => [option, config[option]])
29845
29890
  )
@@ -30062,6 +30107,26 @@ var init_optimizer = (0, import_chunk_ABYVSU2C.__esm)({
30062
30107
  ];
30063
30108
  }
30064
30109
  });
30110
+ function restoreQualifier(qualifier) {
30111
+ if (qualifier.resourceMap) {
30112
+ Object.values(qualifier.resourceMap).forEach((doc) => restoreDocument(doc));
30113
+ }
30114
+ if (qualifier.barrelMap) {
30115
+ Object.values(qualifier.barrelMap).forEach((barrel) => {
30116
+ restoreQualifier(barrel.qualifier);
30117
+ restoreDocument(barrel.xml);
30118
+ });
30119
+ }
30120
+ }
30121
+ function restoreDocument(obj) {
30122
+ Object.setPrototypeOf(obj, xml_util_exports.Document.prototype);
30123
+ const doc = obj;
30124
+ if (doc.body.elements) {
30125
+ Object.setPrototypeOf(doc.body, xml_util_exports.Nodes.prototype);
30126
+ } else {
30127
+ Object.setPrototypeOf(doc.body, Error.prototype);
30128
+ }
30129
+ }
30065
30130
  async function performTask(task) {
30066
30131
  const type = task.type;
30067
30132
  const handler = Object.prototype.hasOwnProperty.call(workerTaskHandlers, type) && workerTaskHandlers[type];
@@ -30085,13 +30150,9 @@ var init_worker_task = (0, import_chunk_ABYVSU2C.__esm)({
30085
30150
  return generateOptimizedProject(data.options);
30086
30151
  },
30087
30152
  generateOneConfig(data) {
30088
- if (data.buildConfig.resourceMap) {
30089
- Object.values(data.buildConfig.resourceMap).forEach(
30090
- (doc) => Object.setPrototypeOf(doc, xml_util_exports.Document.prototype)
30091
- );
30092
- }
30153
+ restoreQualifier(data.buildConfig);
30093
30154
  if (data.manifestXML) {
30094
- Object.setPrototypeOf(data.manifestXML, xml_util_exports.Document.prototype);
30155
+ restoreDocument(data.manifestXML);
30095
30156
  }
30096
30157
  return generateOneConfig(
30097
30158
  data.buildConfig,
@@ -18,29 +18,29 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var optimizer_exports = {};
20
20
  __export(optimizer_exports, {
21
- StateNodeAttributes: () => import_chunk_ZI7CGRJC.StateNodeAttributes,
22
- buildOptimizedProject: () => import_chunk_ZI7CGRJC.buildOptimizedProject,
21
+ StateNodeAttributes: () => import_chunk_QINU6R5E.StateNodeAttributes,
22
+ buildOptimizedProject: () => import_chunk_QINU6R5E.buildOptimizedProject,
23
23
  copyRecursiveAsNeeded: () => import_chunk_PVBIKZYZ.copyRecursiveAsNeeded,
24
- defaultConfig: () => import_chunk_ZI7CGRJC.defaultConfig,
25
- display: () => import_chunk_ZI7CGRJC.display,
26
- generateApiMirTests: () => import_chunk_ZI7CGRJC.generateApiMirTests,
27
- generateOneConfig: () => import_chunk_ZI7CGRJC.generateOneConfig,
28
- generateOptimizedProject: () => import_chunk_ZI7CGRJC.generateOptimizedProject,
29
- getConfig: () => import_chunk_ZI7CGRJC.getConfig,
30
- getProjectAnalysis: () => import_chunk_ZI7CGRJC.getProjectAnalysis,
31
- get_jungle: () => import_chunk_ZI7CGRJC.get_jungle,
32
- isErrorWithLocation: () => import_chunk_ZI7CGRJC.isErrorWithLocation,
33
- launchSimulator: () => import_chunk_ZI7CGRJC.launchSimulator,
34
- manifestProducts: () => import_chunk_ZI7CGRJC.manifestProducts,
35
- mctree: () => import_chunk_ZI7CGRJC.mctree,
36
- simulateProgram: () => import_chunk_ZI7CGRJC.simulateProgram
24
+ defaultConfig: () => import_chunk_QINU6R5E.defaultConfig,
25
+ display: () => import_chunk_QINU6R5E.display,
26
+ generateApiMirTests: () => import_chunk_QINU6R5E.generateApiMirTests,
27
+ generateOneConfig: () => import_chunk_QINU6R5E.generateOneConfig,
28
+ generateOptimizedProject: () => import_chunk_QINU6R5E.generateOptimizedProject,
29
+ getConfig: () => import_chunk_QINU6R5E.getConfig,
30
+ getProjectAnalysis: () => import_chunk_QINU6R5E.getProjectAnalysis,
31
+ get_jungle: () => import_chunk_QINU6R5E.get_jungle,
32
+ isErrorWithLocation: () => import_chunk_QINU6R5E.isErrorWithLocation,
33
+ launchSimulator: () => import_chunk_QINU6R5E.launchSimulator,
34
+ manifestProducts: () => import_chunk_QINU6R5E.manifestProducts,
35
+ mctree: () => import_chunk_QINU6R5E.mctree,
36
+ simulateProgram: () => import_chunk_QINU6R5E.simulateProgram
37
37
  });
38
38
  module.exports = __toCommonJS(optimizer_exports);
39
- var import_chunk_ZI7CGRJC = require("./chunk-ZI7CGRJC.cjs");
39
+ var import_chunk_QINU6R5E = require("./chunk-QINU6R5E.cjs");
40
40
  var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
41
41
  var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
42
42
  var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
43
- (0, import_chunk_ZI7CGRJC.init_optimizer)();
43
+ (0, import_chunk_QINU6R5E.init_optimizer)();
44
44
  // Annotate the CommonJS export names for ESM import in node:
45
45
  0 && (module.exports = {
46
46
  StateNodeAttributes,
@@ -18,25 +18,25 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var sdk_util_exports = {};
20
20
  __export(sdk_util_exports, {
21
- SectionKinds: () => import_chunk_ZI7CGRJC.SectionKinds,
22
- appSupport: () => import_chunk_ZI7CGRJC.appSupport,
23
- connectiq: () => import_chunk_ZI7CGRJC.connectiq,
24
- getDeviceInfo: () => import_chunk_ZI7CGRJC.getDeviceInfo,
25
- getFunctionDocumentation: () => import_chunk_ZI7CGRJC.getFunctionDocumentation,
26
- getLanguages: () => import_chunk_ZI7CGRJC.getLanguages,
27
- getSdkPath: () => import_chunk_ZI7CGRJC.getSdkPath,
28
- isWin: () => import_chunk_ZI7CGRJC.isWin,
29
- optimizeProgram: () => import_chunk_ZI7CGRJC.optimizeProgram,
30
- readPrg: () => import_chunk_ZI7CGRJC.readPrg,
31
- readPrgWithOffsets: () => import_chunk_ZI7CGRJC.readPrgWithOffsets,
32
- xmlUtil: () => import_chunk_ZI7CGRJC.xml_util_exports
21
+ SectionKinds: () => import_chunk_QINU6R5E.SectionKinds,
22
+ appSupport: () => import_chunk_QINU6R5E.appSupport,
23
+ connectiq: () => import_chunk_QINU6R5E.connectiq,
24
+ getDeviceInfo: () => import_chunk_QINU6R5E.getDeviceInfo,
25
+ getFunctionDocumentation: () => import_chunk_QINU6R5E.getFunctionDocumentation,
26
+ getLanguages: () => import_chunk_QINU6R5E.getLanguages,
27
+ getSdkPath: () => import_chunk_QINU6R5E.getSdkPath,
28
+ isWin: () => import_chunk_QINU6R5E.isWin,
29
+ optimizeProgram: () => import_chunk_QINU6R5E.optimizeProgram,
30
+ readPrg: () => import_chunk_QINU6R5E.readPrg,
31
+ readPrgWithOffsets: () => import_chunk_QINU6R5E.readPrgWithOffsets,
32
+ xmlUtil: () => import_chunk_QINU6R5E.xml_util_exports
33
33
  });
34
34
  module.exports = __toCommonJS(sdk_util_exports);
35
- var import_chunk_ZI7CGRJC = require("./chunk-ZI7CGRJC.cjs");
35
+ var import_chunk_QINU6R5E = require("./chunk-QINU6R5E.cjs");
36
36
  var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
37
37
  var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
38
38
  var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
39
- (0, import_chunk_ZI7CGRJC.init_sdk_util)();
39
+ (0, import_chunk_QINU6R5E.init_sdk_util)();
40
40
  // Annotate the CommonJS export names for ESM import in node:
41
41
  0 && (module.exports = {
42
42
  SectionKinds,
@@ -22,10 +22,10 @@ export declare function lookupNext(state: ProgramStateLive, results: LookupDefin
22
22
  export declare function lookupWithType(state: ProgramStateAnalysis, node: mctree.Node, typeMap: TypeMap | undefined | null, nonLocal?: boolean, stack?: ProgramStateStack | null): LookupResult;
23
23
  export declare function collectNamespaces(ast: mctree.Program, stateIn?: ProgramState): ProgramStateNode;
24
24
  export declare function formatAst(node: mctree.Node, monkeyCSource?: string | null, options?: Record<string, unknown> | null): string;
25
- export declare function findNamesInScope(declStack: StateNode[][], pattern: string | RegExp): [StateNodeDecl, {
26
- parent: StateNode;
27
- depth: number;
28
- }][];
25
+ export declare function findNamesInScope(declStack: StateNode[][], pattern: string | RegExp): (readonly [StateNodeDecl, {
26
+ readonly parent: StateNode;
27
+ readonly depth: number;
28
+ }])[];
29
29
  export declare function mapVarDeclsByType(state: ProgramStateAnalysis, decls: StateNodeDecl[], node: mctree.Node, typeMap: TypeMap | null | undefined): (mctree.Identifier | mctree.EnumStringMember | mctree.AsIdentifier | FunctionStateNode | ClassStateNode | ModuleStateNode | ProgramStateNode | VariableStateNode | import("./optimizer-types").BlockStateNode | TypedefStateNode | EnumStateNode)[];
30
30
  export declare function formatAstLongLines(node: mctree.Node): string;
31
31
  export declare function createDocumentationMap(functionDocumentation: {
@@ -83,6 +83,6 @@ export declare const workerTaskHandlers: {
83
83
  }>;
84
84
  };
85
85
  type RemovePromise<T> = T extends Promise<infer U> ? U : T;
86
- export type WorkerTaskResult<T> = T extends WorkerTask ? RemovePromise<ReturnType<typeof workerTaskHandlers[T["type"]]>> : never;
86
+ export type WorkerTaskResult<T> = T extends WorkerTask ? RemovePromise<ReturnType<(typeof workerTaskHandlers)[T["type"]]>> : never;
87
87
  export declare function performTask<T extends WorkerTask>(task: T): Promise<WorkerTaskResult<T>>;
88
88
  export {};
@@ -21,17 +21,17 @@ __export(worker_thread_exports, {
21
21
  default: () => worker_thread_default
22
22
  });
23
23
  module.exports = __toCommonJS(worker_thread_exports);
24
- var import_chunk_ZI7CGRJC = require("./chunk-ZI7CGRJC.cjs");
24
+ var import_chunk_QINU6R5E = require("./chunk-QINU6R5E.cjs");
25
25
  var import_chunk_PVBIKZYZ = require("./chunk-PVBIKZYZ.cjs");
26
26
  var import_chunk_MBTLUWXR = require("./chunk-MBTLUWXR.cjs");
27
27
  var import_chunk_ABYVSU2C = require("./chunk-ABYVSU2C.cjs");
28
28
  var import_node_worker_threads = require("node:worker_threads");
29
29
  var require_worker_thread = (0, import_chunk_ABYVSU2C.__commonJS)({
30
30
  "src/worker-thread.ts"() {
31
- (0, import_chunk_ZI7CGRJC.init_worker_task)();
31
+ (0, import_chunk_QINU6R5E.init_worker_task)();
32
32
  if (import_node_worker_threads.parentPort) {
33
33
  import_node_worker_threads.parentPort.on("message", async (task) => {
34
- return import_node_worker_threads.parentPort.postMessage(await (0, import_chunk_ZI7CGRJC.performTask)(task));
34
+ return import_node_worker_threads.parentPort.postMessage(await (0, import_chunk_QINU6R5E.performTask)(task));
35
35
  });
36
36
  }
37
37
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@markw65/monkeyc-optimizer",
3
3
  "type": "commonjs",
4
- "version": "1.1.28",
4
+ "version": "1.1.30",
5
5
  "description": "Source to source optimizer for Garmin Monkey C code",
6
6
  "main": "build/optimizer.cjs",
7
7
  "types": "build/src/optimizer.d.ts",