@barefootjs/go-template 0.5.3 → 0.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"go-template-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/go-template-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"go-template-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/go-template-adapter.ts"],"names":[],"mappings":"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"}
@@ -1916,7 +1916,7 @@ ${goFields.join(`
1916
1916
  switch (method) {
1917
1917
  case "join": {
1918
1918
  const obj = emit(object);
1919
- const sep = emit(args[0]);
1919
+ const sep = args.length >= 1 ? emit(args[0]) : '","';
1920
1920
  return `bf_join (${obj}) ${wrapIfMultiToken(sep)}`;
1921
1921
  }
1922
1922
  case "includes": {
@@ -1933,18 +1933,21 @@ ${goFields.join(`
1933
1933
  }
1934
1934
  case "at": {
1935
1935
  const obj = emit(object);
1936
- const idx = emit(args[0]);
1936
+ const idx = args.length >= 1 ? emit(args[0]) : "0";
1937
1937
  return `bf_at ${wrapIfMultiToken(obj)} ${wrapIfMultiToken(idx)}`;
1938
1938
  }
1939
1939
  case "concat": {
1940
+ if (args.length === 0) {
1941
+ return emit(object);
1942
+ }
1940
1943
  const a = emit(object);
1941
1944
  const b = emit(args[0]);
1942
1945
  return `bf_concat ${wrapIfMultiToken(a)} ${wrapIfMultiToken(b)}`;
1943
1946
  }
1944
1947
  case "slice": {
1945
1948
  const recv = emit(object);
1946
- const start = emit(args[0]);
1947
- if (args.length === 1) {
1949
+ const start = args.length >= 1 ? emit(args[0]) : "0";
1950
+ if (args.length <= 1) {
1948
1951
  return `bf_slice ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(start)}`;
1949
1952
  }
1950
1953
  const end = emit(args[1]);
@@ -1967,6 +1970,54 @@ ${goFields.join(`
1967
1970
  const recv = emit(object);
1968
1971
  return `bf_trim ${wrapIfMultiToken(recv)}`;
1969
1972
  }
1973
+ case "split": {
1974
+ const recv = emit(object);
1975
+ if (args.length === 0) {
1976
+ return `bf_arr ${wrapIfMultiToken(recv)}`;
1977
+ }
1978
+ const sep = emit(args[0]);
1979
+ if (args.length === 1) {
1980
+ return `bf_split ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(sep)}`;
1981
+ }
1982
+ const limit = emit(args[1]);
1983
+ return `bf_split ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(sep)} ${wrapIfMultiToken(limit)}`;
1984
+ }
1985
+ case "startsWith":
1986
+ case "endsWith": {
1987
+ const fn = method === "startsWith" ? "bf_starts_with" : "bf_ends_with";
1988
+ const recv = emit(object);
1989
+ const arg = emit(args[0]);
1990
+ const base = `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(arg)}`;
1991
+ if (args.length >= 2) {
1992
+ return `${base} ${wrapIfMultiToken(emit(args[1]))}`;
1993
+ }
1994
+ return base;
1995
+ }
1996
+ case "replace": {
1997
+ const recv = emit(object);
1998
+ const oldS = emit(args[0]);
1999
+ const newS = emit(args[1]);
2000
+ return `bf_replace ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(oldS)} ${wrapIfMultiToken(newS)}`;
2001
+ }
2002
+ case "repeat": {
2003
+ const recv = emit(object);
2004
+ const count = args.length === 0 ? "0" : emit(args[0]);
2005
+ return `bf_repeat ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(count)}`;
2006
+ }
2007
+ case "padStart":
2008
+ case "padEnd": {
2009
+ const fn = method === "padStart" ? "bf_pad_start" : "bf_pad_end";
2010
+ const recv = emit(object);
2011
+ if (args.length === 0) {
2012
+ return `${fn} ${wrapIfMultiToken(recv)} 0`;
2013
+ }
2014
+ const target = emit(args[0]);
2015
+ if (args.length === 1) {
2016
+ return `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(target)}`;
2017
+ }
2018
+ const pad = emit(args[1]);
2019
+ return `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(target)} ${wrapIfMultiToken(pad)}`;
2020
+ }
1970
2021
  default: {
1971
2022
  const _exhaustive = method;
1972
2023
  throw new Error(`Go arrayMethod: unhandled ArrayMethod '${_exhaustive}'`);
package/dist/build.js CHANGED
@@ -2256,7 +2256,7 @@ ${goFields.join(`
2256
2256
  switch (method) {
2257
2257
  case "join": {
2258
2258
  const obj = emit(object);
2259
- const sep = emit(args[0]);
2259
+ const sep = args.length >= 1 ? emit(args[0]) : '","';
2260
2260
  return `bf_join (${obj}) ${wrapIfMultiToken(sep)}`;
2261
2261
  }
2262
2262
  case "includes": {
@@ -2273,18 +2273,21 @@ ${goFields.join(`
2273
2273
  }
2274
2274
  case "at": {
2275
2275
  const obj = emit(object);
2276
- const idx = emit(args[0]);
2276
+ const idx = args.length >= 1 ? emit(args[0]) : "0";
2277
2277
  return `bf_at ${wrapIfMultiToken(obj)} ${wrapIfMultiToken(idx)}`;
2278
2278
  }
2279
2279
  case "concat": {
2280
+ if (args.length === 0) {
2281
+ return emit(object);
2282
+ }
2280
2283
  const a = emit(object);
2281
2284
  const b = emit(args[0]);
2282
2285
  return `bf_concat ${wrapIfMultiToken(a)} ${wrapIfMultiToken(b)}`;
2283
2286
  }
2284
2287
  case "slice": {
2285
2288
  const recv = emit(object);
2286
- const start = emit(args[0]);
2287
- if (args.length === 1) {
2289
+ const start = args.length >= 1 ? emit(args[0]) : "0";
2290
+ if (args.length <= 1) {
2288
2291
  return `bf_slice ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(start)}`;
2289
2292
  }
2290
2293
  const end = emit(args[1]);
@@ -2307,6 +2310,54 @@ ${goFields.join(`
2307
2310
  const recv = emit(object);
2308
2311
  return `bf_trim ${wrapIfMultiToken(recv)}`;
2309
2312
  }
2313
+ case "split": {
2314
+ const recv = emit(object);
2315
+ if (args.length === 0) {
2316
+ return `bf_arr ${wrapIfMultiToken(recv)}`;
2317
+ }
2318
+ const sep = emit(args[0]);
2319
+ if (args.length === 1) {
2320
+ return `bf_split ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(sep)}`;
2321
+ }
2322
+ const limit = emit(args[1]);
2323
+ return `bf_split ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(sep)} ${wrapIfMultiToken(limit)}`;
2324
+ }
2325
+ case "startsWith":
2326
+ case "endsWith": {
2327
+ const fn = method === "startsWith" ? "bf_starts_with" : "bf_ends_with";
2328
+ const recv = emit(object);
2329
+ const arg = emit(args[0]);
2330
+ const base = `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(arg)}`;
2331
+ if (args.length >= 2) {
2332
+ return `${base} ${wrapIfMultiToken(emit(args[1]))}`;
2333
+ }
2334
+ return base;
2335
+ }
2336
+ case "replace": {
2337
+ const recv = emit(object);
2338
+ const oldS = emit(args[0]);
2339
+ const newS = emit(args[1]);
2340
+ return `bf_replace ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(oldS)} ${wrapIfMultiToken(newS)}`;
2341
+ }
2342
+ case "repeat": {
2343
+ const recv = emit(object);
2344
+ const count = args.length === 0 ? "0" : emit(args[0]);
2345
+ return `bf_repeat ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(count)}`;
2346
+ }
2347
+ case "padStart":
2348
+ case "padEnd": {
2349
+ const fn = method === "padStart" ? "bf_pad_start" : "bf_pad_end";
2350
+ const recv = emit(object);
2351
+ if (args.length === 0) {
2352
+ return `${fn} ${wrapIfMultiToken(recv)} 0`;
2353
+ }
2354
+ const target = emit(args[0]);
2355
+ if (args.length === 1) {
2356
+ return `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(target)}`;
2357
+ }
2358
+ const pad = emit(args[1]);
2359
+ return `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(target)} ${wrapIfMultiToken(pad)}`;
2360
+ }
2310
2361
  default: {
2311
2362
  const _exhaustive = method;
2312
2363
  throw new Error(`Go arrayMethod: unhandled ArrayMethod '${_exhaustive}'`);
package/dist/index.js CHANGED
@@ -1916,7 +1916,7 @@ ${goFields.join(`
1916
1916
  switch (method) {
1917
1917
  case "join": {
1918
1918
  const obj = emit(object);
1919
- const sep = emit(args[0]);
1919
+ const sep = args.length >= 1 ? emit(args[0]) : '","';
1920
1920
  return `bf_join (${obj}) ${wrapIfMultiToken(sep)}`;
1921
1921
  }
1922
1922
  case "includes": {
@@ -1933,18 +1933,21 @@ ${goFields.join(`
1933
1933
  }
1934
1934
  case "at": {
1935
1935
  const obj = emit(object);
1936
- const idx = emit(args[0]);
1936
+ const idx = args.length >= 1 ? emit(args[0]) : "0";
1937
1937
  return `bf_at ${wrapIfMultiToken(obj)} ${wrapIfMultiToken(idx)}`;
1938
1938
  }
1939
1939
  case "concat": {
1940
+ if (args.length === 0) {
1941
+ return emit(object);
1942
+ }
1940
1943
  const a = emit(object);
1941
1944
  const b = emit(args[0]);
1942
1945
  return `bf_concat ${wrapIfMultiToken(a)} ${wrapIfMultiToken(b)}`;
1943
1946
  }
1944
1947
  case "slice": {
1945
1948
  const recv = emit(object);
1946
- const start = emit(args[0]);
1947
- if (args.length === 1) {
1949
+ const start = args.length >= 1 ? emit(args[0]) : "0";
1950
+ if (args.length <= 1) {
1948
1951
  return `bf_slice ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(start)}`;
1949
1952
  }
1950
1953
  const end = emit(args[1]);
@@ -1967,6 +1970,54 @@ ${goFields.join(`
1967
1970
  const recv = emit(object);
1968
1971
  return `bf_trim ${wrapIfMultiToken(recv)}`;
1969
1972
  }
1973
+ case "split": {
1974
+ const recv = emit(object);
1975
+ if (args.length === 0) {
1976
+ return `bf_arr ${wrapIfMultiToken(recv)}`;
1977
+ }
1978
+ const sep = emit(args[0]);
1979
+ if (args.length === 1) {
1980
+ return `bf_split ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(sep)}`;
1981
+ }
1982
+ const limit = emit(args[1]);
1983
+ return `bf_split ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(sep)} ${wrapIfMultiToken(limit)}`;
1984
+ }
1985
+ case "startsWith":
1986
+ case "endsWith": {
1987
+ const fn = method === "startsWith" ? "bf_starts_with" : "bf_ends_with";
1988
+ const recv = emit(object);
1989
+ const arg = emit(args[0]);
1990
+ const base = `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(arg)}`;
1991
+ if (args.length >= 2) {
1992
+ return `${base} ${wrapIfMultiToken(emit(args[1]))}`;
1993
+ }
1994
+ return base;
1995
+ }
1996
+ case "replace": {
1997
+ const recv = emit(object);
1998
+ const oldS = emit(args[0]);
1999
+ const newS = emit(args[1]);
2000
+ return `bf_replace ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(oldS)} ${wrapIfMultiToken(newS)}`;
2001
+ }
2002
+ case "repeat": {
2003
+ const recv = emit(object);
2004
+ const count = args.length === 0 ? "0" : emit(args[0]);
2005
+ return `bf_repeat ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(count)}`;
2006
+ }
2007
+ case "padStart":
2008
+ case "padEnd": {
2009
+ const fn = method === "padStart" ? "bf_pad_start" : "bf_pad_end";
2010
+ const recv = emit(object);
2011
+ if (args.length === 0) {
2012
+ return `${fn} ${wrapIfMultiToken(recv)} 0`;
2013
+ }
2014
+ const target = emit(args[0]);
2015
+ if (args.length === 1) {
2016
+ return `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(target)}`;
2017
+ }
2018
+ const pad = emit(args[1]);
2019
+ return `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(target)} ${wrapIfMultiToken(pad)}`;
2020
+ }
1970
2021
  default: {
1971
2022
  const _exhaustive = method;
1972
2023
  throw new Error(`Go arrayMethod: unhandled ArrayMethod '${_exhaustive}'`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barefootjs/go-template",
3
- "version": "0.5.3",
3
+ "version": "0.6.0",
4
4
  "description": "Go html/template adapter for BarefootJS - generates Go template files from IR",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -54,6 +54,6 @@
54
54
  },
55
55
  "devDependencies": {
56
56
  "@barefootjs/adapter-tests": "0.1.0",
57
- "@barefootjs/jsx": "0.5.3"
57
+ "@barefootjs/jsx": "0.6.0"
58
58
  }
59
59
  }
@@ -2182,11 +2182,26 @@ import { fixture as arrayLastIndexOfFixture } from '../../../adapter-tests/fixtu
2182
2182
  import { fixture as arrayAtFixture } from '../../../adapter-tests/fixtures/methods/array-at'
2183
2183
  import { fixture as arrayConcatFixture } from '../../../adapter-tests/fixtures/methods/array-concat'
2184
2184
  import { fixture as arraySliceFixture } from '../../../adapter-tests/fixtures/methods/array-slice'
2185
+ import { fixture as arraySliceCopyFixture } from '../../../adapter-tests/fixtures/methods/array-slice-copy'
2186
+ import { fixture as arrayJoinDefaultFixture } from '../../../adapter-tests/fixtures/methods/array-join-default'
2187
+ import { fixture as arrayAtDefaultFixture } from '../../../adapter-tests/fixtures/methods/array-at-default'
2188
+ import { fixture as arrayConcatCopyFixture } from '../../../adapter-tests/fixtures/methods/array-concat-copy'
2185
2189
  import { fixture as arrayReverseFixture } from '../../../adapter-tests/fixtures/methods/array-reverse'
2186
2190
  import { fixture as arrayToReversedFixture } from '../../../adapter-tests/fixtures/methods/array-toReversed'
2187
2191
  import { fixture as stringToLowerCaseFixture } from '../../../adapter-tests/fixtures/methods/string-toLowerCase'
2188
2192
  import { fixture as stringToUpperCaseFixture } from '../../../adapter-tests/fixtures/methods/string-toUpperCase'
2189
2193
  import { fixture as stringTrimFixture } from '../../../adapter-tests/fixtures/methods/string-trim'
2194
+ // #1448 Tier B — string methods.
2195
+ import { fixture as stringSplitFixture } from '../../../adapter-tests/fixtures/methods/string-split'
2196
+ import { fixture as stringSplitLimitFixture } from '../../../adapter-tests/fixtures/methods/string-split-limit'
2197
+ import { fixture as stringStartsWithFixture } from '../../../adapter-tests/fixtures/methods/string-startsWith'
2198
+ import { fixture as stringStartsWithPositionFixture } from '../../../adapter-tests/fixtures/methods/string-startsWith-position'
2199
+ import { fixture as stringEndsWithFixture } from '../../../adapter-tests/fixtures/methods/string-endsWith'
2200
+ import { fixture as stringEndsWithPositionFixture } from '../../../adapter-tests/fixtures/methods/string-endsWith-position'
2201
+ import { fixture as stringReplaceFixture } from '../../../adapter-tests/fixtures/methods/string-replace'
2202
+ import { fixture as stringRepeatFixture } from '../../../adapter-tests/fixtures/methods/string-repeat'
2203
+ import { fixture as stringPadStartFixture } from '../../../adapter-tests/fixtures/methods/string-padStart'
2204
+ import { fixture as stringPadEndFixture } from '../../../adapter-tests/fixtures/methods/string-padEnd'
2190
2205
  // #1448 Tier B — .sort / .toSorted fixtures.
2191
2206
  import { fixture as arraySortFieldAscFixture } from '../../../adapter-tests/fixtures/methods/array-sort-field-asc'
2192
2207
  import { fixture as arraySortFieldDescFixture } from '../../../adapter-tests/fixtures/methods/array-sort-field-desc'
@@ -2214,6 +2229,13 @@ describe('GoTemplateAdapter - #1448 Tier A/B fixture-driven lowering pins', () =
2214
2229
  { fixture: arrayAtFixture, expect: 'bf_at .Items (bf_neg 1)' },
2215
2230
  { fixture: arrayConcatFixture, expect: 'bf_concat .Left .Right' },
2216
2231
  { fixture: arraySliceFixture, expect: 'bf_slice .Items 1 3' },
2232
+ // #1448 full-arity — zero-arg defaults. `.slice()` → start 0 (full
2233
+ // copy); `.join()` → default `,` separator.
2234
+ { fixture: arraySliceCopyFixture, expect: 'bf_slice .Items 0' },
2235
+ { fixture: arrayJoinDefaultFixture, expect: 'bf_join (.Items) ","' },
2236
+ // `.at()` → index 0; `.concat()` → the receiver (shallow copy).
2237
+ { fixture: arrayAtDefaultFixture, expect: 'bf_at .Items 0' },
2238
+ { fixture: arrayConcatCopyFixture, expect: 'bf_join (.Items) "|"' },
2217
2239
  { fixture: arrayReverseFixture, expect: 'bf_reverse .Items' },
2218
2240
  // .toReversed shares the helper with .reverse — pinning both
2219
2241
  // routings catches a future divergence between them.
@@ -2221,6 +2243,24 @@ describe('GoTemplateAdapter - #1448 Tier A/B fixture-driven lowering pins', () =
2221
2243
  { fixture: stringToLowerCaseFixture,expect: 'bf_lower .Value' },
2222
2244
  { fixture: stringToUpperCaseFixture,expect: 'bf_upper .Value' },
2223
2245
  { fixture: stringTrimFixture, expect: 'bf_trim .Value' },
2246
+ // #1448 Tier B — string → array. `.split(',')` lowers to
2247
+ // `bf_split`, here chained into `.join('|')` so the slice is
2248
+ // observable (`bf_join (bf_split .Value ",") "|"`).
2249
+ { fixture: stringSplitFixture, expect: 'bf_split .Value ","' },
2250
+ { fixture: stringSplitLimitFixture, expect: 'bf_split .Value "," 2' },
2251
+ // #1448 Tier B — string → boolean at condition position, so the
2252
+ // emit lands inside `{{if ...}}`.
2253
+ { fixture: stringStartsWithFixture, expect: '{{if bf_starts_with .Value .Prefix}}' },
2254
+ { fixture: stringStartsWithPositionFixture, expect: '{{if bf_starts_with .Value "world" 6}}' },
2255
+ { fixture: stringEndsWithFixture, expect: '{{if bf_ends_with .Value .Suffix}}' },
2256
+ { fixture: stringEndsWithPositionFixture, expect: '{{if bf_ends_with .Value "hello" 5}}' },
2257
+ // #1448 Tier B — string → string, first-occurrence replace.
2258
+ { fixture: stringReplaceFixture, expect: 'bf_replace .Value "o" "0"' },
2259
+ // #1448 Tier B — string → string, repeat n times.
2260
+ { fixture: stringRepeatFixture, expect: 'bf_repeat .Value 3' },
2261
+ // #1448 Tier B — string → string, padded to a target width.
2262
+ { fixture: stringPadStartFixture, expect: 'bf_pad_start .Value 5 "0"' },
2263
+ { fixture: stringPadEndFixture, expect: 'bf_pad_end .Value 5 "."' },
2224
2264
  // #1448 Tier B — sort / toSorted. Loop-chained shapes wrap the
2225
2265
  // iterable in `bf_sort .Items <kind> <key> <type> <dir>`;
2226
2266
  // standalone shapes inline the helper at the call site.
@@ -2327,15 +2367,22 @@ export function C() {
2327
2367
  { name: 'reduce', expr: `items().reduce((a, b) => a + b.n, 0)`, badEmit: '.Reduce' },
2328
2368
  { name: 'flatMap', expr: `items().flatMap(i => i.tags)`, badEmit: '.FlatMap' },
2329
2369
  { name: 'flat', expr: `items().flat()`, badEmit: '.Flat' },
2370
+ // Lowered methods whose MEANINGFUL extra argument isn't lowered yet
2371
+ // (#1448): the `fromIndex` of `.includes`/`.indexOf`/`.lastIndexOf`
2372
+ // and the variadic `.concat`. The parser refuses these (silently
2373
+ // dropping the arg would change the result) rather than emitting a
2374
+ // render-crashing `.Includes` / `.Concat` field access. (The
2375
+ // zero-arg defaults `.join()`/`.slice()` and JS-ignored trailing
2376
+ // args like `.trim(1)` are accepted — pinned in the positive blocks.)
2377
+ { name: 'includes (2-arg fromIndex)', expr: `items().includes("a", 1)`, badEmit: '.Includes' },
2378
+ { name: 'concat (variadic)', expr: `items().concat(items(), items())`, badEmit: '.Concat' },
2330
2379
  // Tier B/C string methods — previously slipped through with no
2331
- // diagnostic; now gated by `UNSUPPORTED_METHODS`.
2332
- { name: 'split', expr: `name().split(",")`, badEmit: '.Name.Split' },
2333
- { name: 'startsWith', expr: `name().startsWith("a")`, badEmit: '.Name.StartsWith' },
2334
- { name: 'endsWith', expr: `name().endsWith("z")`, badEmit: '.Name.EndsWith' },
2335
- { name: 'replace', expr: `name().replace("a", "b")`, badEmit: '.Name.Replace' },
2336
- { name: 'repeat', expr: `name().repeat(3)`, badEmit: '.Name.Repeat' },
2337
- { name: 'padStart', expr: `name().padStart(5, "0")`, badEmit: '.Name.PadStart' },
2338
- { name: 'padEnd', expr: `name().padEnd(5, "0")`, badEmit: '.Name.PadEnd' },
2380
+ // diagnostic; now gated by `UNSUPPORTED_METHODS`. The full Tier B
2381
+ // string set (`split`, `startsWith`, `endsWith`, `replace`,
2382
+ // `repeat`, `padStart`, `padEnd`) has since landed its full-arity
2383
+ // lowering and moved to the positive fixture-pin block above. The
2384
+ // regex-pattern `replace` form is pinned separately below; `charAt`
2385
+ // is Tier C and stays refused entirely.
2339
2386
  { name: 'charAt', expr: `name().charAt(0)`, badEmit: '.Name.CharAt' },
2340
2387
  ]
2341
2388
  for (const { name, expr, badEmit } of unsupported) {
@@ -2355,24 +2402,43 @@ export function C() {
2355
2402
  }
2356
2403
 
2357
2404
  // Predicate-level use of an unsupported string method also fails the
2358
- // build loudly (intended): a `.filter(t => t.name.startsWith("a"))`
2405
+ // build loudly (intended): a `.filter(t => t.name.charAt(0) === "a")`
2359
2406
  // whose predicate calls one of the gated methods now refuses the whole
2360
2407
  // loop with BF101 (via the shared `isSupported` predicate gate in
2361
- // jsx-to-ir) rather than lowering to a broken `.StartsWith` inside the
2408
+ // jsx-to-ir) rather than lowering to a broken `.CharAt` inside the
2362
2409
  // range. Pinning this so the loud-failure contract can't silently
2363
- // regress back to the old emit-broken-template behaviour.
2410
+ // regress back to the old emit-broken-template behaviour. (`charAt`
2411
+ // is a Tier C method that stays refused — earlier this test used
2412
+ // `startsWith`, which has since landed its Tier B lowering.)
2364
2413
  test('unsupported string method inside a .filter() predicate raises BF101', () => {
2365
2414
  const result = compileJSX(`
2366
2415
  "use client"
2367
2416
  import { createSignal } from "@barefootjs/client"
2368
2417
  export function C() {
2369
2418
  const [items, setItems] = createSignal<{ name: string }[]>([])
2370
- return <ul>{items().filter(t => t.name.startsWith("a")).map(t => <li key={t.name}>{t.name}</li>)}</ul>
2419
+ return <ul>{items().filter(t => t.name.charAt(0) === "a").map(t => <li key={t.name}>{t.name}</li>)}</ul>
2371
2420
  }
2372
2421
  `.trimStart(), 'test.tsx', { adapter: new GoTemplateAdapter() })
2373
2422
  expect(result.errors?.some(e => e.code === 'BF101')).toBe(true)
2374
2423
  })
2375
2424
 
2425
+ // The string-pattern form of `.replace` lowers (#1448 Tier B), but
2426
+ // the regex-pattern form stays refused with BF101 — the Perl `s///`
2427
+ // vs Go `regexp.ReplaceAllString` flavour gap is the open design
2428
+ // question. Pinning the refusal so the string-form lowering can't
2429
+ // accidentally start emitting a broken `.Replace` for the regex form.
2430
+ test('regex-pattern .replace raises BF101 (string-pattern form is lowered)', () => {
2431
+ const result = compileJSX(`
2432
+ function C({ value }: { value: string }) {
2433
+ return <div>{value.replace(/o/g, "0")}</div>
2434
+ }
2435
+ export { C }
2436
+ `.trimStart(), 'test.tsx', { adapter: new GoTemplateAdapter() })
2437
+ expect(result.errors?.some(e => e.code === 'BF101')).toBe(true)
2438
+ const template = result.files?.find(f => f.path.endsWith('.tmpl'))?.content ?? ''
2439
+ expect(template).not.toContain('.Replace')
2440
+ })
2441
+
2376
2442
  // Tier B `.sort` / `.toSorted` follow-ups still refused with BF021.
2377
2443
  const unsupportedSort: Array<[string, string]> = [
2378
2444
  ['function-reference comparator', `items().toSorted(myCmp).map(x => <li key={x.name}>{x.name}</li>)`],
@@ -2404,7 +2470,9 @@ export function C() {
2404
2470
  // more `can't evaluate field …` crash), so we assert the build error
2405
2471
  // rather than a render crash. Skipped on hosts without Go.
2406
2472
  test('e2e: @client renders placeholder; bare is caught at build with BF101', async () => {
2407
- const bare = emit(`name().repeat(3)`, false)
2473
+ // Uses the Tier C `charAt` (still refused) — earlier this test used
2474
+ // `repeat`, which has since landed its #1448 Tier B lowering.
2475
+ const bare = emit(`name().charAt(0)`, false)
2408
2476
  expect(bare.errors.some(e => e.code === 'BF101')).toBe(true)
2409
2477
 
2410
2478
  try {
@@ -2414,7 +2482,7 @@ export function C() {
2414
2482
  import { createSignal } from "@barefootjs/client"
2415
2483
  export function C() {
2416
2484
  const [name, setName] = createSignal("hello")
2417
- return <div>{/* @client */ name().repeat(3)}</div>
2485
+ return <div>{/* @client */ name().charAt(0)}</div>
2418
2486
  }
2419
2487
  `.trimStart(),
2420
2488
  adapter: new GoTemplateAdapter(),
@@ -3109,7 +3109,9 @@ export class GoTemplateAdapter extends BaseAdapter implements ParsedExprEmitter,
3109
3109
  switch (method) {
3110
3110
  case 'join': {
3111
3111
  const obj = emit(object)
3112
- const sep = emit(args[0])
3112
+ // `.join()` defaults the separator to `,` (JS); any extra
3113
+ // argument is ignored. Only `args[0]` is read.
3114
+ const sep = args.length >= 1 ? emit(args[0]) : '","'
3113
3115
  // Both operands need paren-wrapping when they emit a
3114
3116
  // multi-token prefix-call form (e.g. `sep` lowering to
3115
3117
  // `bf_trim .Raw` would make Go template parse
@@ -3145,30 +3147,36 @@ export class GoTemplateAdapter extends BaseAdapter implements ParsedExprEmitter,
3145
3147
  // `.at(i)` supports negative indices (`.at(-1)` → last
3146
3148
  // element). The Go `bf_at` helper was already registered in
3147
3149
  // the FuncMap for the runtime — this PR wires it to the JS
3148
- // method name at the adapter layer.
3150
+ // method name at the adapter layer. `.at()` with no argument is
3151
+ // `.at(0)` (the first element); extra arguments are ignored.
3149
3152
  const obj = emit(object)
3150
- const idx = emit(args[0])
3153
+ const idx = args.length >= 1 ? emit(args[0]) : '0'
3151
3154
  return `bf_at ${wrapIfMultiToken(obj)} ${wrapIfMultiToken(idx)}`
3152
3155
  }
3153
3156
  case 'concat': {
3154
3157
  // `.concat(other)` merges two arrays. The runtime helper
3155
3158
  // `bf_concat` reflects over both operands so callers can
3156
3159
  // mix `[]string` + `[]string` or `[]any` + `[]string` etc.
3157
- // without per-call-site type-juggling.
3160
+ // without per-call-site type-juggling. `.concat()` with no
3161
+ // argument is a shallow copy — indistinguishable from the
3162
+ // receiver in an SSR snapshot, so it lowers to the receiver.
3163
+ if (args.length === 0) {
3164
+ return emit(object)
3165
+ }
3158
3166
  const a = emit(object)
3159
3167
  const b = emit(args[0])
3160
3168
  return `bf_concat ${wrapIfMultiToken(a)} ${wrapIfMultiToken(b)}`
3161
3169
  }
3162
3170
  case 'slice': {
3163
- // `.slice(start)` / `.slice(start, end)` — both forms route
3164
- // through `bf_slice`. The runtime helper treats a `nil`
3165
- // `end` (the variadic-arg absence) as "to length", matching
3166
- // the JS semantic. Out-of-bounds indices clamp instead of
3167
- // panicking (also JS-compat); same with `start > end`
3168
- // returning an empty slice.
3171
+ // `.slice()` / `.slice(start)` / `.slice(start, end)` — route
3172
+ // through `bf_slice`. A missing `start` defaults to 0 (full
3173
+ // copy); the runtime helper treats an absent `end` as "to
3174
+ // length". Out-of-bounds indices clamp instead of panicking
3175
+ // (JS-compat); `start > end` returns an empty slice. JS ignores
3176
+ // a third+ argument, so only `args[0]` / `args[1]` are read.
3169
3177
  const recv = emit(object)
3170
- const start = emit(args[0])
3171
- if (args.length === 1) {
3178
+ const start = args.length >= 1 ? emit(args[0]) : '0'
3179
+ if (args.length <= 1) {
3172
3180
  return `bf_slice ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(start)}`
3173
3181
  }
3174
3182
  const end = emit(args[1])
@@ -3204,6 +3212,78 @@ export class GoTemplateAdapter extends BaseAdapter implements ParsedExprEmitter,
3204
3212
  const recv = emit(object)
3205
3213
  return `bf_trim ${wrapIfMultiToken(recv)}`
3206
3214
  }
3215
+ case 'split': {
3216
+ // `.split()` / `.split(sep)` / `.split(sep, limit)` — string →
3217
+ // `[]any`. No separator → the whole string as a single element
3218
+ // (`bf_arr`). Otherwise `bf_split` (wraps `strings.Split`,
3219
+ // normalised to `[]any`); a second `limit` argument caps the
3220
+ // pieces. JS ignores a third+ argument. See #1448 Tier B.
3221
+ const recv = emit(object)
3222
+ if (args.length === 0) {
3223
+ return `bf_arr ${wrapIfMultiToken(recv)}`
3224
+ }
3225
+ const sep = emit(args[0])
3226
+ if (args.length === 1) {
3227
+ return `bf_split ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(sep)}`
3228
+ }
3229
+ const limit = emit(args[1])
3230
+ return `bf_split ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(sep)} ${wrapIfMultiToken(limit)}`
3231
+ }
3232
+ case 'startsWith':
3233
+ case 'endsWith': {
3234
+ // `.startsWith(prefix, position?)` / `.endsWith(suffix,
3235
+ // endPosition?)` — string → boolean via the `bf_starts_with` /
3236
+ // `bf_ends_with` helpers (`strings.HasPrefix` /
3237
+ // `strings.HasSuffix`). The optional second argument re-anchors
3238
+ // the test; JS ignores a third+ argument. See #1448 Tier B.
3239
+ const fn = method === 'startsWith' ? 'bf_starts_with' : 'bf_ends_with'
3240
+ const recv = emit(object)
3241
+ const arg = emit(args[0])
3242
+ const base = `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(arg)}`
3243
+ if (args.length >= 2) {
3244
+ return `${base} ${wrapIfMultiToken(emit(args[1]))}`
3245
+ }
3246
+ return base
3247
+ }
3248
+ case 'replace': {
3249
+ // `.replace(old, new)` — string-pattern form, first occurrence
3250
+ // only, via the new `bf_replace` helper (`strings.Replace` with
3251
+ // n=1). The regex-pattern form is refused upstream at the
3252
+ // parser. See #1448 Tier B.
3253
+ const recv = emit(object)
3254
+ const oldS = emit(args[0])
3255
+ const newS = emit(args[1])
3256
+ return `bf_replace ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(oldS)} ${wrapIfMultiToken(newS)}`
3257
+ }
3258
+ case 'repeat': {
3259
+ // `.repeat(n)` — string repeated `n` times via the `bf_repeat`
3260
+ // helper. The helper clamps a negative count to "" instead of
3261
+ // letting `strings.Repeat` panic. Full JS arity: the no-argument
3262
+ // form is `repeat(0)` → ""; a second+ argument is ignored.
3263
+ // See #1448 Tier B.
3264
+ const recv = emit(object)
3265
+ const count = args.length === 0 ? '0' : emit(args[0])
3266
+ return `bf_repeat ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(count)}`
3267
+ }
3268
+ case 'padStart':
3269
+ case 'padEnd': {
3270
+ // `.padStart(target, pad?)` / `.padEnd(target, pad?)` — pad to
3271
+ // `target` runes with `pad` (default a single space, supplied
3272
+ // by the variadic helper when the arg is absent). Full JS arity:
3273
+ // the no-argument form is `padStart(0)` → the receiver
3274
+ // unchanged; a third+ argument is ignored. See #1448 Tier B.
3275
+ const fn = method === 'padStart' ? 'bf_pad_start' : 'bf_pad_end'
3276
+ const recv = emit(object)
3277
+ if (args.length === 0) {
3278
+ return `${fn} ${wrapIfMultiToken(recv)} 0`
3279
+ }
3280
+ const target = emit(args[0])
3281
+ if (args.length === 1) {
3282
+ return `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(target)}`
3283
+ }
3284
+ const pad = emit(args[1])
3285
+ return `${fn} ${wrapIfMultiToken(recv)} ${wrapIfMultiToken(target)} ${wrapIfMultiToken(pad)}`
3286
+ }
3207
3287
  default: {
3208
3288
  const _exhaustive: never = method
3209
3289
  throw new Error(`Go arrayMethod: unhandled ArrayMethod '${(_exhaustive as string)}'`)