diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 9246761a..326d6757 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -17,9 +17,9 @@ jobs: node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: 'npm' diff --git a/src/common/baseplatform.ts b/src/common/baseplatform.ts index 3c26174e..72a11e20 100644 --- a/src/common/baseplatform.ts +++ b/src/common/baseplatform.ts @@ -887,7 +887,7 @@ export abstract class BaseMachinePlatform extends BaseDebugPl if (!this.isRunning() && isRaster(this.machine) && this.machine.getRasterCanvasPosition) { const {x,y} = this.machine.getRasterCanvasPosition(); if (x >= 0 || y >= 0) { - const ctx = this.video.getContext(); + const ctx = this.video?.getContext(); if (ctx) { drawCrosshair(ctx, x, y, 1); } diff --git a/src/common/emu.ts b/src/common/emu.ts index dddda59a..2d190de4 100644 --- a/src/common/emu.ts +++ b/src/common/emu.ts @@ -216,6 +216,7 @@ export class VectorVideo extends RasterVideo { } export function drawCrosshair(ctx:CanvasRenderingContext2D, x:number, y:number, width:number) { + if (!ctx?.setLineDash) return; // for unit testing ctx.fillStyle = 'rgba(0,0,0,0.25)'; ctx.fillRect(x-2, 0, 5, 32767); ctx.fillRect(0, y-2, 32767, 5); diff --git a/src/platform/vcs.ts b/src/platform/vcs.ts index bbe2c7af..33fe800d 100644 --- a/src/platform/vcs.ts +++ b/src/platform/vcs.ts @@ -438,8 +438,10 @@ class VCSPlatform extends BasePlatform { updateVideoDebugger() { const {x,y} = this.getRasterCanvasPosition(); if (x >= 0 || y >= 0) { - const ctx = this.canvas.getContext('2d'); - drawCrosshair(ctx, x, y, 2); + const ctx = this.canvas?.getContext('2d'); + if (ctx) { + drawCrosshair(ctx, x, y, 2); + } } } };