on: [push, pull_request]
name: Test
jobs:
  test:
    strategy:
      matrix:
        go-version: [1.25.x, 1.x]
        os: [ubuntu-latest]
        arch: ["", "386"]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    steps:
      - name: Install Go
        uses: actions/setup-go@v6
        with:
          go-version: ${{ matrix.go-version }}
          check-latest: true
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Check formatting
        run: diff -u <(echo -n) <(gofmt -d .)
        if: ${{ matrix.go-version == '1.x' }}
      - name: Run go vet
        run: go vet ./...
      - name: Run staticcheck
        uses: dominikh/staticcheck-action@v1.4.1
        with:
          version: "2026.1"
          install-go: false
          cache-key: ${{ matrix.go-version }}
        if: ${{ matrix.go-version == '1.x' }}
      - name: Checkout tc39 tests
        run: ./.tc39_test262_checkout.sh
      - name: Run tests
        env:
          GOARCH: ${{ matrix.arch }}
        run: go test -vet=off ./...
