@bingine/cemem 0.0.0-stage → 0.1.0

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.
Files changed (138) hide show
  1. package/PORT-SCOPE.md +169 -0
  2. package/README.md +451 -2
  3. package/dist/cjs/addr/expression.js +650 -0
  4. package/dist/cjs/addr/expression.js.map +1 -0
  5. package/dist/cjs/addresslist/memory-record.js +612 -0
  6. package/dist/cjs/addresslist/memory-record.js.map +1 -0
  7. package/dist/cjs/asm/assembler.js +354 -0
  8. package/dist/cjs/asm/assembler.js.map +1 -0
  9. package/dist/cjs/asm/autoassembler-directives.js +362 -0
  10. package/dist/cjs/asm/autoassembler-directives.js.map +1 -0
  11. package/dist/cjs/asm/autoassembler.js +2163 -0
  12. package/dist/cjs/asm/autoassembler.js.map +1 -0
  13. package/dist/cjs/asm/backend.js +394 -0
  14. package/dist/cjs/asm/backend.js.map +1 -0
  15. package/dist/cjs/asm/disassembler.js +715 -0
  16. package/dist/cjs/asm/disassembler.js.map +1 -0
  17. package/dist/cjs/backend/dbk-backend.js +683 -0
  18. package/dist/cjs/backend/dbk-backend.js.map +1 -0
  19. package/dist/cjs/backend/native-ce-backend.js +667 -0
  20. package/dist/cjs/backend/native-ce-backend.js.map +1 -0
  21. package/dist/cjs/backend/self-backend.js +449 -0
  22. package/dist/cjs/backend/self-backend.js.map +1 -0
  23. package/dist/cjs/backend/types.js +48 -0
  24. package/dist/cjs/backend/types.js.map +1 -0
  25. package/dist/cjs/cheattable/ct-format.js +533 -0
  26. package/dist/cjs/cheattable/ct-format.js.map +1 -0
  27. package/dist/cjs/index.js +219 -0
  28. package/dist/cjs/index.js.map +1 -0
  29. package/dist/cjs/lua/aa.js +230 -0
  30. package/dist/cjs/lua/aa.js.map +1 -0
  31. package/dist/cjs/lua/addressing.js +118 -0
  32. package/dist/cjs/lua/addressing.js.map +1 -0
  33. package/dist/cjs/lua/api.js +736 -0
  34. package/dist/cjs/lua/api.js.map +1 -0
  35. package/dist/cjs/lua/asm.js +220 -0
  36. package/dist/cjs/lua/asm.js.map +1 -0
  37. package/dist/cjs/lua/bridge.js +526 -0
  38. package/dist/cjs/lua/bridge.js.map +1 -0
  39. package/dist/cjs/lua/marshal.js +562 -0
  40. package/dist/cjs/lua/marshal.js.map +1 -0
  41. package/dist/cjs/lua/memory.js +213 -0
  42. package/dist/cjs/lua/memory.js.map +1 -0
  43. package/dist/cjs/lua/objects.js +1070 -0
  44. package/dist/cjs/lua/objects.js.map +1 -0
  45. package/dist/cjs/lua/scan.js +543 -0
  46. package/dist/cjs/lua/scan.js.map +1 -0
  47. package/dist/cjs/lua/types.js +103 -0
  48. package/dist/cjs/lua/types.js.map +1 -0
  49. package/dist/cjs/scanner/matcher.js +781 -0
  50. package/dist/cjs/scanner/matcher.js.map +1 -0
  51. package/dist/cjs/scanner/pointer-scan.js +546 -0
  52. package/dist/cjs/scanner/pointer-scan.js.map +1 -0
  53. package/dist/cjs/scanner/scanner.js +513 -0
  54. package/dist/cjs/scanner/scanner.js.map +1 -0
  55. package/dist/cjs/scanner/shared-layout.js +207 -0
  56. package/dist/cjs/scanner/shared-layout.js.map +1 -0
  57. package/dist/cjs/types.js +190 -0
  58. package/dist/cjs/types.js.map +1 -0
  59. package/dist/cjs/value-codec.js +515 -0
  60. package/dist/cjs/value-codec.js.map +1 -0
  61. package/dist/cjs/win/process.js +475 -0
  62. package/dist/cjs/win/process.js.map +1 -0
  63. package/dist/cjs/win/scan-worker.js +84 -0
  64. package/dist/cjs/win/scan-worker.js.map +1 -0
  65. package/dist/cjs/win/winapi.js +403 -0
  66. package/dist/cjs/win/winapi.js.map +1 -0
  67. package/dist/types/addr/expression.d.ts +98 -0
  68. package/dist/types/addr/expression.d.ts.map +1 -0
  69. package/dist/types/addresslist/memory-record.d.ts +218 -0
  70. package/dist/types/addresslist/memory-record.d.ts.map +1 -0
  71. package/dist/types/asm/assembler.d.ts +106 -0
  72. package/dist/types/asm/assembler.d.ts.map +1 -0
  73. package/dist/types/asm/autoassembler-directives.d.ts +118 -0
  74. package/dist/types/asm/autoassembler-directives.d.ts.map +1 -0
  75. package/dist/types/asm/autoassembler.d.ts +434 -0
  76. package/dist/types/asm/autoassembler.d.ts.map +1 -0
  77. package/dist/types/asm/backend.d.ts +167 -0
  78. package/dist/types/asm/backend.d.ts.map +1 -0
  79. package/dist/types/asm/disassembler.d.ts +194 -0
  80. package/dist/types/asm/disassembler.d.ts.map +1 -0
  81. package/dist/types/backend/dbk-backend.d.ts +353 -0
  82. package/dist/types/backend/dbk-backend.d.ts.map +1 -0
  83. package/dist/types/backend/native-ce-backend.d.ts +213 -0
  84. package/dist/types/backend/native-ce-backend.d.ts.map +1 -0
  85. package/dist/types/backend/self-backend.d.ts +64 -0
  86. package/dist/types/backend/self-backend.d.ts.map +1 -0
  87. package/dist/types/backend/types.d.ts +176 -0
  88. package/dist/types/backend/types.d.ts.map +1 -0
  89. package/dist/types/cheattable/ct-format.d.ts +100 -0
  90. package/dist/types/cheattable/ct-format.d.ts.map +1 -0
  91. package/dist/types/index.d.ts +54 -0
  92. package/dist/types/index.d.ts.map +1 -0
  93. package/dist/types/lua/aa.d.ts +107 -0
  94. package/dist/types/lua/aa.d.ts.map +1 -0
  95. package/dist/types/lua/addressing.d.ts +41 -0
  96. package/dist/types/lua/addressing.d.ts.map +1 -0
  97. package/dist/types/lua/api.d.ts +46 -0
  98. package/dist/types/lua/api.d.ts.map +1 -0
  99. package/dist/types/lua/asm.d.ts +42 -0
  100. package/dist/types/lua/asm.d.ts.map +1 -0
  101. package/dist/types/lua/bridge.d.ts +129 -0
  102. package/dist/types/lua/bridge.d.ts.map +1 -0
  103. package/dist/types/lua/marshal.d.ts +244 -0
  104. package/dist/types/lua/marshal.d.ts.map +1 -0
  105. package/dist/types/lua/memory.d.ts +61 -0
  106. package/dist/types/lua/memory.d.ts.map +1 -0
  107. package/dist/types/lua/objects.d.ts +210 -0
  108. package/dist/types/lua/objects.d.ts.map +1 -0
  109. package/dist/types/lua/scan.d.ts +106 -0
  110. package/dist/types/lua/scan.d.ts.map +1 -0
  111. package/dist/types/lua/types.d.ts +146 -0
  112. package/dist/types/lua/types.d.ts.map +1 -0
  113. package/dist/types/scanner/matcher.d.ts +122 -0
  114. package/dist/types/scanner/matcher.d.ts.map +1 -0
  115. package/dist/types/scanner/pointer-scan.d.ts +187 -0
  116. package/dist/types/scanner/pointer-scan.d.ts.map +1 -0
  117. package/dist/types/scanner/scanner.d.ts +150 -0
  118. package/dist/types/scanner/scanner.d.ts.map +1 -0
  119. package/dist/types/scanner/shared-layout.d.ts +96 -0
  120. package/dist/types/scanner/shared-layout.d.ts.map +1 -0
  121. package/dist/types/types.d.ts +239 -0
  122. package/dist/types/types.d.ts.map +1 -0
  123. package/dist/types/value-codec.d.ts +134 -0
  124. package/dist/types/value-codec.d.ts.map +1 -0
  125. package/dist/types/win/process.d.ts +190 -0
  126. package/dist/types/win/process.d.ts.map +1 -0
  127. package/dist/types/win/scan-worker.d.ts +51 -0
  128. package/dist/types/win/scan-worker.d.ts.map +1 -0
  129. package/dist/types/win/winapi.d.ts +144 -0
  130. package/dist/types/win/winapi.d.ts.map +1 -0
  131. package/docs/assembler.md +371 -0
  132. package/docs/autoassembler.md +423 -0
  133. package/docs/backend-dbk.md +305 -0
  134. package/docs/backends.md +273 -0
  135. package/docs/evidence/atomics-wait-io.js +20 -0
  136. package/docs/evidence/mini-repro.js +98 -0
  137. package/docs/lua-api.md +718 -0
  138. package/package.json +60 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/lua/scan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ /**
3
+ * Lua 桥的公共类型定义。
4
+ *
5
+ * 桥的两侧类型约定(重要):
6
+ * - JS 侧地址一律用 `bigint`;Lua 侧(Lua 5.4)是 64 位 integer。
7
+ * - `wasmoon` 自带的 JS↔Lua 函数桥会把 Lua integer 转成 JS `number`,
8
+ * 超过 2^53 就丢精度,而且不支持 bigint 返回值。
9
+ * 因此本桥**不使用** wasmoon 的高层函数注册(`global.set`),
10
+ * 而是用 Lua 原始 C API(lua_pushcclosure + addFunction)自建桥,
11
+ * 整数通过 `lua_pushinteger` / `lua_tointegerx` 以 BigInt 原样传递。
12
+ *
13
+ * 该文件只放类型与纯数据类,不放任何 Lua 依赖,便于被其它模块安全引用。
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.SymbolTable = exports.MultiReturn = void 0;
17
+ exports.isBridgeObject = isBridgeObject;
18
+ /**
19
+ * 多返回值标记。
20
+ *
21
+ * Lua 函数可以返回多个值,但 JS 的数组语义被占用为「Lua table」,
22
+ * 因此用本类显式表示多返回值(与 wasmoon 的 LuaMultiReturn 同款思路):
23
+ * return new MultiReturn(1n, 'abc', true);
24
+ */
25
+ class MultiReturn extends Array {
26
+ constructor(...values) {
27
+ super(...values);
28
+ Object.setPrototypeOf(this, MultiReturn.prototype);
29
+ }
30
+ }
31
+ exports.MultiReturn = MultiReturn;
32
+ /** 判断是否是桥接对象。 */
33
+ function isBridgeObject(v) {
34
+ return (typeof v === 'object' &&
35
+ v !== null &&
36
+ typeof v.luaClass === 'object' &&
37
+ v.luaClass !== null);
38
+ }
39
+ /** 符号表:registerSymbol / unregisterSymbol / getAddress 用。 */
40
+ class SymbolTable {
41
+ map = new Map();
42
+ lower = new Map();
43
+ register(name, address) {
44
+ const key = name.trim();
45
+ if (key === '')
46
+ throw new Error('符号名不能为空');
47
+ this.map.set(key, address);
48
+ this.lower.set(key.toLowerCase(), key);
49
+ }
50
+ unregister(name) {
51
+ const key = name.trim();
52
+ if (this.map.delete(key)) {
53
+ this.lower.delete(key.toLowerCase());
54
+ return true;
55
+ }
56
+ const real = this.lower.get(key.toLowerCase());
57
+ if (real !== undefined) {
58
+ this.map.delete(real);
59
+ this.lower.delete(key.toLowerCase());
60
+ return true;
61
+ }
62
+ return false;
63
+ }
64
+ /** 精确查找(CE 的符号区分大小写) */
65
+ get(name) {
66
+ return this.map.get(name);
67
+ }
68
+ /** 大小写不敏感查找(用于 getAddress 的兜底) */
69
+ getCaseInsensitive(name) {
70
+ const real = this.lower.get(name.toLowerCase());
71
+ return real === undefined ? undefined : this.map.get(real);
72
+ }
73
+ has(name) {
74
+ return this.map.has(name);
75
+ }
76
+ entries() {
77
+ return [...this.map.entries()];
78
+ }
79
+ /**
80
+ * 导出符号表快照(浅拷贝)。
81
+ *
82
+ * 用途:Auto Assembler 的引擎需要一个 `Map<string, bigint>` 作为初值
83
+ * (它内部会在脚本执行过程中往这份 Map 里加 `alloc`/`label`/`aobscan` 的结果)。
84
+ * 传快照而不是内部 Map,是为了让"AA 注册了哪些符号"这件事可被显式同步回来。
85
+ */
86
+ snapshot() {
87
+ return new Map(this.map);
88
+ }
89
+ /** 从一份 Map 批量灌入(用于把 AA 的结果同步回来) */
90
+ mergeFrom(source) {
91
+ for (const [name, address] of source)
92
+ this.register(name, address);
93
+ }
94
+ clear() {
95
+ this.map.clear();
96
+ this.lower.clear();
97
+ }
98
+ get size() {
99
+ return this.map.size;
100
+ }
101
+ }
102
+ exports.SymbolTable = SymbolTable;
103
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lua/types.ts"],"names":[],"mappings":"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"}