Repository: flutter
Issue: [web] CanvasKit hits `unreachable` instruction calling `getGlyphPositionAtCoordinate`
Labels: platform-web,e: web_canvaskit,P2,customer: quake (g3),team-web,triaged-web

A customer reported that their app hits the following exception in production. There's no additional information at the moment, but we should work with the customer to find out more details.

The `unreachable` error is thrown explicitly in the code through a special [wasm instruction](https://webassembly.github.io/spec/core/syntax/instructions.html#syntax-instr-control). Maybe we're tree-shaking out code from the Chromium build of CanvasKit that we're actually using?

```
The following NativeError object was thrown while handling a pointer data packet:
   RuntimeError: unreachable
 
 When the exception was thrown, this was the stack:
 canvaskit/chromium/canvaskit.js 114:52                   getGlyphPositionAtCoordinate
 dart:sdk_internal 202349:52                              SkParagraphExtension.getGlyphPositionAtCoordinate
 dart:sdk_internal 159077:94                              getPositionForOffset
 package:flutter/src/painting/text_painter.dart 1493:24   getPositionForOffset
 package:flutter/src/rendering/paragraph.dart 728:52      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/material/tooltip.dart 71:59          hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/material/list_tile.dart 1496:23      <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/material/list_tile.dart 1491:32      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/shifted_box.dart 88:23     <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/shifted_box.dart 83:20     hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/shifted_box.dart 88:23     <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/shifted_box.dart 83:20     hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 3175:54     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/shifted_box.dart 88:23     <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/shifted_box.dart 83:20     hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 3175:54     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/custom_paint.dart 561:18   hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 1806:18     hitTest
 package:flutter/src/rendering/sliver.dart 1793:21        <fn>
 package:flutter/src/rendering/box.dart 893:31            addWithOutOfBandPosition
 package:flutter/src/rendering/sliver.dart 1790:18        hitTestBoxChild
 package:flutter/src/rendering/sliver.dart 1876:14        hitTestChildren
 package:flutter/src/rendering/sliver.dart 1427:11        hitTest
 package:flutter/src/rendering/viewport.dart 741:23       <fn>
 package:flutter/src/rendering/box.dart 893:31            addWithOutOfBandPosition
 package:flutter/src/rendering/viewport.dart 738:32       hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 3618:31     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/custom_paint.dart 561:18   hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 3175:54     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 2001:18     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/box.dart 2863:23           <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/box.dart 2858:32           defaultHitTestChildren
 package:flutter/src/rendering/stack.dart 635:12          hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/shifted_box.dart 88:23     <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/shifted_box.dart 83:20     hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 2001:18     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/box.dart 2863:23           <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/box.dart 2858:32           defaultHitTestChildren
 package:flutter/src/rendering/flex.dart 1034:12          hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 2001:18     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 2944:22     <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/proxy_box.dart 2938:18     hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 2924:12     hitTest
 package:flutter/src/rendering/box.dart 2863:23           <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/box.dart 2858:32           defaultHitTestChildren
 package:flutter/src/rendering/stack.dart 635:12          hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/widgets/layout_builder.dart 332:19   hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/box.dart 2863:23           <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/box.dart 2858:32           defaultHitTestChildren
 package:flutter/src/rendering/flex.dart 1034:12          hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/box.dart 2863:23           <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/box.dart 2858:32           defaultHitTestChildren
 package:flutter/src/rendering/stack.dart 635:12          hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/box.dart 2863:23           <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/box.dart 2858:32           defaultHitTestChildren
 package:flutter/src/rendering/stack.dart 635:12          hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/box.dart 2863:23           <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/box.dart 2858:32           defaultHitTestChildren
 package:flutter/src/rendering/custom_layout.dart 415:12  hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 2001:18     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/custom_paint.dart 561:18   hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/box.dart 2863:23           <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/box.dart 2858:32           defaultHitTestChildren
 package:flutter/src/rendering/stack.dart 635:12          hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/box.dart 2863:23           <fn>
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/rendering/box.dart 2858:32           defaultHitTestChildren
 package:flutter/src/rendering/stack.dart 635:12          hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 3618:31     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 3747:31     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/widgets/overlay.dart 902:80          childHitTest
 package:flutter/src/rendering/box.dart 800:31            addWithPaintOffset
 package:flutter/src/widgets/overlay.dart 903:21          hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 3872:17     hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/widgets/layout_builder.dart 332:19   hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/proxy_box.dart 172:63      hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/widgets/tap_region.dart 213:72       hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/proxy_box.dart 117:19      hitTestChildren
 package:flutter/src/rendering/box.dart 2484:11           hitTest
 package:flutter/src/rendering/view.dart 211:7            hitTest
 package:flutter/src/rendering/binding.dart 624:34        hitTestInView
 package:flutter/src/gestures/binding.dart 384:7          [_handlePointerEventImmediately]
 package:flutter/src/gestures/binding.dart 376:5          handlePointerEvent
 package:flutter/src/gestures/binding.dart 323:7          [_flushPointerEventQueue]
 package:flutter/src/gestures/binding.dart 292:9          [_handlePointerDataPacket]
 dart:sdk_internal 208006:7                               invoke1
 dart:sdk_internal 181432:15                              invokeOnPointerDataPacket
 dart:sdk_internal 182892:49                              [_sendToFramework]
 dart:sdk_internal 182807:31                              onPointerData
 dart:sdk_internal 183425:26                              <fn>
 dart:sdk_internal 183387:9                               <fn>
 dart:sdk_internal 183033:11                              loggedHandler
 dart:sdk_internal 5961:16                                _checkAndCall
 dart:sdk_internal 5966:17                                dcall
 dart:sdk_internal 62093:21                               ret
 ```