@rn-org/react-native-thread 0.7.1 → 0.8.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.
@@ -187,12 +187,24 @@ module.exports = function reactNativeThreadPlugin({
187
187
  continue;
188
188
  }
189
189
 
190
- // const/let/var x = <arrow / function expression>
191
- if (t.isVariableDeclarator(bNode) && bNode.init && (t.isFunctionExpression(bNode.init) || t.isArrowFunctionExpression(bNode.init))) {
192
- // Recursively capture the inner function's free vars first
193
- capture(bNode.init);
194
- const initSrc = state.file.code.slice(bNode.init.start, bNode.init.end);
195
- captures.push('var ' + name + ' = ' + transpileForThread(initSrc, state) + ';');
190
+ // const/let/var x = <arrow / function expression / already transformed>
191
+ if (t.isVariableDeclarator(bNode)) {
192
+ if (bNode.init && (t.isFunctionExpression(bNode.init) || t.isArrowFunctionExpression(bNode.init))) {
193
+ // Recursively capture the inner function's free vars first
194
+ capture(bNode.init);
195
+ const initSrc = state.file.code.slice(bNode.init.start, bNode.init.end);
196
+ captures.push('var ' + name + ' = ' + transpileForThread(initSrc, state) + ';');
197
+ } else if (bNode.id && bNode.start != null && bNode.end != null) {
198
+ // Fallback for already-transformed init
199
+ const declaratorSrc = state.file.code.slice(bNode.start, bNode.end);
200
+ const eqIdx = declaratorSrc.indexOf('=');
201
+ if (eqIdx !== -1) {
202
+ const rawInit = declaratorSrc.slice(eqIdx + 1).trim();
203
+ if (/^(async\s+)?(\(|function\b|[a-zA-Z_$])/.test(rawInit)) {
204
+ captures.push('var ' + name + ' = ' + transpileForThread(rawInit, state) + ';');
205
+ }
206
+ }
207
+ }
196
208
  continue;
197
209
  }
198
210
 
@@ -212,30 +224,69 @@ module.exports = function reactNativeThreadPlugin({
212
224
  // ── Core transform helpers ─────────────────────────────────────
213
225
 
214
226
  /**
215
- * Transpile extracted source for the thread engine. Always downlevels
216
- * to ES5 (for Rhino). Also strips TypeScript when the host file is TS.
227
+ * Transpile extracted source for the thread engine. Strips TypeScript
228
+ * when the host file is TS and transforms async/await to generator-based
229
+ * code because Hermes' eval-mode compiler does not support async syntax.
217
230
  */
218
231
  function transpileForThread(code, state) {
219
232
  try {
220
233
  const babelCore = require('@babel/core');
221
234
  const fn = state.filename || state.file.opts && state.file.opts.filename || '';
222
235
  const isTS = /\.tsx?$/.test(fn);
223
- const plugins = isTS ? [['@babel/plugin-transform-typescript', {
224
- isTSX: true
225
- }]] : [];
226
- const result = babelCore.transformSync(code, {
227
- presets: [['@babel/preset-env', {
228
- targets: {
229
- ie: '11'
230
- },
231
- modules: false
232
- }]],
236
+ const hasAsync = /\basync\b/.test(code);
237
+ if (!isTS && !hasAsync) {
238
+ return code.replace(/;\s*$/, '');
239
+ }
240
+ const plugins = [];
241
+ if (isTS) {
242
+ plugins.push(['@babel/plugin-transform-typescript', {
243
+ isTSX: true
244
+ }]);
245
+ }
246
+
247
+ // Hermes' eval-mode compiler does not support async/await syntax.
248
+ // Transform to generator-based code (generators ARE supported).
249
+ let asyncPluginLoaded = false;
250
+ if (hasAsync) {
251
+ try {
252
+ require.resolve('@babel/plugin-transform-async-to-generator');
253
+ plugins.push('@babel/plugin-transform-async-to-generator');
254
+ asyncPluginLoaded = true;
255
+ } catch {
256
+ // plugin unavailable — async code will be sent as-is
257
+ }
258
+ }
259
+ if (plugins.length === 0) {
260
+ return code.replace(/;\s*$/, '');
261
+ }
262
+
263
+ // When the async transform is active, wrap the expression in a
264
+ // variable assignment so Babel can place the _asyncToGenerator
265
+ // helper as a sibling top-level statement. After the transform
266
+ // we split helpers from expression and wrap in a self-contained
267
+ // IIFE so the result is a single expression.
268
+ const MARKER = 'var __rnthread__ = ';
269
+ const inputCode = asyncPluginLoaded ? MARKER + '(' + code + ')' : code;
270
+ const result = babelCore.transformSync(inputCode, {
233
271
  plugins,
234
272
  configFile: false,
235
273
  babelrc: false,
236
274
  filename: isTS ? 'thread.tsx' : 'thread.js'
237
275
  });
238
- return (result && result.code || code).replace(/;\s*$/, '');
276
+ let output = (result && result.code || inputCode).replace(/;\s*$/, '');
277
+ if (asyncPluginLoaded) {
278
+ const idx = output.lastIndexOf(MARKER);
279
+ if (idx >= 0 && output.includes('_asyncToGenerator')) {
280
+ // Helpers were injected before the marker — wrap in IIFE.
281
+ const helpers = output.substring(0, idx);
282
+ const expr = output.substring(idx + MARKER.length).replace(/;\s*$/, '');
283
+ output = '(function(){' + helpers + 'return ' + expr + '})()';
284
+ } else if (idx >= 0) {
285
+ // async transform was a no-op (regex false-positive)
286
+ output = output.substring(idx + MARKER.length);
287
+ }
288
+ }
289
+ return output.replace(/;\s*$/, '');
239
290
  } catch {
240
291
  return code;
241
292
  }
@@ -268,10 +319,38 @@ module.exports = function reactNativeThreadPlugin({
268
319
  if (t.isFunctionDeclaration(bNode)) {
269
320
  fnNode = bNode;
270
321
  fnSource = state.file.code.slice(bNode.start, bNode.end);
271
- } else if (t.isVariableDeclarator(bNode) && bNode.init) {
272
- if (t.isFunctionExpression(bNode.init) || t.isArrowFunctionExpression(bNode.init)) {
322
+ } else if (t.isVariableDeclarator(bNode)) {
323
+ if (bNode.init && (t.isFunctionExpression(bNode.init) || t.isArrowFunctionExpression(bNode.init))) {
324
+ // Normal case: init hasn't been transformed by another plugin yet
273
325
  fnNode = bNode.init;
274
326
  fnSource = state.file.code.slice(bNode.init.start, bNode.init.end);
327
+ } else if (bNode.id && bNode.start != null && bNode.end != null) {
328
+ // Fallback: another plugin (e.g. async-to-generator) already replaced
329
+ // bNode.init. Use the original source text by slicing after the `=`.
330
+ // bNode covers "isPrime = async (num) => {...}" (no `const`/`let`).
331
+ const declaratorSrc = state.file.code.slice(bNode.start, bNode.end);
332
+ const eqIdx = declaratorSrc.indexOf('=');
333
+ if (eqIdx !== -1) {
334
+ const rawInit = declaratorSrc.slice(eqIdx + 1).trim();
335
+ if (/^(async\s+)?(\(|function\b|[a-zA-Z_$])/.test(rawInit)) {
336
+ fnSource = rawInit;
337
+ // Parse rawInit to get a proper fnNode for getCaptureDecls
338
+ try {
339
+ const parsed = parser.parse(rawInit, {
340
+ sourceType: 'module',
341
+ plugins: ['typescript', 'jsx']
342
+ });
343
+ const stmt = parsed.program.body[0];
344
+ if (stmt && stmt.type === 'ExpressionStatement') {
345
+ fnNode = stmt.expression;
346
+ } else {
347
+ fnNode = bNode.init; // may be transformed, captures skipped
348
+ }
349
+ } catch {
350
+ fnNode = bNode.init;
351
+ }
352
+ }
353
+ }
275
354
  }
276
355
  } else if (t.isImportSpecifier(bNode) || t.isImportDefaultSpecifier(bNode)) {
277
356
  // Cross-module import: resolve the source file and extract the function
@@ -1 +1 @@
1
- {"version":3,"names":["nodePath","require","fs","TOP_LEVEL_API","Set","METHOD_API","SKIP_KEYS","module","exports","reactNativeThreadPlugin","types","t","babel","parser","RESOLVE_EXTS","resolveImportedFnSource","importSource","exportName","state","currentFile","filename","file","opts","startsWith","dir","dirname","resolvedFile","ext","candidate","resolve","existsSync","statSync","isFile","source","readFileSync","ast","parse","sourceType","plugins","stmt","program","body","isExportNamedDeclaration","declaration","isFunctionDeclaration","id","name","raw","slice","start","end","transpileForThread","isVariableDeclaration","decl","declarations","isVariableDeclarator","isIdentifier","init","isFunctionExpression","isArrowFunctionExpression","collectReferencedIds","node","ids","walk","n","skipId","Array","isArray","forEach","el","type","add","isMemberExpression","object","computed","property","isObjectProperty","key","value","Object","keys","has","collectLocalNames","fnNode","names","params","p","isAssignmentPattern","left","isRestElement","argument","getCaptureDecls","scope","captures","seen","capture","targetFnNode","referenced","locals","binding","getBinding","bNode","path","isLiteral","initSrc","code","push","fnSrc","babelCore","fn","isTS","test","isTSX","result","transformSync","presets","targets","ie","modules","configFile","babelrc","replace","maybeTransformArg","callPath","argNode","index","originalCode","fnSource","iife","arguments","stringLiteral","extractFnSource","isImported","isImportSpecifier","isImportDefaultSpecifier","importDecl","parentPath","imported","length","join","tagFnValue","objectExpression","objectProperty","identifier","maybeTransformParams","paramsNode","isObjectExpression","prop","properties","shorthand","isArrayExpression","maybeTransformArrayParams","arrNode","i","elements","visitor","CallExpression","callee","args"],"sourceRoot":"../../src","sources":["babel-plugin.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["nodePath","require","fs","TOP_LEVEL_API","Set","METHOD_API","SKIP_KEYS","module","exports","reactNativeThreadPlugin","types","t","babel","parser","RESOLVE_EXTS","resolveImportedFnSource","importSource","exportName","state","currentFile","filename","file","opts","startsWith","dir","dirname","resolvedFile","ext","candidate","resolve","existsSync","statSync","isFile","source","readFileSync","ast","parse","sourceType","plugins","stmt","program","body","isExportNamedDeclaration","declaration","isFunctionDeclaration","id","name","raw","slice","start","end","transpileForThread","isVariableDeclaration","decl","declarations","isVariableDeclarator","isIdentifier","init","isFunctionExpression","isArrowFunctionExpression","collectReferencedIds","node","ids","walk","n","skipId","Array","isArray","forEach","el","type","add","isMemberExpression","object","computed","property","isObjectProperty","key","value","Object","keys","has","collectLocalNames","fnNode","names","params","p","isAssignmentPattern","left","isRestElement","argument","getCaptureDecls","scope","captures","seen","capture","targetFnNode","referenced","locals","binding","getBinding","bNode","path","isLiteral","initSrc","code","push","declaratorSrc","eqIdx","indexOf","rawInit","trim","test","fnSrc","babelCore","fn","isTS","hasAsync","replace","isTSX","asyncPluginLoaded","length","MARKER","inputCode","result","transformSync","configFile","babelrc","output","idx","lastIndexOf","includes","helpers","substring","expr","maybeTransformArg","callPath","argNode","index","originalCode","fnSource","iife","arguments","stringLiteral","extractFnSource","isImported","parsed","expression","isImportSpecifier","isImportDefaultSpecifier","importDecl","parentPath","imported","join","tagFnValue","objectExpression","objectProperty","identifier","maybeTransformParams","paramsNode","isObjectExpression","prop","properties","shorthand","isArrayExpression","maybeTransformArrayParams","arrNode","i","elements","visitor","CallExpression","callee","args"],"sourceRoot":"../../src","sources":["babel-plugin.js"],"mappings":"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","ignoreList":[]}
@@ -42,7 +42,7 @@ function _serializeValue(value) {
42
42
  if (typeof value === 'object') {
43
43
  const rec = value;
44
44
  if (typeof rec.__rnThreadFn === 'string') {
45
- return rec.__rnThreadFn;
45
+ return '(' + rec.__rnThreadFn + ')';
46
46
  }
47
47
  const entries = Object.entries(rec).map(([k, v]) => `${JSON.stringify(k)}:${_serializeValue(v)}`).join(',');
48
48
  return '{' + entries + '}';
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","ReactNativeThread","_emitter","RN_THREAD_MESSAGE_EVENT","_registry","Map","_findByName","name","info","values","undefined","_register","id","set","_unregister","delete","_isBytecode","src","includes","test","_serializeValue","value","toString","__DEV__","console","warn","JSON","stringify","String","Array","isArray","map","join","rec","__rnThreadFn","entries","Object","k","v","_wrapWithErrorHandler","code","toCode","task","params","paramsCode","argsStr","SHARED_THREAD_NAME","_sharedThreadId","getSharedThread","createThread","runOnJS","runOnThread","runOnNewJS","existing","createThreadHandle","resolvedName","getThreads","from","destroyThread","idOrName","targetId","has","onMessage","handler","sub","addListener","event","parsed","data","parse","threadId","remove","Promise","resolve","_isThreadError","__rnThreadError","run","reject","unsub","err","Error","message","stack","onError","destroy"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","ReactNativeThread","_emitter","RN_THREAD_MESSAGE_EVENT","_registry","Map","_findByName","name","info","values","undefined","_register","id","set","_unregister","delete","_isBytecode","src","includes","test","_serializeValue","value","toString","__DEV__","console","warn","JSON","stringify","String","Array","isArray","map","join","rec","__rnThreadFn","entries","Object","k","v","_wrapWithErrorHandler","code","toCode","task","params","paramsCode","argsStr","SHARED_THREAD_NAME","_sharedThreadId","getSharedThread","createThread","runOnJS","runOnThread","runOnNewJS","existing","createThreadHandle","resolvedName","getThreads","from","destroyThread","idOrName","targetId","has","onMessage","handler","sub","addListener","event","parsed","data","parse","threadId","remove","Promise","resolve","_isThreadError","__rnThreadError","run","reject","unsub","err","Error","message","stack","onError","destroy"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,cAAc;AACjD,OAAOC,iBAAiB,MAAM,8BAA2B;AAwBzD,MAAMC,QAAQ,GAAG,IAAIF,kBAAkB,CAACC,iBAAiB,CAAC;AAC1D,MAAME,uBAAuB,GAAG,iBAAiB;AAEjD,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAqB,CAAC;AAE/C,SAASC,WAAWA,CAACC,IAAY,EAA0B;EACzD,KAAK,MAAMC,IAAI,IAAIJ,SAAS,CAACK,MAAM,CAAC,CAAC,EAAE;IACrC,IAAID,IAAI,CAACD,IAAI,KAAKA,IAAI,EAAE,OAAOC,IAAI;EACrC;EACA,OAAOE,SAAS;AAClB;AAEA,SAASC,SAASA,CAACC,EAAU,EAAEL,IAAY,EAAQ;EACjDH,SAAS,CAACS,GAAG,CAACD,EAAE,EAAE;IAAEA,EAAE;IAAEL;EAAK,CAAC,CAAC;AACjC;AAEA,SAASO,WAAWA,CAACF,EAAU,EAAQ;EACrCR,SAAS,CAACW,MAAM,CAACH,EAAE,CAAC;AACtB;AAEA,SAASI,WAAWA,CAACC,GAAW,EAAW;EACzC,OACEA,GAAG,CAACC,QAAQ,CAAC,YAAY,CAAC,IAC1B,0CAA0C,CAACC,IAAI,CAACF,GAAG,CAAC;AAExD;AAEA,SAASG,eAAeA,CAACC,KAAc,EAAU;EAC/C,IAAIA,KAAK,KAAKX,SAAS,EAAE,OAAO,WAAW;EAC3C,IAAIW,KAAK,KAAK,IAAI,EAAE,OAAO,MAAM;EACjC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;IAC/B,MAAMJ,GAAG,GAAGI,KAAK,CAACC,QAAQ,CAAC,CAAC;IAC5B,IAAIN,WAAW,CAACC,GAAG,CAAC,EAAE;MACpB,IAAIM,OAAO,EAAE;QACXC,OAAO,CAACC,IAAI,CACV,iFAAiF,GAC/E,6EACJ,CAAC;MACH;MACA,OAAO,WAAW;IACpB;IACA,OAAOR,GAAG;EACZ;EACA,IAAI,OAAOI,KAAK,KAAK,QAAQ,EAAE,OAAOK,IAAI,CAACC,SAAS,CAACN,KAAK,CAAC;EAC3D,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EACzD,OAAOO,MAAM,CAACP,KAAK,CAAC;EACtB,IAAIQ,KAAK,CAACC,OAAO,CAACT,KAAK,CAAC,EACtB,OAAO,GAAG,GAAGA,KAAK,CAACU,GAAG,CAACX,eAAe,CAAC,CAACY,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;EACzD,IAAI,OAAOX,KAAK,KAAK,QAAQ,EAAE;IAC7B,MAAMY,GAAG,GAAGZ,KAAgC;IAC5C,IAAI,OAAOY,GAAG,CAACC,YAAY,KAAK,QAAQ,EAAE;MACxC,OAAO,GAAG,GAAGD,GAAG,CAACC,YAAY,GAAG,GAAG;IACrC;IACA,MAAMC,OAAO,GAAGC,MAAM,CAACD,OAAO,CAACF,GAAG,CAAC,CAChCF,GAAG,CAAC,CAAC,CAACM,CAAC,EAAEC,CAAC,CAAC,KAAK,GAAGZ,IAAI,CAACC,SAAS,CAACU,CAAC,CAAC,IAAIjB,eAAe,CAACkB,CAAC,CAAC,EAAE,CAAC,CAC7DN,IAAI,CAAC,GAAG,CAAC;IACZ,OAAO,GAAG,GAAGG,OAAO,GAAG,GAAG;EAC5B;EACA,OAAOP,MAAM,CAACP,KAAK,CAAC;AACtB;AAEA,SAASkB,qBAAqBA,CAACC,IAAY,EAAU;EACnD,OAAO,SAASA,IAAI,yJAAyJ;AAC/K;AAEA,SAASC,MAAMA,CAACC,IAAgB,EAAEC,MAAgB,EAAU;EAC1D,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAC5B,MAAME,UAAU,GACdD,MAAM,KAAKjC,SAAS,GAAGU,eAAe,CAACuB,MAAM,CAAC,GAAG,WAAW;IAC9D,OAAOJ,qBAAqB,CAAC,oBAAoBK,UAAU,MAAMF,IAAI,EAAE,CAAC;EAC1E;EAEA,MAAMzB,GAAG,GAAGyB,IAAI,CAACpB,QAAQ,CAAC,CAAC;EAC3B,IAAIN,WAAW,CAACC,GAAG,CAAC,EAAE;IACpB,IAAIM,OAAO,EAAE;MACXC,OAAO,CAACC,IAAI,CACV,8EAA8E,GAC5E,6EACJ,CAAC;IACH;IACA,OAAO,uBAAuB;EAChC;EAEA,MAAMoB,OAAO,GAAGF,MAAM,KAAKjC,SAAS,GAAGU,eAAe,CAACuB,MAAM,CAAC,GAAG,EAAE;EACnE,OAAOJ,qBAAqB,CAAC,IAAItB,GAAG,KAAK4B,OAAO,GAAG,CAAC;AACtD;AAEA,MAAMC,kBAAkB,GAAG,aAAa;AACxC,IAAIC,eAA8B,GAAG,IAAI;AAEzC,SAASC,eAAeA,CAAA,EAAW;EACjC,IAAID,eAAe,KAAK,IAAI,EAAE;IAC5BA,eAAe,GAAG9C,iBAAiB,CAACgD,YAAY,CAAC,CAAC;IAClDtC,SAAS,CAACoC,eAAe,EAAED,kBAAkB,CAAC;EAChD;EACA,OAAOC,eAAe;AACxB;AAEA,OAAO,SAASG,OAAOA,CAACR,IAAgB,EAAEC,MAAgB,EAAQ;EAChE1C,iBAAiB,CAACkD,WAAW,CAACH,eAAe,CAAC,CAAC,EAAEP,MAAM,CAACC,IAAI,EAAEC,MAAM,CAAC,CAAC;AACxE;AAEA,OAAO,SAASS,UAAUA,CACxBV,IAAgB,EAChBC,MAAgB,EAChBpC,IAAa,EACC;EACd,IAAIA,IAAI,IAAI,IAAI,EAAE;IAChB,MAAM8C,QAAQ,GAAG/C,WAAW,CAACC,IAAI,CAAC;IAClC,IAAI8C,QAAQ,EAAE;MACZ,OAAOC,kBAAkB,CAACD,QAAQ,CAACzC,EAAE,EAAEyC,QAAQ,CAAC9C,IAAI,CAAC;IACvD;EACF;EACA,MAAMK,EAAE,GAAGX,iBAAiB,CAACgD,YAAY,CAAC,CAAC;EAC3C,MAAMM,YAAY,GAAGhD,IAAI,IAAI,YAAYK,EAAE,EAAE;EAC7CD,SAAS,CAACC,EAAE,EAAE2C,YAAY,CAAC;EAC3BtD,iBAAiB,CAACkD,WAAW,CAACvC,EAAE,EAAE6B,MAAM,CAACC,IAAI,EAAEC,MAAM,CAAC,CAAC;EACvD,OAAOW,kBAAkB,CAAC1C,EAAE,EAAE2C,YAAY,CAAC;AAC7C;AAEA,OAAO,SAASN,YAAYA,CAAC1C,IAAa,EAAgB;EACxD,IAAIA,IAAI,IAAI,IAAI,EAAE;IAChB,MAAM8C,QAAQ,GAAG/C,WAAW,CAACC,IAAI,CAAC;IAClC,IAAI8C,QAAQ,EAAE;MACZ,OAAOC,kBAAkB,CAACD,QAAQ,CAACzC,EAAE,EAAEyC,QAAQ,CAAC9C,IAAI,CAAC;IACvD;EACF;EACA,MAAMK,EAAE,GAAGX,iBAAiB,CAACgD,YAAY,CAAC,CAAC;EAC3C,MAAMM,YAAY,GAAGhD,IAAI,IAAI,YAAYK,EAAE,EAAE;EAC7CD,SAAS,CAACC,EAAE,EAAE2C,YAAY,CAAC;EAC3B,OAAOD,kBAAkB,CAAC1C,EAAE,EAAE2C,YAAY,CAAC;AAC7C;AAEA,OAAO,SAASC,UAAUA,CAAA,EAAiB;EACzC,OAAO3B,KAAK,CAAC4B,IAAI,CAACrD,SAAS,CAACK,MAAM,CAAC,CAAC,CAAC;AACvC;AAEA,OAAO,SAASiD,aAAaA,CAACC,QAAyB,EAAQ;EAC7D,IAAIC,QAA4B;EAEhC,IAAI,OAAOD,QAAQ,KAAK,QAAQ,EAAE;IAChC,IAAIvD,SAAS,CAACyD,GAAG,CAACF,QAAQ,CAAC,EAAEC,QAAQ,GAAGD,QAAQ;EAClD,CAAC,MAAM;IACL,KAAK,MAAMnD,IAAI,IAAIJ,SAAS,CAACK,MAAM,CAAC,CAAC,EAAE;MACrC,IAAID,IAAI,CAACD,IAAI,KAAKoD,QAAQ,EAAE;QAC1BC,QAAQ,GAAGpD,IAAI,CAACI,EAAE;QAClB;MACF;IACF;EACF;EAEA,IAAIgD,QAAQ,KAAKlD,SAAS,EAAE;IAC1B,IAAIa,OAAO,EAAE;MACXC,OAAO,CAACC,IAAI,CACV,6DAA6DkC,QAAQ,GACvE,CAAC;IACH;IACA;EACF;EAEA7C,WAAW,CAAC8C,QAAQ,CAAC;EACrB,IAAIA,QAAQ,KAAKb,eAAe,EAAEA,eAAe,GAAG,IAAI;EACxD9C,iBAAiB,CAACyD,aAAa,CAACE,QAAQ,CAAC;AAC3C;AAMA,OAAO,SAASE,SAASA,CACvBC,OAAmD,EACU;EAC7D,IAAIA,OAAO,EAAE;IACX,MAAMC,GAAG,GAAG9D,QAAQ,CAAC+D,WAAW,CAAC9D,uBAAuB,EAAG+D,KAAU,IAAK;MACxE,IAAIC,MAAe,GAAGD,KAAK,CAACE,IAAI;MAChC,IAAI;QACFD,MAAM,GAAGzC,IAAI,CAAC2C,KAAK,CAACH,KAAK,CAACE,IAAI,CAAC;MACjC,CAAC,CAAC,MAAM,CAAC;MACTL,OAAO,CAACI,MAAM,EAAED,KAAK,CAACI,QAAkB,CAAC;IAC3C,CAAC,CAAC;IACF,OAAO,MAAMN,GAAG,CAACO,MAAM,CAAC,CAAC;EAC3B;EAEA,OAAO,IAAIC,OAAO,CAAuCC,OAAO,IAAK;IACnE,MAAMT,GAAG,GAAG9D,QAAQ,CAAC+D,WAAW,CAAC9D,uBAAuB,EAAG+D,KAAU,IAAK;MACxE,IAAIC,MAAe,GAAGD,KAAK,CAACE,IAAI;MAChC,IAAI;QACFD,MAAM,GAAGzC,IAAI,CAAC2C,KAAK,CAACH,KAAK,CAACE,IAAI,CAAC;MACjC,CAAC,CAAC,MAAM,CAAC;MACTJ,GAAG,CAACO,MAAM,CAAC,CAAC;MACZE,OAAO,CAAC;QAAEL,IAAI,EAAED,MAAM;QAAEG,QAAQ,EAAEJ,KAAK,CAACI;MAAmB,CAAC,CAAC;IAC/D,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,SAASI,cAAcA,CACrBN,IAAa,EACsD;EACnE,OACE,OAAOA,IAAI,KAAK,QAAQ,IACxBA,IAAI,KAAK,IAAI,IACZA,IAAI,CAASO,eAAe,KAAK,IAAI;AAE1C;AAEA,SAASrB,kBAAkBA,CAAC1C,EAAU,EAAEL,IAAY,EAAgB;EAClE,OAAO;IACLK,EAAE;IACFL,IAAI;IACJqE,GAAGA,CAAClC,IAAgB,EAAEC,MAAgB,EAAE;MACtC1C,iBAAiB,CAACkD,WAAW,CAACvC,EAAE,EAAE6B,MAAM,CAACC,IAAI,EAAEC,MAAM,CAAC,CAAC;IACzD,CAAC;IACDmB,SAAS,EAAE,SAAAA,CAAUC,OAAiC,EAAE;MACtD,IAAIA,OAAO,EAAE;QACX,OAAOD,SAAS,CAAC,CAACM,IAAI,EAAEE,QAAQ,KAAK;UACnC,IAAIA,QAAQ,KAAK1D,EAAE,IAAI,CAAC8D,cAAc,CAACN,IAAI,CAAC,EAAEL,OAAO,CAACK,IAAI,CAAC;QAC7D,CAAC,CAAC;MACJ;MACA,OAAO,IAAII,OAAO,CAAU,CAACC,OAAO,EAAEI,MAAM,KAAK;QAC/C,MAAMC,KAAK,GAAGhB,SAAS,CAAC,CAACM,IAAI,EAAEE,QAAQ,KAAK;UAC1C,IAAIA,QAAQ,KAAK1D,EAAE,EAAE;YACnBkE,KAAK,CAAC,CAAC;YACP,IAAIJ,cAAc,CAACN,IAAI,CAAC,EAAE;cACxB,MAAMW,GAAG,GAAG,IAAIC,KAAK,CAACZ,IAAI,CAACa,OAAO,CAAC;cACnCF,GAAG,CAACG,KAAK,GAAGd,IAAI,CAACc,KAAK;cACtBL,MAAM,CAACE,GAAG,CAAC;YACb,CAAC,MAAM;cACLN,OAAO,CAACL,IAAI,CAAC;YACf;UACF;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAA8B;IAC9Be,OAAOA,CAACpB,OAAqC,EAAE;MAC7C,OAAOD,SAAS,CAAC,CAACM,IAAI,EAAEE,QAAQ,KAAK;QACnC,IAAIA,QAAQ,KAAK1D,EAAE,IAAI8D,cAAc,CAACN,IAAI,CAAC,EAAE;UAC3CL,OAAO,CAAC;YAAEkB,OAAO,EAAEb,IAAI,CAACa,OAAO;YAAEC,KAAK,EAAEd,IAAI,CAACc;UAAM,CAAC,CAAC;QACvD;MACF,CAAC,CAAC;IACJ,CAAC;IACDE,OAAOA,CAAA,EAAG;MACR1B,aAAa,CAAC9C,EAAE,CAAC;IACnB;EACF,CAAC;AACH","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rn-org/react-native-thread",
3
- "version": "0.7.1",
3
+ "version": "0.8.0",
4
4
  "description": "Run JavaScript on real background threads in React Native — no Workers, no Worklets. Uses JavaScriptCore on iOS and Mozilla Rhino on Android. Built as a New Architecture TurboModule.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -231,22 +231,39 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
231
231
  continue;
232
232
  }
233
233
 
234
- // const/let/var x = <arrow / function expression>
235
- if (
236
- t.isVariableDeclarator(bNode) &&
237
- bNode.init &&
238
- (t.isFunctionExpression(bNode.init) ||
239
- t.isArrowFunctionExpression(bNode.init))
240
- ) {
241
- // Recursively capture the inner function's free vars first
242
- capture(bNode.init);
243
- const initSrc = state.file.code.slice(
244
- bNode.init.start,
245
- bNode.init.end
246
- );
247
- captures.push(
248
- 'var ' + name + ' = ' + transpileForThread(initSrc, state) + ';'
249
- );
234
+ // const/let/var x = <arrow / function expression / already transformed>
235
+ if (t.isVariableDeclarator(bNode)) {
236
+ if (
237
+ bNode.init &&
238
+ (t.isFunctionExpression(bNode.init) ||
239
+ t.isArrowFunctionExpression(bNode.init))
240
+ ) {
241
+ // Recursively capture the inner function's free vars first
242
+ capture(bNode.init);
243
+ const initSrc = state.file.code.slice(
244
+ bNode.init.start,
245
+ bNode.init.end
246
+ );
247
+ captures.push(
248
+ 'var ' + name + ' = ' + transpileForThread(initSrc, state) + ';'
249
+ );
250
+ } else if (bNode.id && bNode.start != null && bNode.end != null) {
251
+ // Fallback for already-transformed init
252
+ const declaratorSrc = state.file.code.slice(bNode.start, bNode.end);
253
+ const eqIdx = declaratorSrc.indexOf('=');
254
+ if (eqIdx !== -1) {
255
+ const rawInit = declaratorSrc.slice(eqIdx + 1).trim();
256
+ if (/^(async\s+)?(\(|function\b|[a-zA-Z_$])/.test(rawInit)) {
257
+ captures.push(
258
+ 'var ' +
259
+ name +
260
+ ' = ' +
261
+ transpileForThread(rawInit, state) +
262
+ ';'
263
+ );
264
+ }
265
+ }
266
+ }
250
267
  continue;
251
268
  }
252
269
 
@@ -267,8 +284,9 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
267
284
  // ── Core transform helpers ─────────────────────────────────────
268
285
 
269
286
  /**
270
- * Transpile extracted source for the thread engine. Always downlevels
271
- * to ES5 (for Rhino). Also strips TypeScript when the host file is TS.
287
+ * Transpile extracted source for the thread engine. Strips TypeScript
288
+ * when the host file is TS and transforms async/await to generator-based
289
+ * code because Hermes' eval-mode compiler does not support async syntax.
272
290
  */
273
291
  function transpileForThread(code, state) {
274
292
  try {
@@ -276,19 +294,67 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
276
294
  const fn =
277
295
  state.filename || (state.file.opts && state.file.opts.filename) || '';
278
296
  const isTS = /\.tsx?$/.test(fn);
279
- const plugins = isTS
280
- ? [['@babel/plugin-transform-typescript', { isTSX: true }]]
281
- : [];
282
- const result = babelCore.transformSync(code, {
283
- presets: [
284
- ['@babel/preset-env', { targets: { ie: '11' }, modules: false }],
285
- ],
297
+ const hasAsync = /\basync\b/.test(code);
298
+
299
+ if (!isTS && !hasAsync) {
300
+ return code.replace(/;\s*$/, '');
301
+ }
302
+
303
+ const plugins = [];
304
+ if (isTS) {
305
+ plugins.push(['@babel/plugin-transform-typescript', { isTSX: true }]);
306
+ }
307
+
308
+ // Hermes' eval-mode compiler does not support async/await syntax.
309
+ // Transform to generator-based code (generators ARE supported).
310
+ let asyncPluginLoaded = false;
311
+ if (hasAsync) {
312
+ try {
313
+ require.resolve('@babel/plugin-transform-async-to-generator');
314
+ plugins.push('@babel/plugin-transform-async-to-generator');
315
+ asyncPluginLoaded = true;
316
+ } catch {
317
+ // plugin unavailable — async code will be sent as-is
318
+ }
319
+ }
320
+
321
+ if (plugins.length === 0) {
322
+ return code.replace(/;\s*$/, '');
323
+ }
324
+
325
+ // When the async transform is active, wrap the expression in a
326
+ // variable assignment so Babel can place the _asyncToGenerator
327
+ // helper as a sibling top-level statement. After the transform
328
+ // we split helpers from expression and wrap in a self-contained
329
+ // IIFE so the result is a single expression.
330
+ const MARKER = 'var __rnthread__ = ';
331
+ const inputCode = asyncPluginLoaded ? MARKER + '(' + code + ')' : code;
332
+
333
+ const result = babelCore.transformSync(inputCode, {
286
334
  plugins,
287
335
  configFile: false,
288
336
  babelrc: false,
289
337
  filename: isTS ? 'thread.tsx' : 'thread.js',
290
338
  });
291
- return ((result && result.code) || code).replace(/;\s*$/, '');
339
+
340
+ let output = ((result && result.code) || inputCode).replace(/;\s*$/, '');
341
+
342
+ if (asyncPluginLoaded) {
343
+ const idx = output.lastIndexOf(MARKER);
344
+ if (idx >= 0 && output.includes('_asyncToGenerator')) {
345
+ // Helpers were injected before the marker — wrap in IIFE.
346
+ const helpers = output.substring(0, idx);
347
+ const expr = output
348
+ .substring(idx + MARKER.length)
349
+ .replace(/;\s*$/, '');
350
+ output = '(function(){' + helpers + 'return ' + expr + '})()';
351
+ } else if (idx >= 0) {
352
+ // async transform was a no-op (regex false-positive)
353
+ output = output.substring(idx + MARKER.length);
354
+ }
355
+ }
356
+
357
+ return output.replace(/;\s*$/, '');
292
358
  } catch {
293
359
  return code;
294
360
  }
@@ -331,13 +397,42 @@ module.exports = function reactNativeThreadPlugin({ types: t, ...babel }) {
331
397
  if (t.isFunctionDeclaration(bNode)) {
332
398
  fnNode = bNode;
333
399
  fnSource = state.file.code.slice(bNode.start, bNode.end);
334
- } else if (t.isVariableDeclarator(bNode) && bNode.init) {
400
+ } else if (t.isVariableDeclarator(bNode)) {
335
401
  if (
336
- t.isFunctionExpression(bNode.init) ||
337
- t.isArrowFunctionExpression(bNode.init)
402
+ bNode.init &&
403
+ (t.isFunctionExpression(bNode.init) ||
404
+ t.isArrowFunctionExpression(bNode.init))
338
405
  ) {
406
+ // Normal case: init hasn't been transformed by another plugin yet
339
407
  fnNode = bNode.init;
340
408
  fnSource = state.file.code.slice(bNode.init.start, bNode.init.end);
409
+ } else if (bNode.id && bNode.start != null && bNode.end != null) {
410
+ // Fallback: another plugin (e.g. async-to-generator) already replaced
411
+ // bNode.init. Use the original source text by slicing after the `=`.
412
+ // bNode covers "isPrime = async (num) => {...}" (no `const`/`let`).
413
+ const declaratorSrc = state.file.code.slice(bNode.start, bNode.end);
414
+ const eqIdx = declaratorSrc.indexOf('=');
415
+ if (eqIdx !== -1) {
416
+ const rawInit = declaratorSrc.slice(eqIdx + 1).trim();
417
+ if (/^(async\s+)?(\(|function\b|[a-zA-Z_$])/.test(rawInit)) {
418
+ fnSource = rawInit;
419
+ // Parse rawInit to get a proper fnNode for getCaptureDecls
420
+ try {
421
+ const parsed = parser.parse(rawInit, {
422
+ sourceType: 'module',
423
+ plugins: ['typescript', 'jsx'],
424
+ });
425
+ const stmt = parsed.program.body[0];
426
+ if (stmt && stmt.type === 'ExpressionStatement') {
427
+ fnNode = stmt.expression;
428
+ } else {
429
+ fnNode = bNode.init; // may be transformed, captures skipped
430
+ }
431
+ } catch {
432
+ fnNode = bNode.init;
433
+ }
434
+ }
435
+ }
341
436
  }
342
437
  } else if (
343
438
  t.isImportSpecifier(bNode) ||
package/src/index.tsx CHANGED
@@ -74,7 +74,7 @@ function _serializeValue(value: unknown): string {
74
74
  if (typeof value === 'object') {
75
75
  const rec = value as Record<string, unknown>;
76
76
  if (typeof rec.__rnThreadFn === 'string') {
77
- return rec.__rnThreadFn;
77
+ return '(' + rec.__rnThreadFn + ')';
78
78
  }
79
79
  const entries = Object.entries(rec)
80
80
  .map(([k, v]) => `${JSON.stringify(k)}:${_serializeValue(v)}`)