Repository: fabricjs/fabric.js
Pull request #9175 (2023-08-25 08:43:35)

feat(Canvas): provide correctly named canvas pointer methods. BREAKING: rm `_normalizePointer`, `restorePointerVpt`
<!--
        Hi there!
        Thanks for taking the time and putting the effort into making fabric better! 💖
        Take a look at /CONTRIBUTING.md for crucial instructions regarding local setup, testing etc.
        https://github.com/fabricjs/fabric.js/blob/master/CONTRIBUTING.md

        Adding tests that verify your fix and safeguard it from unwanted loss and changes is a MUST.

        Pull Requests are not always simple. Don't hesitate to ask for help (beware of [gotchas](http://fabricjs.com/fabric-gotchas) 😓).
        We appreciate your effort and would like the process to be productive and enjoyable.
        A strong community means a strong and better product for everyone.
-->

## Motivation

<!-- Why you are proposing -->
<!-- You can use the @closes notation to mark issues that will be resolved by this PR -->

This PR adds 2 new methods to get a point from a mouse event and tries to remove the confusion about pointer and absolutePointer.

After much discussion we ended up renaming:

-scenePoint (before absolutePointer) a point that is the fabricCanvas plane, the one in which you measure object.top and object.left of an object added in the canvas.

-viewportPoint (before pointer) a point in the viewport coordinate, for which the point 0,0 is the top left corner of the canvas container, while canvas.width, canvas.height is the bottom right corner of the canvas container ( because of retina scaling i avoid on purpose of talking about the HTMLCanvasElement )

`canvas.getPointer(event, ignoreVpt)` becomes `canvas.getPointer(event, fromViewport)` and becomes **deprecated**, will be moved to protected or private next major version.
Developers are directed to use:
`canvas.getViewportPoint(event)` for `canvas.getPointer(event, true)`
and
`canvas.getScenePoint(event)` for `canvas.getPointer(event, false)`

All the events that were emitted with pointer and absolutePointer still are doing so, those event properties are deprecated and the new `scenePoint` takes the place of absolutePointer and `viewportPoint` takes the place of pointer.

`restorePointerVpt` has been removed and also `transformPointRelativeToCanvas` in favor of `sendPointToPlane`



github-actions[bot]: <!-- BUILD STATS COMMENT -->
**Build Stats**

 | file / KB (diff) | bundled | minified | 
 | --- | --- | --- | 
 | fabric | 914.459 (**-0.681**) | 305.476 (**-0.104**) | 

github-actions[bot]: 

Coverage after merging <b>rm-vpt-methods</b> into <b>master</b> will be<table><tbody><tr><th>82.97%</th></tr></tbody></table>

<details><summary>Coverage Report</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/index.node.ts'>index.node.ts</a></td><td><b>7.69%</b></td><td>100%</td><td><b>0%</b></td><td><b>14.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/index.node.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/index.node.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/index.node.ts#L35'>35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/index.node.ts#L38'>38</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/index.node.ts#L41'>41</a></td></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Collection.ts'>Collection.ts</a></td><td><b>94.71%</b></td><td><b>94.64%</b></td><td><b>86.67%</b></td><td><b>97.09%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Collection.ts#L101'>101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Collection.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Collection.ts#L207-L208'>207&ndash;208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Collection.ts#L233-L234'>233&ndash;234</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>96.55%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/CommonMethods.ts#L9'>9</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Intersection.ts'>Intersection.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Observable.ts'>Observable.ts</a></td><td><b>87.76%</b></td><td><b>85.29%</b></td><td><b>87.50%</b></td><td><b>89.58%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Observable.ts#L134-L135'>134&ndash;135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Observable.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Observable.ts#L32-L33'>32&ndash;33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Observable.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Observable.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Observable.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Observable.ts#L89'>89</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Point.ts'>Point.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Shadow.ts'>Shadow.ts</a></td><td><b>98.36%</b></td><td><b>95.65%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Shadow.ts#L178'>178</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/cache.ts'>cache.ts</a></td><td><b>97.06%</b></td><td><b>90%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/cache.ts#L57'>57</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/config.ts'>config.ts</a></td><td><b>75%</b></td><td><b>66.67%</b></td><td><b>66.67%</b></td><td><b>82.76%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/config.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/config.ts#L138-L140'>138&ndash;140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/config.ts#L151-L153'>151&ndash;153</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/Pattern</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>92.31%</b></td><td><b>91.89%</b></td><td><b>90%</b></td><td><b>93.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Pattern/Pattern.ts#L118'>118</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Pattern/Pattern.ts#L129'>129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Pattern/Pattern.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Pattern/Pattern.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/Pattern/Pattern.ts#L94'>94</a></td></tr><tr><td colspan='6'><b>src/brushes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L112'>112</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L114-L116'>114&ndash;116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L118-L121'>118&ndash;121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L128-L129'>128&ndash;129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L13'>13</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L23-L24'>23&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L32-L36'>32&ndash;36</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L40-L44'>40&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L51-L54'>51&ndash;54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L62-L66'>62&ndash;66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L68'>68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L76-L77'>76&ndash;77</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L79-L82'>79&ndash;82</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L92-L93'>92&ndash;93</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L95'>95</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/CircleBrush.ts#L97-L99'>97&ndash;99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PatternBrush.ts'>PatternBrush.ts</a></td><td><b>97.06%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts'>PencilBrush.ts</a></td><td><b>91.06%</b></td><td><b>82.35%</b></td><td>100%</td><td><b>93.81%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/PencilBrush.ts#L84-L85'>84&ndash;85</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts'>SprayBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L149-L152'>149&ndash;152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L154-L157'>154&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L161-L162'>161&ndash;162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L164'>164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L166-L169'>166&ndash;169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L172'>172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L180'>180</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L184-L185'>184&ndash;185</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L187'>187</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L194-L195'>194&ndash;195</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L197-L198'>197&ndash;198</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L212'>212</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/brushes/SprayBrush.ts#L98-L99'>98&ndash;99</a></td></tr><tr><td colspan='6'><b>src/canvas</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>79.12%</b></td><td><b>77.68%</b></td><td><b>83.05%</b></td><td><b>79.61%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1001-L1002'>1001&ndash;1002</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1002'>1002</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1002'>1002</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1004'>1004</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1012'>1012</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1012'>1012</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1012-L1014'>1012&ndash;1014</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1014'>1014</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1014'>1014</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1020-L1021'>1020&ndash;1021</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1029-L1030'>1029&ndash;1030</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1030'>1030</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1030-L1031'>1030&ndash;1031</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1036'>1036</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1038'>1038</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1069-L1071'>1069&ndash;1071</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1074-L1075'>1074&ndash;1075</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1079-L1080'>1079&ndash;1080</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1197-L1199'>1197&ndash;1199</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1202-L1203'>1202&ndash;1203</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1276'>1276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1395'>1395</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L1517'>1517</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L157'>157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L292-L293'>292&ndash;293</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L296-L300'>296&ndash;300</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L305'>305</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L328-L329'>328&ndash;329</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L334-L339'>334&ndash;339</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L359-L360'>359&ndash;360</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L360'>360</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L360-L361'>360&ndash;361</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L369'>369</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L37'>37</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L374-L375'>374&ndash;375</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L375'>375</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L375-L376'>375&ndash;376</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L378'>378</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L387'>387</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L393-L394'>393&ndash;394</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L394'>394</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L394'>394</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L437'>437</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L445'>445</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L449'>449</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L449'>449</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L449-L450'>449&ndash;450</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L452'>452</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L534-L535'>534&ndash;535</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L535'>535</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L535-L536'>535&ndash;536</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L542'>542</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L542'>542</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L542-L544'>542&ndash;544</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L564'>564</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L566-L567'>566&ndash;567</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L567'>567</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L567'>567</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L570'>570</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L570'>570</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L570-L571'>570&ndash;571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L574'>574</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L583-L584'>583&ndash;584</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L586-L587'>586&ndash;587</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L589'>589</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L589-L590'>589&ndash;590</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L592-L593'>592&ndash;593</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L605-L606'>605&ndash;606</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L606'>606</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L606-L607'>606&ndash;607</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L609-L614'>609&ndash;614</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L620'>620</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L627'>627</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L664'>664</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L664'>664</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L664'>664</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L666'>666</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L668-L673'>668&ndash;673</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L679'>679</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L685'>685</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L685'>685</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L685-L686'>685&ndash;686</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L688'>688</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L691'>691</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L696'>696</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L709'>709</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L737'>737</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L737'>737</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L795-L796'>795&ndash;796</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L796'>796</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L796-L797'>796&ndash;797</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L799'>799</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L802-L803'>802&ndash;803</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L803'>803</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L803-L804'>803&ndash;804</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L806-L807'>806&ndash;807</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L810'>810</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L810-L812'>810&ndash;812</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L815-L816'>815&ndash;816</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L886'>886</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L898'>898</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L905'>905</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L926'>926</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L958'>958</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L979-L980'>979&ndash;980</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L996-L997'>996&ndash;997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/Canvas.ts#L997-L999'>997&ndash;999</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/CanvasOptions.ts'>CanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>94.40%</b></td><td><b>92.28%</b></td><td><b>94%</b></td><td><b>96.14%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L1073'>1073</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L1075'>1075</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L1077-L1078'>1077&ndash;1078</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L300'>300</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L464-L465'>464&ndash;465</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L467-L468'>467&ndash;468</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L468'>468</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L468'>468</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L517-L518'>517&ndash;518</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L579-L580'>579&ndash;580</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L633-L635'>633&ndash;635</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L667'>667</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L672-L673'>672&ndash;673</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L700-L701'>700&ndash;701</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L873'>873</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L873-L874'>873&ndash;874</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L877'>877</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L897'>897</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L897'>897</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L946'>946</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/SelectableCanvas.ts#L954'>954</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>96.78%</b></td><td><b>93.09%</b></td><td>100%</td><td><b>98.53%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1030'>1030</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1040'>1040</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1092-L1093'>1092&ndash;1093</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1096'>1096</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1131-L1132'>1131&ndash;1132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1208'>1208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1217'>1217</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1217'>1217</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1221'>1221</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1221'>1221</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L1268-L1269'>1268&ndash;1269</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L185-L186'>185&ndash;186</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L202'>202</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L570'>570</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L582-L583'>582&ndash;583</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L913-L914'>913&ndash;914</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L914'>914</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvas.ts#L914-L915'>914&ndash;915</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/StaticCanvasOptions.ts'>StaticCanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/TextEditingManager.ts'>TextEditingManager.ts</a></td><td><b>84.31%</b></td><td><b>71.43%</b></td><td><b>91.67%</b></td><td><b>88%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/TextEditingManager.ts#L17-L18'>17&ndash;18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/TextEditingManager.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/TextEditingManager.ts#L18-L19'>18&ndash;19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/TextEditingManager.ts#L19'>19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/TextEditingManager.ts#L19'>19</a></td></tr><tr><td colspan='6'><b>src/canvas/DOMManagers</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/CanvasDOMManager.ts'>CanvasDOMManager.ts</a></td><td><b>95.52%</b></td><td><b>70%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/CanvasDOMManager.ts#L21-L22'>21&ndash;22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/CanvasDOMManager.ts#L29'>29</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/StaticCanvasDOMManager.ts'>StaticCanvasDOMManager.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/util.ts'>util.ts</a></td><td><b>86.67%</b></td><td><b>80.56%</b></td><td><b>83.33%</b></td><td><b>93.94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/util.ts#L14'>14</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/util.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/util.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/util.ts#L74'>74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/canvas/DOMManagers/util.ts#L93-L94'>93&ndash;94</a></td></tr><tr><td colspan='6'><b>src/color</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/Color.ts'>Color.ts</a></td><td><b>94.96%</b></td><td><b>91.67%</b></td><td><b>96.30%</b></td><td><b>96.05%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/Color.ts#L233'>233</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/Color.ts#L258-L259'>258&ndash;259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/Color.ts#L267-L268'>267&ndash;268</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/Color.ts#L48'>48</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/color_map.ts'>color_map.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/util.ts'>util.ts</a></td><td><b>85.71%</b></td><td><b>76.92%</b></td><td>100%</td><td><b>89.74%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/util.ts#L55-L56'>55&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/util.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/util.ts#L58-L59'>58&ndash;59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/util.ts#L61-L62'>61&ndash;62</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/color/util.ts#L89'>89</a></td></tr><tr><td colspan='6'><b>src/controls</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/Control.ts'>Control.ts</a></td><td><b>93.33%</b></td><td><b>87.88%</b></td><td><b>91.67%</b></td><td><b>97.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/Control.ts#L175'>175</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/Control.ts#L240'>240</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/Control.ts#L327'>327</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/Control.ts#L327'>327</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/Control.ts#L362'>362</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/changeWidth.ts'>changeWidth.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/commonControls.ts'>commonControls.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts'>controlRendering.ts</a></td><td><b>81.63%</b></td><td><b>78%</b></td><td>100%</td><td><b>84.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L106'>106</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L111'>111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L65-L72'>65&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/controlRendering.ts#L81-L82'>81&ndash;82</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/drag.ts'>drag.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/fireEvent.ts'>fireEvent.ts</a></td><td><b>88.89%</b></td><td><b>75%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/fireEvent.ts#L13'>13</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts'>polyControl.ts</a></td><td><b>5.97%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>11.11%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L100'>100</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L105'>105</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L121-L124'>121&ndash;124</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L124'>124</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L127'>127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L134'>134</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L25-L29'>25&ndash;29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L50-L56'>50&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L66'>66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L82-L83'>82&ndash;83</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L83'>83</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L83-L84'>83&ndash;84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L88-L90'>88&ndash;90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/polyControl.ts#L92'>92</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts'>rotate.ts</a></td><td><b>19.57%</b></td><td><b>12.50%</b></td><td><b>50%</b></td><td><b>21.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L51-L52'>51&ndash;52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L55-L57'>55&ndash;57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L59-L61'>59&ndash;61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L61-L63'>61&ndash;63</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L65-L67'>65&ndash;67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L67-L68'>67&ndash;68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L73-L74'>73&ndash;74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/rotate.ts#L80-L81'>80&ndash;81</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scale.ts'>scale.ts</a></td><td><b>93.57%</b></td><td><b>92.94%</b></td><td>100%</td><td><b>93.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scale.ts#L129-L130'>129&ndash;130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scale.ts#L132-L134'>132&ndash;134</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scale.ts#L148-L149'>148&ndash;149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scale.ts#L181-L183'>181&ndash;183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scale.ts#L42'>42</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scaleSkew.ts'>scaleSkew.ts</a></td><td><b>78.79%</b></td><td><b>64.29%</b></td><td>100%</td><td><b>85.71%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scaleSkew.ts#L27'>27</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scaleSkew.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scaleSkew.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/scaleSkew.ts#L35'>35</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/skew.ts'>skew.ts</a></td><td><b>91.03%</b></td><td><b>79.31%</b></td><td>100%</td><td><b>97.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/skew.ts#L131-L132'>131&ndash;132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/skew.ts#L163-L164'>163&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/skew.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/skew.ts#L177'>177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/skew.ts#L179'>179</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/util.ts'>util.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/wrapWithFireEvent.ts'>wrapWithFireEvent.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/controls/wrapWithFixedAnchor.ts'>wrapWithFixedAnchor.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/env</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/ccf1e5af9175ffff6bd68d9fbc9de1d2143e537a/src/env/browser.ts'>browser.ts</a></td><td><b>84.21%</b></td><td><b>77.78%</b></td><td><b>50%</b></td><td>100%</td><td><a href='https://github.com/fabricjs/fabric


jiayihu: > I imagine we should add tests

Yes, tests for something so important should be there. This is the base of many interactions an application can build on top of the canvas.
asturur: Please add a description showcase of the bug. What the bug was? how did you find it?
containspoint was doing stuff that you assumed was other stuff, and now we scream BUG BUG BUG MESS MESS MESS the code is not understandable.
The truth is that all the changes that have been done in the name of improving something else changed the meaning of those functions, containsPoint was strictly used for checking targets on mouse.

asturur: > I now understand that containsPoint needs fixing - it uses a complete mess of different coords, not taking group into account

subtarget checks with multiple groups has always worked, that was its job.
If now has a new job, it may not be fit for the job.
ShaMan123: > Please add a description showcase of the bug. What the bug was? how did you find it? containspoint was doing stuff that you assumed was other stuff, and now we scream BUG BUG BUG MESS MESS MESS the code is not understandable. The truth is that all the changes that have been done in the name of improving something else changed the meaning of those functions, containsPoint was strictly used for checking targets on mouse.

This proves to me how dangerous `getPointer` is.
Did you miss https://github.com/fabricjs/fabric.js/pull/9175#discussion_r1305437169?
You are welcome to revert or cherry pick, I see how dangerous it is from our discussion and from the fact that every time I use `getPointer` I must read again the entire comment and start imagining what it does.
You might understand it, but I don't. And I assume others won't as well.
There is no overhead or headache, just a rename. And fact is I could find the bug easily once I renamed.
Nothing is breaking.
If you dislike the name let's rename.
If you dislike the PR, close it and fix it in  a different PR. I won't be happy, but that's life.
If we want fabric to be robust it must be easier.
Even doing a simple `find all occurances` is now a lot easier than with `getPointer`

ShaMan123: Also cherry pick the test against master and you will see the diff
asturur: the confusing methods were only a way to reduce code duplication across fabric, and have no value so is fine they can go.

In all this discussion is unclear to me how many instances of getPointer we swapped during refactors. one or more?

We already discussed that all the absolute:true, ignoreVpt:true and also the definition of absolutePointer are confusing.

Said so be worried of dev not understanding getPointer and then not being able to get it after a console.log is an excess of worry.

This is a change we can merge after we settle on names and i ll try to avoid the size bump that maybe can be avoided




asturur: @ShaMan123  i m sorry but i m having an hard time understanding the changes in this PR.
you swapped a bunch of pointers for a html to non html and the reasons are not clear to me.

asturur: So i spente last hour carefully reading this pr, i think there is a big issue here.
today the code returns:

getPointer(e) => the default behaviour of getPointer, the fabric design canvas coordinate, stored in `_absolutePointer` and returned in the events in pointer ( the default ).

getPointer(e, true) => the html canvas coordinates, stored in `_pointer` internal cache and returned in the event with the name absolutePointer ( added later in the game ).

The names are bad ( or swapped if we want), but this PR is swapping the data too by assigning the `getPointer(e, true) to the function called CanvasCoordinates and assigning to getPointer(e) the one called HTML, so it is swapping A with B.
Or am i seeing this wrong?
We have to approach this differently.

So first of all i ask you, which is the bug you got that led you to create this PR? because in all of this conversation i m still confused.
If we identified a clear bug we should fix it, and the approach assigning better names in some way.

asturur: ok now after spending more time i figured out in 5,x the values were as you are putting them here, let's search the commit
asturur: https://github.com/fabricjs/fabric.js/commit/b6f076cc0c817cd7f70abc7028c9d04295d121a8
8 months ago when we converted the mixin.
I wonder why we had to change it to a function call when we had the the this._absolutePointer and this._pointer.
Some TS complain maybe that forced us to not use the cached values?
ShaMan123: So naming....
I think we should avoid using the words `viewport`,  `absolute`
ShaMan123: What about:
`getHTMLPointFromEvent` => `getPointAsElement` / `getEventPointAsElement` / `getPointFromEventAsElement`
`getCanvasPointFromEvent` => `getPointFromEventAsObject` etc. (I don't like this option)

??
asturur: i would happily break this PR in a way that we can identify the breaking commits and fix those, and leave this for renaming / deprecation.
As it is now this pr i identified that breaking commit i did, but i still have to look at the other changes that are hard to follow for me.

```
getHTMLPointFromEvent => getPointAsElement / getEventPointAsElement / getPointFromEventAsElement
getCanvasPointFromEvent => getPointFromEventAsObject etc. (I don't like this option)
```
those sound worse to me.

i would call the fabric space either design or doc, so getDesignRelativePoint, getDocRelativePoint, are the only one not mixing with html naming counterparts.

ShaMan123: The doc option sounds ok
ShaMan123: but what is the counterpart?
asturur: ok now the pr is smaller and we need to decide on naming only
jiayihu: > i would call the fabric space either design or doc, so getDesignRelativePoint, getDocRelativePoint, are the only one not mixing with html naming counterparts.

I find the "design" naming extremely unintuitive and abstract. Also bear in mind that much of the v6 codebase already uses "canvas plane" as term, so I'd personally pick `getCanvasPointFromEvent` and `getHTMLPointFromEvent`. Alternatively, `getDocumentPointFromEvent` sounds also good to me, like `getDocRelativePoint`. The difference is avoiding to use the words relative/absolute from this point on in favour of "document/html plane, canvas plane, group plane" etc.
ShaMan123: What about using external vs. internal?
getExternalPoint, getInternalPoint?
Or something like that?
I agree using html is indeed misleading as well
asturur: i don't like the plane reference at all in general, for me the sendPointToPlane is a regrettable name also.
for me the best 2 options so far are:
getDocPointFromEvent() and getHMTLCanvasPointFromEvent(). are extremely long and i really dislike that.

I prefer getViewportPoint instead of getHMTLCanvasPointFromEvent, @ShaMan123 said something about the viewport being confusing but i don't understand why.

pointer and absolutePointer needs to stay in the event data object but needs to be near the new names, deprecating the old one, that in this case would be:
docPoint and HTMLCanvasPoint

ShaMan123: Viewport is confusing because the window/browser also has a viewport.
ShaMan123: Doc is almost there, not quite IMO
ShaMan123: Why is sendPointToPlane not good?
We can still rename.
I want to understand your POV
asturur: > Viewport is confusing because the window/browser also has a viewport.

true, but no one knows about that, also if we call it canvasViewport or fabricViewport or docViewport there is no chance of confusing.

Let's focus on the main one, the `Doc` one. Doc is quite there, but not entirely, let's have proposal for this one.

Doc
Page
Design
Drawing
~Document~ too much html
layout
basicPlane
~sheet~ too hard to pronounce correctly when speaking


Thesaurus isn't helping with canvas, page, document synonims
ShaMan123: So you dislike the word plane? U prefer space?
canvasViewportSpace/Plane is a good name IMo BUT what do you call the html space? EventSpace? We can call it the nonTransformed space... or something.
ShaMan123: I saw also usage of `scene` in konva and others
ShaMan123: canvasPlane/Space vs. canvasElementSpace/Plane?

ShaMan123: BTW there is a weird thing when using sendPointToPlane with vpt... it feels a bit reversed
```
cnst pointInCanvasElPlane = sendPointToPlane(pointInCanvasPlane, canvas.viewprtTransform)
```

I make sense but still hard to grasp
asturur: > So you dislike the word plane? U prefer space?
> canvasViewportSpace/Plane is a good name IMo BUT what do you call the html space? EventSpace? We can call it the nonTransformed space... or something.

forget plane for this pr let's focus on the names of those pointers
asturur: > I saw also usage of `scene` in konva and others

scene is good. Scene is better than document or page. 
we still need the other that for me can be HTMLCanvasPoint that is just ok.
ShaMan123: My question is why introduce another name?
If we use HTMLCanvasPoint/Plane/Space why not use CanvasPoint/Plane/Space and document it clearly?

asturur: the second name is for the events.
we suggest to not use getPointer and in the long run it gets private.
Even if we just add getScenePointFromEvent and nothing else, we still need to call getPointer() to backfill pointer and absolutePointer in the event data for release.
regardless of what we choose to do we have to pick up new names for pointer and absolutePointer in the event data to put near the old one that we will remove at some point, since pointer and absolutePointer are confusing as getPointer. 
ShaMan123: canvasPointer, canvasElementPointer?
asturur: > canvasPointer, canvasElementPointer?

those are points, so we need to remove pointer name.
if we call the first method getScenePointFromElement() the event could probably have scenePoint and HTMLCanvasPoint in the event. I still think it has value to provide the HTMLCanvasPoint until we still have some duality in coordinates in fabric internals, or at least to move away from absolute pointer and give a way out of it.

We do not need to provide an alternate method like getHTMLCanvasPointFromElement if we think they should use the the scene + transformation, but we still need to have a way to add it to the event using the cached  value as we do now
ShaMan123: In #8767 there is some mechanism that can be used for this purpose.
Are you sure scene is good? I am not
Regarding caching... I think it is enough to cache a single point and use `sendPointToPlane` - It is a single matrix multplication. Doesn't sound damaging to perf.
ShaMan123: I gave it more thought.
I am aginst scene.
Viable options:
| canvas el | canvas plane | 
| --------- | -------------- | 
| identity plane | canvas plane | 
| viewer/viewing plane | renderer/rendering/object plane |

The canvas el plane is the identity plane for the dev. 
If a chess player tells a pawn that exists in the identity plane to move a step of (1, 1) both will measure the same distance. 
However if the player tells a pawn exisiting in the canvas plane both will mesure a differnet thing if the vpt is not the **identity** matrix.
I will use this term from now on, hopefully we can agree on something here.
asturur: what is wrong with scene? seems a commonly used name.
If viewingPlane is good for you we keep viewportPoint and getviewportPoint.... Since viewport is that same concept.
ShaMan123: Viewport has too much load on it.
I already said that.
Tell me, what is a viewport point?
A point in the browser viewport? Of course not, but still confusing.
A point in the canvas viewport? Or in the canvas viewport transform plane?????
The first is the identity llane and the second is not.

ShaMan123: Ok, scene is fine
We have a scene playing and a viewer viewing it.
Can you live with that?
Viewport is a no go, just asks for more confusion
ShaMan123: Which other names can convey the fact we are looking through a perspective? Like a camera, lens etc.


asturur: My mind goes to viewport because is a term i have seen always around in graphic, sometimes referred as camera sometimes viewport. While viewer not.

i think that eventually we could also not use scene and explain that when an event or an object has a property called point, that is just in the scene/design/document/fabric coordinate. No ambiguity. If we give back a point in a different coordinate system then we would have to name it.
asturur: If i google viewport it seems to confirm is exactly the viewer:

https://en.wikipedia.org/wiki/Viewport

<img width="990" alt="image" src="https://github.com/fabricjs/fabric.js/assets/1194048/7d8e3ca9-2301-4c34-bfbb-cadf3ba6a426">

https://docs.unity3d.com/ScriptReference/Camera.WorldToViewportPoint.html

<img width="370" alt="image" src="https://github.com/fabricjs/fabric.js/assets/1194048/7e62ec66-d671-458f-ad18-bccbe2923376">

Some common points that come up is that one viewport point is always a unit in the device that display ( in our case we use css pixels and not screen pixels )


Regarding the fact that viewport has too much load i disagree, we have a viewport transform that is a concept that is long in fabric, and we have a method like viewportCenter object.

We may like it or not but is a common way to call that kind of coordinates and is well known to whoever does graphics.
ShaMan123: Ok 
I just find it confusing that when sending a point from the viewport to the canvas plane and vice versa then the viewport transform is applied in the opposite way in relation to the name.
So viewport is ehat the element measures, and scene is what an object measures?
jiayihu: Just call it `clientViewport`, `windowViewport` or `documentViewport` guys, then it's clear compared to `canvas.viewportTransform` or "canvas viewport" which indeed is correctly meaning the area in canvas plane coordinates. Whereas `clientViewport` means the area in client coordinates
ShaMan123: renamed.
final thing I need to understand - I will add a test for it.
Seems the calculation of the scene point is wrong because in `getPointer` it skips the last part of the retina normalization whereas in `_cacheTransformEventData` it does not
github-actions[bot]: 

Coverage after merging <b>rm-vpt-methods</b> into <b>master</b> will be<table><tbody><tr><th>82.97%</th></tr></tbody></table>

<details><summary>Coverage Report</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/index.node.ts'>index.node.ts</a></td><td><b>7.69%</b></td><td>100%</td><td><b>0%</b></td><td><b>14.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/index.node.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/index.node.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/index.node.ts#L35'>35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/index.node.ts#L38'>38</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/index.node.ts#L41'>41</a></td></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Collection.ts'>Collection.ts</a></td><td><b>94.71%</b></td><td><b>94.64%</b></td><td><b>86.67%</b></td><td><b>97.09%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Collection.ts#L101'>101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Collection.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Collection.ts#L207-L208'>207&ndash;208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Collection.ts#L233-L234'>233&ndash;234</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>96.55%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/CommonMethods.ts#L9'>9</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Intersection.ts'>Intersection.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Observable.ts'>Observable.ts</a></td><td><b>87.76%</b></td><td><b>85.29%</b></td><td><b>87.50%</b></td><td><b>89.58%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Observable.ts#L134-L135'>134&ndash;135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Observable.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Observable.ts#L32-L33'>32&ndash;33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Observable.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Observable.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Observable.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Observable.ts#L89'>89</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Point.ts'>Point.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Shadow.ts'>Shadow.ts</a></td><td><b>98.36%</b></td><td><b>95.65%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Shadow.ts#L178'>178</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/cache.ts'>cache.ts</a></td><td><b>97.06%</b></td><td><b>90%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/cache.ts#L57'>57</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/config.ts'>config.ts</a></td><td><b>75%</b></td><td><b>66.67%</b></td><td><b>66.67%</b></td><td><b>82.76%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/config.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/config.ts#L138-L140'>138&ndash;140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/config.ts#L151-L153'>151&ndash;153</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/Pattern</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>92.31%</b></td><td><b>91.89%</b></td><td><b>90%</b></td><td><b>93.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Pattern/Pattern.ts#L118'>118</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Pattern/Pattern.ts#L129'>129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Pattern/Pattern.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Pattern/Pattern.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/Pattern/Pattern.ts#L94'>94</a></td></tr><tr><td colspan='6'><b>src/brushes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L112'>112</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L114-L116'>114&ndash;116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L118-L121'>118&ndash;121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L128-L129'>128&ndash;129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L13'>13</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L23-L24'>23&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L32-L36'>32&ndash;36</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L40-L44'>40&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L51-L54'>51&ndash;54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L62-L66'>62&ndash;66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L68'>68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L76-L77'>76&ndash;77</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L79-L82'>79&ndash;82</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L92-L93'>92&ndash;93</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L95'>95</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/CircleBrush.ts#L97-L99'>97&ndash;99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PatternBrush.ts'>PatternBrush.ts</a></td><td><b>97.06%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts'>PencilBrush.ts</a></td><td><b>91.06%</b></td><td><b>82.35%</b></td><td>100%</td><td><b>93.81%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/PencilBrush.ts#L84-L85'>84&ndash;85</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts'>SprayBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L149-L152'>149&ndash;152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L154-L157'>154&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L161-L162'>161&ndash;162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L164'>164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L166-L169'>166&ndash;169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L172'>172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L180'>180</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L184-L185'>184&ndash;185</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L187'>187</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L194-L195'>194&ndash;195</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L197-L198'>197&ndash;198</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L212'>212</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/brushes/SprayBrush.ts#L98-L99'>98&ndash;99</a></td></tr><tr><td colspan='6'><b>src/canvas</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>79.12%</b></td><td><b>77.68%</b></td><td><b>83.05%</b></td><td><b>79.61%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1000'>1000</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1002-L1003'>1002&ndash;1003</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1003'>1003</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1003'>1003</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1005'>1005</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1013'>1013</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1013'>1013</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1013-L1015'>1013&ndash;1015</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1015'>1015</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1015'>1015</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1022-L1023'>1022&ndash;1023</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1031-L1032'>1031&ndash;1032</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1032'>1032</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1032-L1033'>1032&ndash;1033</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1039'>1039</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1041'>1041</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1072-L1074'>1072&ndash;1074</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1077-L1078'>1077&ndash;1078</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1082-L1083'>1082&ndash;1083</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1200-L1202'>1200&ndash;1202</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1205-L1206'>1205&ndash;1206</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1279'>1279</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1398'>1398</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L1520'>1520</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L157'>157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L292-L293'>292&ndash;293</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L296-L300'>296&ndash;300</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L305'>305</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L328-L329'>328&ndash;329</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L334-L339'>334&ndash;339</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L359-L360'>359&ndash;360</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L360'>360</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L360-L361'>360&ndash;361</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L369'>369</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L37'>37</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L374-L375'>374&ndash;375</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L375'>375</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L375-L376'>375&ndash;376</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L378'>378</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L387'>387</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L393-L394'>393&ndash;394</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L394'>394</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L394'>394</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L437'>437</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L445'>445</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L449'>449</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L449'>449</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L449-L450'>449&ndash;450</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L452'>452</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L535-L536'>535&ndash;536</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L536'>536</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L536-L537'>536&ndash;537</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L543'>543</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L543'>543</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L543-L545'>543&ndash;545</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L567'>567</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L567'>567</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L567-L568'>567&ndash;568</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L568'>568</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L568'>568</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L571'>571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L571'>571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L571-L572'>571&ndash;572</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L575'>575</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L584-L585'>584&ndash;585</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L587-L588'>587&ndash;588</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L590'>590</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L590-L591'>590&ndash;591</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L593-L594'>593&ndash;594</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L606-L607'>606&ndash;607</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L607'>607</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L607-L608'>607&ndash;608</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L610-L615'>610&ndash;615</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L621'>621</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L628'>628</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L665'>665</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L665'>665</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L665'>665</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L667'>667</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L669-L674'>669&ndash;674</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L680'>680</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L686'>686</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L686'>686</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L686-L687'>686&ndash;687</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L689'>689</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L692'>692</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L697'>697</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L710'>710</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L738'>738</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L738'>738</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L796-L797'>796&ndash;797</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L797'>797</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L797-L798'>797&ndash;798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L800'>800</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L803-L804'>803&ndash;804</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L804'>804</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L804-L805'>804&ndash;805</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L807-L808'>807&ndash;808</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L811'>811</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L811-L813'>811&ndash;813</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L816-L817'>816&ndash;817</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L887'>887</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L899'>899</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L927'>927</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L959'>959</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L980-L981'>980&ndash;981</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L997-L998'>997&ndash;998</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L998'>998</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/Canvas.ts#L998-L999'>998&ndash;999</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/CanvasOptions.ts'>CanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>94.41%</b></td><td><b>92.15%</b></td><td><b>94.23%</b></td><td><b>96.18%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L1104'>1104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L1106'>1106</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L1108-L1109'>1108&ndash;1109</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L300'>300</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L465-L466'>465&ndash;466</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L468-L469'>468&ndash;469</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L469'>469</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L469'>469</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L518-L519'>518&ndash;519</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L580-L581'>580&ndash;581</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L634-L636'>634&ndash;636</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L668'>668</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L673-L674'>673&ndash;674</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L701-L702'>701&ndash;702</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L904'>904</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L904-L905'>904&ndash;905</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L908'>908</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L928'>928</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L928'>928</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L977'>977</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/SelectableCanvas.ts#L985'>985</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>96.78%</b></td><td><b>93.09%</b></td><td>100%</td><td><b>98.53%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1031'>1031</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1041'>1041</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1093-L1094'>1093&ndash;1094</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1097'>1097</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1132-L1133'>1132&ndash;1133</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1209'>1209</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L1269-L1270'>1269&ndash;1270</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L186-L187'>186&ndash;187</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L203'>203</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L571'>571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L583-L584'>583&ndash;584</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L914-L915'>914&ndash;915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L915'>915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvas.ts#L915-L916'>915&ndash;916</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/StaticCanvasOptions.ts'>StaticCanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/TextEditingManager.ts'>TextEditingManager.ts</a></td><td><b>84.31%</b></td><td><b>71.43%</b></td><td><b>91.67%</b></td><td><b>88%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/TextEditingManager.ts#L17-L18'>17&ndash;18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/TextEditingManager.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/TextEditingManager.ts#L18-L19'>18&ndash;19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/TextEditingManager.ts#L19'>19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/TextEditingManager.ts#L19'>19</a></td></tr><tr><td colspan='6'><b>src/canvas/DOMManagers</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/CanvasDOMManager.ts'>CanvasDOMManager.ts</a></td><td><b>95.52%</b></td><td><b>70%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/CanvasDOMManager.ts#L21-L22'>21&ndash;22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/CanvasDOMManager.ts#L29'>29</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/StaticCanvasDOMManager.ts'>StaticCanvasDOMManager.ts</a></td><td><b>97.50%</b></td><td><b>88.89%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/StaticCanvasDOMManager.ts#L32'>32</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/util.ts'>util.ts</a></td><td><b>86.67%</b></td><td><b>80.56%</b></td><td><b>83.33%</b></td><td><b>93.94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/util.ts#L14'>14</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/util.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/util.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/util.ts#L74'>74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/canvas/DOMManagers/util.ts#L93-L94'>93&ndash;94</a></td></tr><tr><td colspan='6'><b>src/color</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/Color.ts'>Color.ts</a></td><td><b>94.96%</b></td><td><b>91.67%</b></td><td><b>96.30%</b></td><td><b>96.05%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/Color.ts#L233'>233</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/Color.ts#L258-L259'>258&ndash;259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/Color.ts#L267-L268'>267&ndash;268</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/Color.ts#L48'>48</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/color_map.ts'>color_map.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/util.ts'>util.ts</a></td><td><b>85.71%</b></td><td><b>76.92%</b></td><td>100%</td><td><b>89.74%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/util.ts#L55-L56'>55&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/util.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/util.ts#L58-L59'>58&ndash;59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/util.ts#L61-L62'>61&ndash;62</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/color/util.ts#L89'>89</a></td></tr><tr><td colspan='6'><b>src/controls</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/Control.ts'>Control.ts</a></td><td><b>93.33%</b></td><td><b>87.88%</b></td><td><b>91.67%</b></td><td><b>97.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/Control.ts#L175'>175</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/Control.ts#L240'>240</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/Control.ts#L327'>327</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/Control.ts#L327'>327</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/Control.ts#L362'>362</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/changeWidth.ts'>changeWidth.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/commonControls.ts'>commonControls.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts'>controlRendering.ts</a></td><td><b>81.63%</b></td><td><b>78%</b></td><td>100%</td><td><b>84.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L106'>106</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L111'>111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L65-L72'>65&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/controlRendering.ts#L81-L82'>81&ndash;82</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/drag.ts'>drag.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/fireEvent.ts'>fireEvent.ts</a></td><td><b>88.89%</b></td><td><b>75%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/fireEvent.ts#L13'>13</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts'>polyControl.ts</a></td><td><b>6.06%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>11.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L103'>103</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L117'>117</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L117'>117</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L117'>117</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L117'>117</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L117'>117</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L119-L122'>119&ndash;122</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L122'>122</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L125'>125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L132'>132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L25-L29'>25&ndash;29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L50-L56'>50&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L66'>66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L82-L84'>82&ndash;84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L86'>86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L89-L90'>89&ndash;90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L92'>92</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/polyControl.ts#L97'>97</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts'>rotate.ts</a></td><td><b>19.57%</b></td><td><b>12.50%</b></td><td><b>50%</b></td><td><b>21.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L51-L52'>51&ndash;52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L55-L57'>55&ndash;57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L59-L61'>59&ndash;61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L61-L63'>61&ndash;63</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L65-L67'>65&ndash;67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L67-L68'>67&ndash;68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L73-L74'>73&ndash;74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/rotate.ts#L80-L81'>80&ndash;81</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scale.ts'>scale.ts</a></td><td><b>93.57%</b></td><td><b>92.94%</b></td><td>100%</td><td><b>93.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scale.ts#L129-L130'>129&ndash;130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scale.ts#L132-L134'>132&ndash;134</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scale.ts#L148-L149'>148&ndash;149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scale.ts#L181-L183'>181&ndash;183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scale.ts#L42'>42</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scaleSkew.ts'>scaleSkew.ts</a></td><td><b>78.79%</b></td><td><b>64.29%</b></td><td>100%</td><td><b>85.71%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scaleSkew.ts#L27'>27</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scaleSkew.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scaleSkew.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/scaleSkew.ts#L35'>35</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/skew.ts'>skew.ts</a></td><td><b>91.03%</b></td><td><b>79.31%</b></td><td>100%</td><td><b>97.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/skew.ts#L131-L132'>131&ndash;132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/skew.ts#L163-L164'>163&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/skew.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/skew.ts#L177'>177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/skew.ts#L179'>179</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/util.ts'>util.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/wrapWithFireEvent.ts'>wrapWithFireEvent.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/b74e5937fecce54e96b3343b5706e1a71194c71f/src/controls/wrapWithFixedAnchor.ts'>wrapWithFixedAnchor.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/env


ShaMan123: and now I pushed a regression
github-actions[bot]: Coverage after merging <b>rm-vpt-methods</b> into <b>master</b> will be<table><tbody><tr><th>82.91%</th></tr></tbody></table>

<details><summary>Coverage Report</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/index.node.ts'>index.node.ts</a></td><td><b>7.69%</b></td><td>100%</td><td><b>0%</b></td><td><b>14.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/index.node.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/index.node.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/index.node.ts#L35'>35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/index.node.ts#L38'>38</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/index.node.ts#L41'>41</a></td></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Collection.ts'>Collection.ts</a></td><td><b>94.71%</b></td><td><b>94.64%</b></td><td><b>86.67%</b></td><td><b>97.09%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Collection.ts#L101'>101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Collection.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Collection.ts#L207-L208'>207&ndash;208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Collection.ts#L233-L234'>233&ndash;234</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>96.55%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/CommonMethods.ts#L9'>9</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Intersection.ts'>Intersection.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Observable.ts'>Observable.ts</a></td><td><b>87.76%</b></td><td><b>85.29%</b></td><td><b>87.50%</b></td><td><b>89.58%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Observable.ts#L134-L135'>134&ndash;135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Observable.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Observable.ts#L32-L33'>32&ndash;33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Observable.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Observable.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Observable.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Observable.ts#L89'>89</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Point.ts'>Point.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Shadow.ts'>Shadow.ts</a></td><td><b>98.36%</b></td><td><b>95.65%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Shadow.ts#L178'>178</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/cache.ts'>cache.ts</a></td><td><b>97.06%</b></td><td><b>90%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/cache.ts#L57'>57</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/config.ts'>config.ts</a></td><td><b>75%</b></td><td><b>66.67%</b></td><td><b>66.67%</b></td><td><b>82.76%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/config.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/config.ts#L138-L140'>138&ndash;140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/config.ts#L151-L153'>151&ndash;153</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/Pattern</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>92.31%</b></td><td><b>91.89%</b></td><td><b>90%</b></td><td><b>93.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Pattern/Pattern.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Pattern/Pattern.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Pattern/Pattern.ts#L139'>139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Pattern/Pattern.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/Pattern/Pattern.ts#L95'>95</a></td></tr><tr><td colspan='6'><b>src/brushes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L112'>112</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L114-L116'>114&ndash;116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L118-L121'>118&ndash;121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L128-L129'>128&ndash;129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L13'>13</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L23-L24'>23&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L32-L36'>32&ndash;36</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L40-L44'>40&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L51-L54'>51&ndash;54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L62-L66'>62&ndash;66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L68'>68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L76-L77'>76&ndash;77</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L79-L82'>79&ndash;82</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L92-L93'>92&ndash;93</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L95'>95</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/CircleBrush.ts#L97-L99'>97&ndash;99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PatternBrush.ts'>PatternBrush.ts</a></td><td><b>97.06%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts'>PencilBrush.ts</a></td><td><b>91.06%</b></td><td><b>82.35%</b></td><td>100%</td><td><b>93.81%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/PencilBrush.ts#L84-L85'>84&ndash;85</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts'>SprayBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L149-L152'>149&ndash;152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L154-L157'>154&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L161-L162'>161&ndash;162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L164'>164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L166-L169'>166&ndash;169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L172'>172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L180'>180</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L184-L185'>184&ndash;185</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L187'>187</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L194-L195'>194&ndash;195</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L197-L198'>197&ndash;198</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L212'>212</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/brushes/SprayBrush.ts#L98-L99'>98&ndash;99</a></td></tr><tr><td colspan='6'><b>src/canvas</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>78.87%</b></td><td><b>76.67%</b></td><td><b>82.76%</b></td><td><b>79.88%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1000'>1000</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1000'>1000</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1000-L1002'>1000&ndash;1002</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1002'>1002</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1002'>1002</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1009-L1010'>1009&ndash;1010</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1018-L1019'>1018&ndash;1019</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1019'>1019</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1019-L1020'>1019&ndash;1020</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1026'>1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1028'>1028</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1056-L1058'>1056&ndash;1058</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1061-L1062'>1061&ndash;1062</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1066-L1067'>1066&ndash;1067</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1190-L1192'>1190&ndash;1192</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1195-L1196'>1195&ndash;1196</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1269'>1269</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1388'>1388</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L148'>148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L1510'>1510</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L173'>173</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L282-L283'>282&ndash;283</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L286-L290'>286&ndash;290</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L295'>295</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L318-L319'>318&ndash;319</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L324-L329'>324&ndash;329</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L349'>349</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L349'>349</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L349-L350'>349&ndash;350</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L350'>350</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L350-L351'>350&ndash;351</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L36'>36</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L364-L365'>364&ndash;365</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L365'>365</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L365-L366'>365&ndash;366</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L368'>368</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L377'>377</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L383-L384'>383&ndash;384</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L384'>384</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L384'>384</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L427'>427</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L435'>435</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L439'>439</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L439'>439</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L439-L440'>439&ndash;440</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L442'>442</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L525-L526'>525&ndash;526</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L526'>526</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L526-L527'>526&ndash;527</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L533'>533</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L533'>533</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L533-L535'>533&ndash;535</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L555'>555</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L557'>557</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L557'>557</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L557-L558'>557&ndash;558</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L558'>558</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L558'>558</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L561'>561</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L561'>561</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L561-L562'>561&ndash;562</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L574-L575'>574&ndash;575</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L577-L578'>577&ndash;578</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L580'>580</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L580-L581'>580&ndash;581</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L583-L584'>583&ndash;584</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L596-L597'>596&ndash;597</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L597'>597</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L597-L598'>597&ndash;598</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L600-L605'>600&ndash;605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L611'>611</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L618'>618</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L655'>655</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L655'>655</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L655'>655</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L657'>657</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L659-L664'>659&ndash;664</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L670'>670</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L676'>676</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L676'>676</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L676-L677'>676&ndash;677</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L679'>679</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L682'>682</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L687'>687</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L700'>700</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L728'>728</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L728'>728</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L789-L790'>789&ndash;790</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L790'>790</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L790'>790</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L790'>790</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L790'>790</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L790'>790</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L793-L794'>793&ndash;794</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L797'>797</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L797-L799'>797&ndash;799</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L802-L803'>802&ndash;803</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L879'>879</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L891'>891</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L898'>898</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L898'>898</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L898'>898</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L911'>911</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L945'>945</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L966-L967'>966&ndash;967</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L983-L984'>983&ndash;984</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L984'>984</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L984-L986'>984&ndash;986</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L989-L990'>989&ndash;990</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L990'>990</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L990'>990</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/Canvas.ts#L992'>992</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/CanvasOptions.ts'>CanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>94.34%</b></td><td><b>91.94%</b></td><td><b>94.34%</b></td><td><b>96.21%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L1096'>1096</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L1098'>1098</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L1100-L1101'>1100&ndash;1101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L300'>300</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L470-L471'>470&ndash;471</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L473-L474'>473&ndash;474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L523-L524'>523&ndash;524</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L599'>599</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L639-L641'>639&ndash;641</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L673'>673</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L678-L679'>678&ndash;679</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L706-L707'>706&ndash;707</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L896'>896</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L896-L897'>896&ndash;897</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L900'>900</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L969'>969</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/SelectableCanvas.ts#L977'>977</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>96.78%</b></td><td><b>93.09%</b></td><td>100%</td><td><b>98.53%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1031'>1031</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1041'>1041</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1093-L1094'>1093&ndash;1094</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1097'>1097</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1132-L1133'>1132&ndash;1133</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1209'>1209</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L1269-L1270'>1269&ndash;1270</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L187-L188'>187&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L204'>204</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L571'>571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L583-L584'>583&ndash;584</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L914-L915'>914&ndash;915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L915'>915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvas.ts#L915-L916'>915&ndash;916</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/StaticCanvasOptions.ts'>StaticCanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/TextEditingManager.ts'>TextEditingManager.ts</a></td><td><b>84.31%</b></td><td><b>71.43%</b></td><td><b>91.67%</b></td><td><b>88%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/TextEditingManager.ts#L17-L18'>17&ndash;18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/TextEditingManager.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/TextEditingManager.ts#L18-L19'>18&ndash;19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/TextEditingManager.ts#L19'>19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/TextEditingManager.ts#L19'>19</a></td></tr><tr><td colspan='6'><b>src/canvas/DOMManagers</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/CanvasDOMManager.ts'>CanvasDOMManager.ts</a></td><td><b>95.52%</b></td><td><b>70%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/CanvasDOMManager.ts#L21-L22'>21&ndash;22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/CanvasDOMManager.ts#L29'>29</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/StaticCanvasDOMManager.ts'>StaticCanvasDOMManager.ts</a></td><td><b>97.50%</b></td><td><b>88.89%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/StaticCanvasDOMManager.ts#L33'>33</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/util.ts'>util.ts</a></td><td><b>86.67%</b></td><td><b>80.56%</b></td><td><b>83.33%</b></td><td><b>93.94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/util.ts#L14'>14</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/util.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/util.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/util.ts#L74'>74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/canvas/DOMManagers/util.ts#L93-L94'>93&ndash;94</a></td></tr><tr><td colspan='6'><b>src/color</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/Color.ts'>Color.ts</a></td><td><b>94.96%</b></td><td><b>91.67%</b></td><td><b>96.30%</b></td><td><b>96.05%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/Color.ts#L233'>233</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/Color.ts#L258-L259'>258&ndash;259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/Color.ts#L267-L268'>267&ndash;268</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/Color.ts#L48'>48</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/color_map.ts'>color_map.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/util.ts'>util.ts</a></td><td><b>85.71%</b></td><td><b>76.92%</b></td><td>100%</td><td><b>89.74%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/util.ts#L55-L56'>55&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/util.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/util.ts#L58-L59'>58&ndash;59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/util.ts#L61-L62'>61&ndash;62</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/color/util.ts#L89'>89</a></td></tr><tr><td colspan='6'><b>src/controls</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/Control.ts'>Control.ts</a></td><td><b>94.44%</b></td><td><b>93.10%</b></td><td><b>91.67%</b></td><td><b>96.77%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/Control.ts#L183'>183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/Control.ts#L249'>249</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/Control.ts#L354'>354</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/changeWidth.ts'>changeWidth.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/commonControls.ts'>commonControls.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts'>controlRendering.ts</a></td><td><b>81.63%</b></td><td><b>78%</b></td><td>100%</td><td><b>84.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L106'>106</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L111'>111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L65-L72'>65&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/controlRendering.ts#L81-L82'>81&ndash;82</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/drag.ts'>drag.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/fireEvent.ts'>fireEvent.ts</a></td><td><b>88.89%</b></td><td><b>75%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/fireEvent.ts#L13'>13</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts'>polyControl.ts</a></td><td><b>7.25%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>13.51%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L103'>103</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L122-L125'>122&ndash;125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L125'>125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L128'>128</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L135'>135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L25-L29'>25&ndash;29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L50-L56'>50&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L66'>66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L82-L84'>82&ndash;84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L86'>86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L89-L90'>89&ndash;90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L92'>92</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/polyControl.ts#L97'>97</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts'>rotate.ts</a></td><td><b>19.57%</b></td><td><b>12.50%</b></td><td><b>50%</b></td><td><b>21.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L51-L52'>51&ndash;52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L55-L57'>55&ndash;57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L59-L61'>59&ndash;61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L61-L63'>61&ndash;63</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L65-L67'>65&ndash;67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L67-L68'>67&ndash;68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L73-L74'>73&ndash;74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/rotate.ts#L80-L81'>80&ndash;81</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scale.ts'>scale.ts</a></td><td><b>93.57%</b></td><td><b>92.94%</b></td><td>100%</td><td><b>93.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scale.ts#L129-L130'>129&ndash;130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scale.ts#L132-L134'>132&ndash;134</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scale.ts#L148-L149'>148&ndash;149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scale.ts#L181-L183'>181&ndash;183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scale.ts#L42'>42</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scaleSkew.ts'>scaleSkew.ts</a></td><td><b>78.79%</b></td><td><b>64.29%</b></td><td>100%</td><td><b>85.71%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scaleSkew.ts#L27'>27</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scaleSkew.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scaleSkew.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/scaleSkew.ts#L35'>35</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/skew.ts'>skew.ts</a></td><td><b>91.03%</b></td><td><b>79.31%</b></td><td>100%</td><td><b>97.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/skew.ts#L131-L132'>131&ndash;132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/skew.ts#L163-L164'>163&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/skew.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/skew.ts#L177'>177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/skew.ts#L179'>179</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/util.ts'>util.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/wrapWithFireEvent.ts'>wrapWithFireEvent.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/251a2de14a321b322bcc84d86f51c9c47843cfff/src/controls/wrapWithFixedAnchor.ts'>wrapWithFixedAnchor.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/env</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https:
github-actions[bot]: Coverage after merging <b>rm-vpt-methods</b> into <b>master</b> will be<table><tbody><tr><th>82.92%</th></tr></tbody></table>

<details><summary>Coverage Report</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/index.node.ts'>index.node.ts</a></td><td><b>7.69%</b></td><td>100%</td><td><b>0%</b></td><td><b>14.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/index.node.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/index.node.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/index.node.ts#L35'>35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/index.node.ts#L38'>38</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/index.node.ts#L41'>41</a></td></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Collection.ts'>Collection.ts</a></td><td><b>94.71%</b></td><td><b>94.64%</b></td><td><b>86.67%</b></td><td><b>97.09%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Collection.ts#L101'>101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Collection.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Collection.ts#L207-L208'>207&ndash;208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Collection.ts#L233-L234'>233&ndash;234</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>96.55%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/CommonMethods.ts#L9'>9</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Intersection.ts'>Intersection.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Observable.ts'>Observable.ts</a></td><td><b>87.76%</b></td><td><b>85.29%</b></td><td><b>87.50%</b></td><td><b>89.58%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Observable.ts#L134-L135'>134&ndash;135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Observable.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Observable.ts#L32-L33'>32&ndash;33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Observable.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Observable.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Observable.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Observable.ts#L89'>89</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Point.ts'>Point.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Shadow.ts'>Shadow.ts</a></td><td><b>98.36%</b></td><td><b>95.65%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Shadow.ts#L178'>178</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/cache.ts'>cache.ts</a></td><td><b>97.06%</b></td><td><b>90%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/cache.ts#L57'>57</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/config.ts'>config.ts</a></td><td><b>75%</b></td><td><b>66.67%</b></td><td><b>66.67%</b></td><td><b>82.76%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/config.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/config.ts#L138-L140'>138&ndash;140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/config.ts#L151-L153'>151&ndash;153</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/Pattern</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>92.31%</b></td><td><b>91.89%</b></td><td><b>90%</b></td><td><b>93.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Pattern/Pattern.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Pattern/Pattern.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Pattern/Pattern.ts#L139'>139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Pattern/Pattern.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/Pattern/Pattern.ts#L95'>95</a></td></tr><tr><td colspan='6'><b>src/brushes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L112'>112</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L114-L116'>114&ndash;116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L118-L121'>118&ndash;121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L128-L129'>128&ndash;129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L13'>13</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L23-L24'>23&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L32-L36'>32&ndash;36</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L40-L44'>40&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L51-L54'>51&ndash;54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L62-L66'>62&ndash;66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L68'>68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L76-L77'>76&ndash;77</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L79-L82'>79&ndash;82</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L92-L93'>92&ndash;93</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L95'>95</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/CircleBrush.ts#L97-L99'>97&ndash;99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PatternBrush.ts'>PatternBrush.ts</a></td><td><b>97.06%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts'>PencilBrush.ts</a></td><td><b>91.06%</b></td><td><b>82.35%</b></td><td>100%</td><td><b>93.81%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/PencilBrush.ts#L84-L85'>84&ndash;85</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts'>SprayBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L149-L152'>149&ndash;152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L154-L157'>154&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L161-L162'>161&ndash;162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L164'>164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L166-L169'>166&ndash;169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L172'>172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L180'>180</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L184-L185'>184&ndash;185</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L187'>187</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L194-L195'>194&ndash;195</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L197-L198'>197&ndash;198</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L212'>212</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/brushes/SprayBrush.ts#L98-L99'>98&ndash;99</a></td></tr><tr><td colspan='6'><b>src/canvas</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>78.99%</b></td><td><b>76.67%</b></td><td><b>83.05%</b></td><td><b>80.04%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1007-L1009'>1007&ndash;1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1016-L1017'>1016&ndash;1017</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1025-L1026'>1025&ndash;1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1026'>1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1026-L1027'>1026&ndash;1027</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1033'>1033</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1035'>1035</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1063-L1065'>1063&ndash;1065</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1068-L1069'>1068&ndash;1069</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1073-L1074'>1073&ndash;1074</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1197-L1199'>1197&ndash;1199</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1202-L1203'>1202&ndash;1203</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1276'>1276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1393'>1393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L1515'>1515</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L159'>159</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L184'>184</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L291-L292'>291&ndash;292</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L295-L299'>295&ndash;299</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L304'>304</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L327-L328'>327&ndash;328</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L333-L338'>333&ndash;338</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L358-L359'>358&ndash;359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L359-L360'>359&ndash;360</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L368'>368</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L373-L374'>373&ndash;374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L374'>374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L374-L375'>374&ndash;375</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L377'>377</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L386'>386</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L392-L393'>392&ndash;393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L43'>43</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L436'>436</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L444'>444</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L448-L449'>448&ndash;449</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L451'>451</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L47'>47</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L533-L534'>533&ndash;534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L534'>534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L534-L535'>534&ndash;535</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L541-L543'>541&ndash;543</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L563'>563</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L565-L566'>565&ndash;566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L569-L570'>569&ndash;570</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L573'>573</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L582-L583'>582&ndash;583</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L588'>588</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L588-L589'>588&ndash;589</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L591-L592'>591&ndash;592</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L604-L605'>604&ndash;605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L605'>605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L605-L606'>605&ndash;606</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L608-L613'>608&ndash;613</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L619'>619</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L626'>626</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L665'>665</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L667-L672'>667&ndash;672</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L678'>678</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L684-L685'>684&ndash;685</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L687'>687</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L690'>690</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L695'>695</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L708'>708</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L797-L798'>797&ndash;798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L801-L802'>801&ndash;802</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L805'>805</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L805-L807'>805&ndash;807</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L810-L811'>810&ndash;811</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L887'>887</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L899'>899</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L919'>919</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L952'>952</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L973-L974'>973&ndash;974</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L990-L991'>990&ndash;991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L991'>991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L991-L993'>991&ndash;993</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L996-L997'>996&ndash;997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/Canvas.ts#L999'>999</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/CanvasOptions.ts'>CanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>94.34%</b></td><td><b>91.94%</b></td><td><b>94.34%</b></td><td><b>96.21%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L1096'>1096</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L1098'>1098</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L1100-L1101'>1100&ndash;1101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L300'>300</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L470-L471'>470&ndash;471</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L473-L474'>473&ndash;474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L523-L524'>523&ndash;524</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L599'>599</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L639-L641'>639&ndash;641</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L673'>673</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L678-L679'>678&ndash;679</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L706-L707'>706&ndash;707</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L896'>896</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L896-L897'>896&ndash;897</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L900'>900</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L969'>969</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/SelectableCanvas.ts#L977'>977</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>96.78%</b></td><td><b>93.09%</b></td><td>100%</td><td><b>98.53%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1031'>1031</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1041'>1041</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1093-L1094'>1093&ndash;1094</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1097'>1097</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1132-L1133'>1132&ndash;1133</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1209'>1209</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L1269-L1270'>1269&ndash;1270</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L187-L188'>187&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L204'>204</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L571'>571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L583-L584'>583&ndash;584</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L914-L915'>914&ndash;915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L915'>915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvas.ts#L915-L916'>915&ndash;916</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/StaticCanvasOptions.ts'>StaticCanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/TextEditingManager.ts'>TextEditingManager.ts</a></td><td><b>84.31%</b></td><td><b>71.43%</b></td><td><b>91.67%</b></td><td><b>88%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/TextEditingManager.ts#L17-L18'>17&ndash;18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/TextEditingManager.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/TextEditingManager.ts#L18-L19'>18&ndash;19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/TextEditingManager.ts#L19'>19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/TextEditingManager.ts#L19'>19</a></td></tr><tr><td colspan='6'><b>src/canvas/DOMManagers</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/CanvasDOMManager.ts'>CanvasDOMManager.ts</a></td><td><b>95.52%</b></td><td><b>70%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/CanvasDOMManager.ts#L21-L22'>21&ndash;22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/CanvasDOMManager.ts#L29'>29</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/StaticCanvasDOMManager.ts'>StaticCanvasDOMManager.ts</a></td><td><b>97.50%</b></td><td><b>88.89%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/StaticCanvasDOMManager.ts#L33'>33</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/util.ts'>util.ts</a></td><td><b>86.67%</b></td><td><b>80.56%</b></td><td><b>83.33%</b></td><td><b>93.94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/util.ts#L14'>14</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/util.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/util.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/util.ts#L74'>74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/canvas/DOMManagers/util.ts#L93-L94'>93&ndash;94</a></td></tr><tr><td colspan='6'><b>src/color</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/Color.ts'>Color.ts</a></td><td><b>94.96%</b></td><td><b>91.67%</b></td><td><b>96.30%</b></td><td><b>96.05%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/Color.ts#L233'>233</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/Color.ts#L258-L259'>258&ndash;259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/Color.ts#L267-L268'>267&ndash;268</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/Color.ts#L48'>48</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/color_map.ts'>color_map.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/util.ts'>util.ts</a></td><td><b>85.71%</b></td><td><b>76.92%</b></td><td>100%</td><td><b>89.74%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/util.ts#L55-L56'>55&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/util.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/util.ts#L58-L59'>58&ndash;59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/util.ts#L61-L62'>61&ndash;62</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/color/util.ts#L89'>89</a></td></tr><tr><td colspan='6'><b>src/controls</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/Control.ts'>Control.ts</a></td><td><b>94.44%</b></td><td><b>93.10%</b></td><td><b>91.67%</b></td><td><b>96.77%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/Control.ts#L183'>183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/Control.ts#L249'>249</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/Control.ts#L354'>354</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/changeWidth.ts'>changeWidth.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/commonControls.ts'>commonControls.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts'>controlRendering.ts</a></td><td><b>81.63%</b></td><td><b>78%</b></td><td>100%</td><td><b>84.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L106'>106</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L111'>111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L65-L72'>65&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/controlRendering.ts#L81-L82'>81&ndash;82</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/drag.ts'>drag.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/fireEvent.ts'>fireEvent.ts</a></td><td><b>88.89%</b></td><td><b>75%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/fireEvent.ts#L13'>13</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts'>polyControl.ts</a></td><td><b>7.25%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>13.51%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L103'>103</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L122-L125'>122&ndash;125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L125'>125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L128'>128</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L135'>135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L25-L29'>25&ndash;29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L50-L56'>50&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L66'>66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L82-L84'>82&ndash;84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L86'>86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L89-L90'>89&ndash;90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L92'>92</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/polyControl.ts#L97'>97</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts'>rotate.ts</a></td><td><b>19.57%</b></td><td><b>12.50%</b></td><td><b>50%</b></td><td><b>21.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L51-L52'>51&ndash;52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L55-L57'>55&ndash;57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L59-L61'>59&ndash;61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L61-L63'>61&ndash;63</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L65-L67'>65&ndash;67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L67-L68'>67&ndash;68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L73-L74'>73&ndash;74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/rotate.ts#L80-L81'>80&ndash;81</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scale.ts'>scale.ts</a></td><td><b>93.57%</b></td><td><b>92.94%</b></td><td>100%</td><td><b>93.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scale.ts#L129-L130'>129&ndash;130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scale.ts#L132-L134'>132&ndash;134</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scale.ts#L148-L149'>148&ndash;149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scale.ts#L181-L183'>181&ndash;183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scale.ts#L42'>42</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scaleSkew.ts'>scaleSkew.ts</a></td><td><b>78.79%</b></td><td><b>64.29%</b></td><td>100%</td><td><b>85.71%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scaleSkew.ts#L27'>27</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scaleSkew.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scaleSkew.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/scaleSkew.ts#L35'>35</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/skew.ts'>skew.ts</a></td><td><b>91.03%</b></td><td><b>79.31%</b></td><td>100%</td><td><b>97.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/skew.ts#L131-L132'>131&ndash;132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/skew.ts#L163-L164'>163&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/skew.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/skew.ts#L177'>177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/skew.ts#L179'>179</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/util.ts'>util.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/wrapWithFireEvent.ts'>wrapWithFireEvent.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/a2ab0dc4b6f424f8bd338ad1215bb85d2cac0697/src/controls/wrapWithFixedAnchor.ts'>wrapWithFixedAnchor.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/env</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https:
github-actions[bot]: Coverage after merging <b>rm-vpt-methods</b> into <b>master</b> will be<table><tbody><tr><th>82.92%</th></tr></tbody></table>

<details><summary>Coverage Report</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/index.node.ts'>index.node.ts</a></td><td><b>7.69%</b></td><td>100%</td><td><b>0%</b></td><td><b>14.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/index.node.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/index.node.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/index.node.ts#L35'>35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/index.node.ts#L38'>38</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/index.node.ts#L41'>41</a></td></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Collection.ts'>Collection.ts</a></td><td><b>94.71%</b></td><td><b>94.64%</b></td><td><b>86.67%</b></td><td><b>97.09%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Collection.ts#L101'>101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Collection.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Collection.ts#L207-L208'>207&ndash;208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Collection.ts#L233-L234'>233&ndash;234</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>96.55%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/CommonMethods.ts#L9'>9</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Intersection.ts'>Intersection.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Observable.ts'>Observable.ts</a></td><td><b>87.76%</b></td><td><b>85.29%</b></td><td><b>87.50%</b></td><td><b>89.58%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Observable.ts#L134-L135'>134&ndash;135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Observable.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Observable.ts#L32-L33'>32&ndash;33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Observable.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Observable.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Observable.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Observable.ts#L89'>89</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Point.ts'>Point.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Shadow.ts'>Shadow.ts</a></td><td><b>98.36%</b></td><td><b>95.65%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Shadow.ts#L178'>178</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/cache.ts'>cache.ts</a></td><td><b>97.06%</b></td><td><b>90%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/cache.ts#L57'>57</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/config.ts'>config.ts</a></td><td><b>75%</b></td><td><b>66.67%</b></td><td><b>66.67%</b></td><td><b>82.76%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/config.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/config.ts#L138-L140'>138&ndash;140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/config.ts#L151-L153'>151&ndash;153</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/Pattern</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>92.31%</b></td><td><b>91.89%</b></td><td><b>90%</b></td><td><b>93.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Pattern/Pattern.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Pattern/Pattern.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Pattern/Pattern.ts#L139'>139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Pattern/Pattern.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/Pattern/Pattern.ts#L95'>95</a></td></tr><tr><td colspan='6'><b>src/brushes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L112'>112</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L114-L116'>114&ndash;116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L118-L121'>118&ndash;121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L128-L129'>128&ndash;129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L13'>13</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L23-L24'>23&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L32-L36'>32&ndash;36</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L40-L44'>40&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L51-L54'>51&ndash;54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L62-L66'>62&ndash;66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L68'>68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L76-L77'>76&ndash;77</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L79-L82'>79&ndash;82</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L92-L93'>92&ndash;93</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L95'>95</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/CircleBrush.ts#L97-L99'>97&ndash;99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PatternBrush.ts'>PatternBrush.ts</a></td><td><b>97.06%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts'>PencilBrush.ts</a></td><td><b>91.06%</b></td><td><b>82.35%</b></td><td>100%</td><td><b>93.81%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/PencilBrush.ts#L84-L85'>84&ndash;85</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts'>SprayBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L149-L152'>149&ndash;152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L154-L157'>154&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L161-L162'>161&ndash;162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L164'>164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L166-L169'>166&ndash;169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L172'>172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L180'>180</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L184-L185'>184&ndash;185</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L187'>187</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L194-L195'>194&ndash;195</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L197-L198'>197&ndash;198</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L212'>212</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/brushes/SprayBrush.ts#L98-L99'>98&ndash;99</a></td></tr><tr><td colspan='6'><b>src/canvas</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>78.99%</b></td><td><b>76.67%</b></td><td><b>83.05%</b></td><td><b>80.04%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1007-L1009'>1007&ndash;1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1016-L1017'>1016&ndash;1017</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1025-L1026'>1025&ndash;1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1026'>1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1026-L1027'>1026&ndash;1027</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1033'>1033</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1035'>1035</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1063-L1065'>1063&ndash;1065</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1068-L1069'>1068&ndash;1069</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1073-L1074'>1073&ndash;1074</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1197-L1199'>1197&ndash;1199</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1202-L1203'>1202&ndash;1203</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1276'>1276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1393'>1393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L1515'>1515</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L159'>159</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L184'>184</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L291-L292'>291&ndash;292</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L295-L299'>295&ndash;299</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L304'>304</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L327-L328'>327&ndash;328</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L333-L338'>333&ndash;338</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L358-L359'>358&ndash;359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L359-L360'>359&ndash;360</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L368'>368</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L373-L374'>373&ndash;374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L374'>374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L374-L375'>374&ndash;375</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L377'>377</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L386'>386</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L392-L393'>392&ndash;393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L43'>43</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L436'>436</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L444'>444</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L448-L449'>448&ndash;449</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L451'>451</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L47'>47</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L533-L534'>533&ndash;534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L534'>534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L534-L535'>534&ndash;535</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L541-L543'>541&ndash;543</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L563'>563</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L565-L566'>565&ndash;566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L569-L570'>569&ndash;570</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L573'>573</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L582-L583'>582&ndash;583</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L588'>588</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L588-L589'>588&ndash;589</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L591-L592'>591&ndash;592</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L604-L605'>604&ndash;605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L605'>605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L605-L606'>605&ndash;606</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L608-L613'>608&ndash;613</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L619'>619</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L626'>626</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L665'>665</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L667-L672'>667&ndash;672</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L678'>678</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L684-L685'>684&ndash;685</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L687'>687</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L690'>690</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L695'>695</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L708'>708</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L797-L798'>797&ndash;798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L801-L802'>801&ndash;802</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L805'>805</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L805-L807'>805&ndash;807</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L810-L811'>810&ndash;811</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L887'>887</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L899'>899</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L919'>919</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L952'>952</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L973-L974'>973&ndash;974</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L990-L991'>990&ndash;991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L991'>991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L991-L993'>991&ndash;993</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L996-L997'>996&ndash;997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/Canvas.ts#L999'>999</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/CanvasOptions.ts'>CanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>94.34%</b></td><td><b>91.94%</b></td><td><b>94.34%</b></td><td><b>96.21%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L1096'>1096</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L1098'>1098</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L1100-L1101'>1100&ndash;1101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L300'>300</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L470-L471'>470&ndash;471</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L473-L474'>473&ndash;474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L523-L524'>523&ndash;524</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L599'>599</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L639-L641'>639&ndash;641</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L673'>673</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L678-L679'>678&ndash;679</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L706-L707'>706&ndash;707</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L896'>896</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L896-L897'>896&ndash;897</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L900'>900</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L969'>969</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/SelectableCanvas.ts#L977'>977</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>96.78%</b></td><td><b>93.09%</b></td><td>100%</td><td><b>98.53%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1031'>1031</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1041'>1041</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1093-L1094'>1093&ndash;1094</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1097'>1097</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1132-L1133'>1132&ndash;1133</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1209'>1209</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L1269-L1270'>1269&ndash;1270</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L187-L188'>187&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L204'>204</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L571'>571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L583-L584'>583&ndash;584</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L914-L915'>914&ndash;915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L915'>915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvas.ts#L915-L916'>915&ndash;916</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/StaticCanvasOptions.ts'>StaticCanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/TextEditingManager.ts'>TextEditingManager.ts</a></td><td><b>84.31%</b></td><td><b>71.43%</b></td><td><b>91.67%</b></td><td><b>88%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/TextEditingManager.ts#L17-L18'>17&ndash;18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/TextEditingManager.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/TextEditingManager.ts#L18-L19'>18&ndash;19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/TextEditingManager.ts#L19'>19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/TextEditingManager.ts#L19'>19</a></td></tr><tr><td colspan='6'><b>src/canvas/DOMManagers</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/CanvasDOMManager.ts'>CanvasDOMManager.ts</a></td><td><b>95.52%</b></td><td><b>70%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/CanvasDOMManager.ts#L21-L22'>21&ndash;22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/CanvasDOMManager.ts#L29'>29</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/StaticCanvasDOMManager.ts'>StaticCanvasDOMManager.ts</a></td><td><b>97.50%</b></td><td><b>88.89%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/StaticCanvasDOMManager.ts#L33'>33</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/util.ts'>util.ts</a></td><td><b>86.67%</b></td><td><b>80.56%</b></td><td><b>83.33%</b></td><td><b>93.94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/util.ts#L14'>14</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/util.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/util.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/util.ts#L74'>74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/canvas/DOMManagers/util.ts#L93-L94'>93&ndash;94</a></td></tr><tr><td colspan='6'><b>src/color</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/Color.ts'>Color.ts</a></td><td><b>94.96%</b></td><td><b>91.67%</b></td><td><b>96.30%</b></td><td><b>96.05%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/Color.ts#L233'>233</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/Color.ts#L258-L259'>258&ndash;259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/Color.ts#L267-L268'>267&ndash;268</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/Color.ts#L48'>48</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/color_map.ts'>color_map.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/util.ts'>util.ts</a></td><td><b>85.71%</b></td><td><b>76.92%</b></td><td>100%</td><td><b>89.74%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/util.ts#L55-L56'>55&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/util.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/util.ts#L58-L59'>58&ndash;59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/util.ts#L61-L62'>61&ndash;62</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/color/util.ts#L89'>89</a></td></tr><tr><td colspan='6'><b>src/controls</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/Control.ts'>Control.ts</a></td><td><b>94.44%</b></td><td><b>93.10%</b></td><td><b>91.67%</b></td><td><b>96.77%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/Control.ts#L183'>183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/Control.ts#L249'>249</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/Control.ts#L354'>354</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/changeWidth.ts'>changeWidth.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/commonControls.ts'>commonControls.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts'>controlRendering.ts</a></td><td><b>81.63%</b></td><td><b>78%</b></td><td>100%</td><td><b>84.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L106'>106</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L111'>111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L65-L72'>65&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/controlRendering.ts#L81-L82'>81&ndash;82</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/drag.ts'>drag.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/fireEvent.ts'>fireEvent.ts</a></td><td><b>88.89%</b></td><td><b>75%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/fireEvent.ts#L13'>13</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts'>polyControl.ts</a></td><td><b>7.25%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>13.51%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L103'>103</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L122-L125'>122&ndash;125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L125'>125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L128'>128</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L135'>135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L25-L29'>25&ndash;29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L50-L56'>50&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L66'>66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L82-L84'>82&ndash;84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L86'>86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L89-L90'>89&ndash;90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L92'>92</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/polyControl.ts#L97'>97</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts'>rotate.ts</a></td><td><b>19.57%</b></td><td><b>12.50%</b></td><td><b>50%</b></td><td><b>21.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L51-L52'>51&ndash;52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L55-L57'>55&ndash;57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L59-L61'>59&ndash;61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L61-L63'>61&ndash;63</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L65-L67'>65&ndash;67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L67-L68'>67&ndash;68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L73-L74'>73&ndash;74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/rotate.ts#L80-L81'>80&ndash;81</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scale.ts'>scale.ts</a></td><td><b>93.57%</b></td><td><b>92.94%</b></td><td>100%</td><td><b>93.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scale.ts#L129-L130'>129&ndash;130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scale.ts#L132-L134'>132&ndash;134</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scale.ts#L148-L149'>148&ndash;149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scale.ts#L181-L183'>181&ndash;183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scale.ts#L42'>42</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scaleSkew.ts'>scaleSkew.ts</a></td><td><b>78.79%</b></td><td><b>64.29%</b></td><td>100%</td><td><b>85.71%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scaleSkew.ts#L27'>27</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scaleSkew.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scaleSkew.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/scaleSkew.ts#L35'>35</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/skew.ts'>skew.ts</a></td><td><b>91.03%</b></td><td><b>79.31%</b></td><td>100%</td><td><b>97.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/skew.ts#L131-L132'>131&ndash;132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/skew.ts#L163-L164'>163&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/skew.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/skew.ts#L177'>177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/skew.ts#L179'>179</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/util.ts'>util.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/wrapWithFireEvent.ts'>wrapWithFireEvent.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/e33548bd5eec18df506aad886117a0a00bbff289/src/controls/wrapWithFixedAnchor.ts'>wrapWithFixedAnchor.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/env</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https:
asturur: ok i m merging.

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7afa18d32..b9c2ffbec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
 
 ## [next]
 
+- refactor(Canvas): BREAKING deprecate `getPointer`, add new getScenePoint and getViewportPoint methods, removed `restorePointerVpt`, extended mouse events data [#9175](https://github.com/fabricjs/fabric.js/pull/9175)
 - fix(Object): Fix detection of falsy shadows in Object.needsItsOwnCache method [#9469](https://github.com/fabricjs/fabric.js/pull/9469)
 - feat(util): expose `calcPlaneRotation` [#9419](https://github.com/fabricjs/fabric.js/pull/9419)
 - refactor(Canvas): BREAKING remove button from mouse events, delegate to event.button property [#9449](https://github.com/fabricjs/fabric.js/pull/9449)
diff --git a/src/EventTypeDefs.ts b/src/EventTypeDefs.ts
index 057cb35d4..e77d1a721 100644
--- a/src/EventTypeDefs.ts
+++ b/src/EventTypeDefs.ts
@@ -129,9 +129,21 @@ export interface TPointerEventInfo<E extends TPointerEvent = TPointerEvent>
   extends TEvent<E> {
   target?: FabricObject;
   subTargets?: FabricObject[];
-  pointer: Point;
   transform?: Transform | null;
+  /**
+   * @deprecated
+   * use viewportPoint instead.
+   * Kept for compatibility
+   */
+  pointer: Point;
+  /**
+   * @deprecated
+   * use scenePoint instead.
+   * Kept for compatibility
+   */
   absolutePointer: Point;
+  scenePoint: Point;
+  viewportPoint: Point;
 }
 
 interface SimpleEventHandler<T extends Event = TPointerEvent>
@@ -158,8 +170,20 @@ export interface DragEventData extends TEvent<DragEvent> {
 }
 
 export interface DropEventData extends DragEventData {
+  /**
+   * @deprecated
+   * use viewportPoint instead.
+   * Kept for compatibility
+   */
   pointer: Point;
+  /**
+   * @deprecated
+   * use scenePoint instead.
+   * Kept for compatibility
+   */
   absolutePointer: Point;
+  scenePoint: Point;
+  viewportPoint: Point;
 }
 
 interface DnDEvents {
diff --git a/src/canvas/Canvas.ts b/src/canvas/Canvas.ts
index 902197f63..56c0555de 100644
--- a/src/canvas/Canvas.ts
+++ b/src/canvas/Canvas.ts
@@ -24,6 +24,17 @@ import { TextEditingManager } from './TextEditingManager';
 
 const addEventOptions = { passive: false } as EventListenerOptions;
 
+const getEventPoints = (canvas: Canvas, e: TPointerEvent) => {
+  const viewportPoint = canvas.getViewportPoint(e);
+  const scenePoint = canvas.getScenePoint(e);
+  return {
+    viewportPoint,
+    scenePoint,
+    pointer: viewportPoint,
+    absolutePointer: scenePoint,
+  };
+};
+
 // just to be clear, the utils are now deprecated and those are here exactly as minifier helpers
 // because el.addEventListener can't me be minified while a const yes and we use it 47 times in this file.
 // few bytes but why give it away.
@@ -236,8 +247,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
     const shared = {
       e,
       isClick: false,
-      pointer: this.getPointer(e, true),
-      absolutePointer: this.getPointer(e),
+      ...getEventPoints(this, e),
     };
     this.fire('mouse:out', { ...shared, target });
     this._hoveredTarget = undefined;
@@ -263,8 +273,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
     if (!this._currentTransform && !this.findTarget(e)) {
       this.fire('mouse:over', {
         e,
-        pointer: this.getPointer(e, true),
-        absolutePointer: this.getPointer(e),
+        ...getEventPoints(this, e),
       });
       this._hoveredTarget = undefined;
       this._hoveredTargets = [];
@@ -392,7 +401,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
     this.targets = [];
     const target = this._searchPossibleTargets(
       this._objects,
-      this.getPointer(e, true)
+      this.getViewportPoint(e)
     );
     return {
       target,
@@ -502,8 +511,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
       target,
       subTargets: targets,
       dragSource: this._dragSource,
-      pointer: this.getPointer(e, true),
-      absolutePointer: this.getPointer(e),
+      ...getEventPoints(this, e),
     });
     //  will be set by the drop target
     options.didDrop = false;
@@ -819,7 +827,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
     let pointer, corner;
     if (target) {
       corner = target._findTargetCorner(
-        this.getPointer(e, true),
+        this.getViewportPoint(e),
         isTouchEvent(e)
       );
       if (
@@ -834,7 +842,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
         const mouseUpHandler =
           control && control.getMouseUpHandler(e, target, control);
         if (mouseUpHandler) {
-          pointer = this.getPointer(e);
+          pointer = this.getScenePoint(e);
           mouseUpHandler.call(control, e, transform!, pointer.x, pointer.y);
         }
       }
@@ -855,7 +863,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
             transform.target,
             originalControl
           );
-      pointer = pointer || this.getPointer(e);
+      pointer = pointer || this.getScenePoint(e);
       originalMouseUpHandler &&
         originalMouseUpHandler.call(
           originalControl,
@@ -913,13 +921,13 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
         e,
         target,
         subTargets: targets,
-        pointer: this.getPointer(e, true),
-        absolutePointer: this.getPointer(e),
+        ...getEventPoints(this, e),
         transform: this._currentTransform,
         ...(eventType === 'up:before' || eventType === 'up'
           ? {
               isClick: this._isClick,
               currentTarget: this.findTarget(e),
+              // set by the preceding `findTarget` call
               currentSubTargets: this.targets,
             }
           : {}),
@@ -984,8 +992,8 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
       this.discardActiveObject(e);
       this.requestRenderAll();
     }
-    // this is an absolute pointer, the naming is wrong
-    const pointer = this.getPointer(e);
+    // TODO: this is a scene point so it should be renamed
+    const pointer = this.getScenePoint(e);
     this.freeDrawingBrush &&
       this.freeDrawingBrush.onMouseDown(pointer, { e, pointer });
     this._handleEvent(e, 'down');
@@ -997,7 +1005,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
    */
   _onMouseMoveInDrawingMode(e: TPointerEvent) {
     if (this._isCurrentlyDrawing) {
-      const pointer = this.getPointer(e);
+      const pointer = this.getScenePoint(e);
       this.freeDrawingBrush &&
         this.freeDrawingBrush.onMouseMove(pointer, {
           e,
@@ -1014,12 +1022,12 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
    * @param {Event} e Event object fired on mouseup
    */
   _onMouseUpInDrawingMode(e: TPointerEvent) {
-    const pointer = this.getPointer(e);
+    const pointer = this.getScenePoint(e);
     if (this.freeDrawingBrush) {
       this._isCurrentlyDrawing = !!this.freeDrawingBrush.onMouseUp({
         e: e,
         // this is an absolute pointer, the naming is wrong
-        pointer: pointer,
+        pointer,
       });
     } else {
       this._isCurrentlyDrawing = false;
@@ -1089,7 +1097,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
           !(target as IText).isEditing &&
           target !== this._activeObject))
     ) {
-      const p = this.getPointer(e);
+      const p = this.getScenePoint(e);
       this._groupSelector = {
         x: p.x,
         y: p.y,
@@ -1104,13 +1112,13 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
         this.setActiveObject(target, e);
       }
       const corner = target._findTargetCorner(
-        this.getPointer(e, true),
+        this.getViewportPoint(e),
         isTouchEvent(e)
       );
       if (target === this._activeObject && (corner || !grouped)) {
         this._setupCurrentTransform(e, target, alreadySelected);
         const control = target.controls[corner],
-          pointer = this.getPointer(e),
+          pointer = this.getScenePoint(e),
           mouseDownHandler =
             control && control.getMouseDownHandler(e, target, control);
         if (mouseDownHandler) {
@@ -1150,8 +1158,12 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
   _cacheTransformEventData(e: TPointerEvent) {
     // reset in order to avoid stale caching
     this._resetTransformEventData();
-    this._pointer = this.getPointer(e, true);
-    this._absolutePointer = this.restorePointerVpt(this._pointer);
+    this._pointer = this.getViewportPoint(e);
+    this._absolutePointer = sendPointToPlane(
+      this._pointer,
+      undefined,
+      this.viewportTransform
+    );
     this._target = this._currentTransform
       ? this._currentTransform.target
       : this.findTarget(e);
@@ -1195,7 +1207,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
 
     // We initially clicked in an empty area, so we draw a box for multiple selection
     if (groupSelector) {
-      const pointer = this.getPointer(e);
+      const pointer = this.getScenePoint(e);
 
       groupSelector.deltaX = pointer.x - groupSelector.x;
       groupSelector.deltaY = pointer.y - groupSelector.y;
@@ -1307,8 +1319,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
         target: oldTarget,
         nextTarget: target,
         isClick: false,
-        pointer: this.getPointer(e, true),
-        absolutePointer: this.getPointer(e),
+        ...getEventPoints(this, e),
       };
       fireCanvas && this.fire(canvasOut, outOpt);
       oldTarget.fire(targetOut, outOpt);
@@ -1320,8 +1331,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
         target,
         previousTarget: oldTarget,
         isClick: false,
-        pointer: this.getPointer(e, true),
-        absolutePointer: this.getPointer(e),
+        ...getEventPoints(this, e),
       };
       fireCanvas && this.fire(canvasIn, inOpt);
       target.fire(targetIn, inOpt);
@@ -1343,18 +1353,18 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
    * @param {Event} e Event fired on mousemove
    */
   _transformObject(e: TPointerEvent) {
-    const pointer = this.getPointer(e),
+    const scenePoint = this.getScenePoint(e),
       transform = this._currentTransform!,
       target = transform.target,
       //  transform pointer to target's containing coordinate plane
       //  both pointer and object should agree on every point
       localPointer = target.group
         ? sendPointToPlane(
-            pointer,
+            scenePoint,
             undefined,
             target.group.calcTransformMatrix()
           )
-        : pointer;
+        : scenePoint;
     // seems used only here.
     // @TODO: investigate;
     transform.reset = false;
@@ -1412,7 +1422,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
         // here we call findTargetCorner always with undefined for the touch parameter.
         // we assume that if you are using a cursor you do not need to interact with
         // the bigger touch area.
-        target._findTargetCorner(this.getPointer(e, true));
+        target._findTargetCorner(this.getViewportPoint(e));
 
     if (!corner) {
       if ((target as Group).subTargetCheck) {
@@ -1473,7 +1483,7 @@ export class Canvas extends SelectableCanvas implements CanvasOptions {
         const prevActiveObjects =
           activeSelection.getObjects() as FabricObject[];
         if (target === activeSelection) {
-          const pointer = this.getPointer(e, true);
+          const pointer = this.getViewportPoint(e);
           target =
             // first search active objects for a target to remove
             this.searchPossibleTargets(prevActiveObjects, pointer) ||
diff --git a/src/canvas/SelectableCanvas.ts b/src/canvas/SelectableCanvas.ts
index 98a11ce72..afb33da98 100644
--- a/src/canvas/SelectableCanvas.ts
+++ b/src/canvas/SelectableCanvas.ts
@@ -17,7 +17,6 @@ import {
 import type { TCanvasSizeOptions } from './StaticCanvas';
 import { StaticCanvas } from './StaticCanvas';
 import { isCollection } from '../util/typeAssertions';
-import { invertTransform } from '../util/misc/matrix';
 import { isTransparent } from '../util/misc/isTransparent';
 import type {
   TMat2D,
@@ -589,11 +588,11 @@ export class SelectableCanvas<EventSpec extends CanvasEvents = CanvasEvents>
     const pointer = target.group
       ? // transform pointer to target's containing coordinate plane
         sendPointToPlane(
-          this.getPointer(e),
+          this.getScenePoint(e),
           undefined,
           target.group.calcTransformMatrix()
         )
-      : this.getPointer(e);
+      : this.getScenePoint(e);
     const corner = target.getActiveControl() || '',
       control = !!corner && target.controls[corner],
       actionHandler =
@@ -708,7 +707,7 @@ export class SelectableCanvas<EventSpec extends CanvasEvents = CanvasEvents>
       return undefined;
     }
 
-    const pointer = this.getPointer(e, true),
+    const pointer = this.getViewportPoint(e),
       activeObject = this._activeObject,
       aObjects = this.getActiveObjects();
 
@@ -765,7 +764,10 @@ export class SelectableCanvas<EventSpec extends CanvasEvents = CanvasEvents>
       obj &&
       obj.visible &&
       obj.evented &&
-      obj.containsPoint(this.restorePointerVpt(pointer), true)
+      obj.containsPoint(
+        sendPointToPlane(pointer, undefined, this.viewportTransform),
+        true
+      )
     ) {
       if (
         (this.perPixelTargetFind || obj.perPixelTargetFind) &&
@@ -815,7 +817,7 @@ export class SelectableCanvas<EventSpec extends CanvasEvents = CanvasEvents>
    * Function used to search inside objects an object that contains pointer in bounding box or that contains pointerOnCanvas when painted
    * @see {@link _searchPossibleTargets}
    * @param {FabricObject[]} [objects] objects array to look into
-   * @param {Object} [pointer] x,y object of point coordinates we want to check.
+   * @param {Point} [pointer] coordinates from viewport to check.
    * @return {FabricObject} **top most object on screen** that contains pointer
    */
   searchPossibleTargets(
@@ -835,42 +837,56 @@ export class SelectableCanvas<EventSpec extends CanvasEvents = CanvasEvents>
   }
 
   /**
-   * Returns pointer coordinates without the effect of the viewport
-   * Takes a point in html canvas space and gives you back a point of the scene.
-   * @param {Object} pointer with "x" and "y" number values in canvas HTML coordinates
-   * @return {Object} object with "x" and "y" number values in fabricCanvas coordinates
+   * @returns point existing in the same plane as the {@link HTMLCanvasElement},
+   * `(0, 0)` being the top left corner of the {@link HTMLCanvasElement}.
+   * This means that changes to the {@link viewportTransform} do not change the values of the point
+   * and it remains unchanged from the viewer's perspective.
+   *
+   * @example
+   * const scenePoint = sendPointToPlane(
+   *  this.getViewportPoint(e),
+   *  undefined,
+   *  canvas.viewportTransform
+   * );
+   *
    */
-  restorePointerVpt(pointer: Point): Point {
-    return pointer.transform(invertTransform(this.viewportTransform));
+  getViewportPoint(e: TPointerEvent) {
+    if (this._pointer) {
+      return this._pointer;
+    }
+    return this.getPointer(e, true);
   }
 
   /**
-   * Returns pointer coordinates relative to canvas.
-   * Can return coordinates with or without viewportTransform.
-   * ignoreVpt false gives back coordinates that represent
-   * the point clicked on canvas element.
-   * ignoreVpt true gives back coordinates after being processed
-   * by the viewportTransform ( sort of coordinates of what is displayed
-   * on the canvas where you are clicking.
-   * ignoreVpt true = HTMLElement coordinates relative to top,left
-   * ignoreVpt false, default = fabric space coordinates, the same used for shape position.
-   * To interact with your shapes top and left you want to use ignoreVpt false
-   * most of the time, while ignoreVpt true will give you coordinates
-   * compatible with the object.oCoords system.
-   * of the time.
-   * @param {Event} e
-   * @param {Boolean} ignoreVpt
-   * @return {Point}
+   * @returns point existing in the scene (the same plane as the plane {@link FabricObject#getCenterPoint} exists in).
+   * This means that changes to the {@link viewportTransform} do not change the values of the point,
+   * however, from the viewer's perspective, the point is changed.
+   *
+   * @example
+   * const viewportPoint = sendPointToPlane(
+   *  this.getScenePoint(e),
+   *  canvas.viewportTransform
+   * );
+   *
    */
-  getPointer(e: TPointerEvent, ignoreVpt = false): Point {
-    // return cached values if we are in the event processing chain
-    if (this._absolutePointer && !ignoreVpt) {
+  getScenePoint(e: TPointerEvent) {
+    if (this._absolutePointer) {
       return this._absolutePointer;
     }
-    if (this._pointer && ignoreVpt) {
-      return this._pointer;
-    }
+    return this.getPointer(e);
+  }
 
+  /**
+   * Returns pointer relative to canvas.
+   *
+   * @deprecated This method is deprecated since v6 to protect you from misuse.
+   * Use {@link getViewportPoint} or {@link getScenePoint} instead.
+   *
+   * @param {Event} e
+   * @param {Boolean} [fromViewport] whether to return the point from the viewport or in the scene
+   * @return {Point}
+   */
+  getPointer(e: TPointerEvent, fromViewport = false): Point {
     const upperCanvasEl = this.upperCanvasEl,
       bounds = upperCanvasEl.getBoundingClientRect();
     let pointer = getPointer(e),
@@ -889,8 +905,8 @@ export class SelectableCanvas<EventSpec extends CanvasEvents = CanvasEvents>
     this.calcOffset();
     pointer.x = pointer.x - this._offset.left;
     pointer.y = pointer.y - this._offset.top;
-    if (!ignoreVpt) {
-      pointer = this.restorePointerVpt(pointer);
+    if (!fromViewport) {
+      pointer = sendPointToPlane(pointer, undefined, this.viewportTransform);
     }
 
     const retinaScaling = this.getRetinaScaling();
diff --git a/src/shapes/IText/DraggableTextDelegate.ts b/src/shapes/IText/DraggableTextDelegate.ts
index 0999b050d..775a72e9e 100644
--- a/src/shapes/IText/DraggableTextDelegate.ts
+++ b/src/shapes/IText/DraggableTextDelegate.ts
@@ -120,7 +120,7 @@ export class DraggableTextDelegate {
       boundaries.top + boundaries.topOffset
     ).multiply(flipFactor);
     const pos = selectionPosition.transform(target.calcTransformMatrix());
-    const pointer = canvas.getPointer(e);
+    const pointer = canvas.getScenePoint(e);
     const diff = pointer.subtract(pos);
     const enableRetinaScaling = canvas._isRetinaScaling();
     const retinaScaling = target.getCanvasRetinaScaling();
diff --git a/src/shapes/IText/ITextClickBehavior.ts b/src/shapes/IText/ITextClickBehavior.ts
index 72d89fe19..9069c06b4 100644
--- a/src/shapes/IText/ITextClickBehavior.ts
+++ b/src/shapes/IText/ITextClickBehavior.ts
@@ -239,7 +239,7 @@ export abstract class ITextClickBehavior<
    * @return {Number} Index of a character
    */
   getSelectionStartFromPointer(e: TPointerEvent): number {
-    const mouseOffset = this.canvas!.getPointer(e)
+    const mouseOffset = this.canvas!.getScenePoint(e)
       .transform(invertTransform(this.calcTransformMatrix()))
       .add(new Point(-this._getLeftOffset(), -this._getTopOffset()));
     let height = 0,
diff --git a/src/util/index.ts b/src/util/index.ts
index 05182ebcf..491bfe200 100644
--- a/src/util/index.ts
+++ b/src/util/index.ts
@@ -74,7 +74,6 @@ export { makeBoundingBoxFromPoints } from './misc/boundingBoxFromPoints';
 export {
   calcPlaneChangeMatrix,
   sendPointToPlane,
-  transformPointRelativeToCanvas,
   sendObjectToPlane,
 } from './misc/planeChange';
 export * as string from './lang_string';
diff --git a/src/util/misc/planeChange.ts b/src/util/misc/planeChange.ts
index 358092179..c1d2a4d17 100644
--- a/src/util/misc/planeChange.ts
+++ b/src/util/misc/planeChange.ts
@@ -2,12 +2,8 @@ import { iMatrix } from '../../constants';
 import type { Point } from '../../Point';
 import type { FabricObject } from '../../shapes/Object/Object';
 import type { TMat2D } from '../../typedefs';
-import type { StaticCanvas } from '../../canvas/StaticCanvas';
 import { invertTransform, multiplyTransformMatrices } from './matrix';
 import { applyTransformToObject } from './objectTransforms';
-import { FabricError } from '../internals/console';
-
-export type ObjectRelation = 'sibling' | 'child';
 
 /**
  * We are actually looking for the transformation from the destination plane to the source plane (change of basis matrix)\
@@ -32,7 +28,6 @@ export const calcPlaneChangeMatrix = (
  * var sentPoint2 = sendPointToPlane(new Point(50, 50), iMatrix, group.calcTransformMatrix());
  * console.log(sentPoint1, sentPoint2) //  both points print (0,0) which is the center of group
  *
- * @see {transformPointRelativeToCanvas} for transforming relative to canvas
  * @param {Point} point
  * @param {TMat2D} [from] plane matrix containing object. Passing `undefined` is equivalent to passing the identity matrix, which means `point` exists in the canvas coordinate plane.
  * @param {TMat2D} [to] destination plane matrix to contain object. Passing `undefined` means `point` should be sent to the canvas coordinate plane.
@@ -47,43 +42,6 @@ export const sendPointToPlane = (
   //  the object will exist on the destination plane and we want it to seem unchanged by it so we reverse the destination matrix (to) and then apply the source matrix (from)
   point.transform(calcPlaneChangeMatrix(from, to));
 
-/**
- * Transform point relative to canvas.
- * From the viewport/viewer's perspective the point remains unchanged.
- *
- * `child` relation means `point` exists in the coordinate plane created by `canvas`.
- * In other words point is measured according to canvas' top left corner
- * meaning that if `point` is equal to (0,0) it is positioned at canvas' top left corner.
- *
- * `sibling` relation means `point` exists in the same coordinate plane as canvas.
- * In other words they both relate to the same (0,0) and agree on every point, which is how an event relates to canvas.
- *
- * @param {Point} point
- * @param {StaticCanvas} canvas
- * @param {'sibling'|'child'} relationBefore current relation of point to canvas
- * @param {'sibling'|'child'} relationAfter desired relation of point to canvas
- * @returns {Point} transformed point
- */
-export const transformPointRelativeToCanvas = (
-  point: Point,
-  canvas: StaticCanvas,
-  relationBefore: ObjectRelation,
-  relationAfter: ObjectRelation
-): Point => {
-  // is this still needed with TS?
-  if (relationBefore !== 'child' && relationBefore !== 'sibling') {
-    throw new FabricError(`received bad argument ${relationBefore}`);
-  }
-  if (relationAfter !== 'child' && relationAfter !== 'sibling') {
-    throw new FabricError(`received bad argument ${relationAfter}`);
-  }
-  if (relationBefore === relationAfter) {
-    return point;
-  }
-  const t = canvas.viewportTransform;
-  return point.transform(relationAfter === 'child' ? invertTransform(t) : t);
-};
-
 /**
  *
  * A util that abstracts applying transform to objects.\


Test patch:
diff --git a/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap b/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap
index 8b447a17f..278fe4794 100644
--- a/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap
+++ b/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap
@@ -41,9 +41,17 @@ exports[`Canvas event data HTML event "dblclick" should fire a corresponding can
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -115,9 +123,17 @@ exports[`Canvas event data HTML event "dragend" should fire a corresponding canv
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": "Drag Target",
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
   [
@@ -137,9 +153,17 @@ exports[`Canvas event data HTML event "dragend" should fire a corresponding canv
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": "Drag Target",
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
   [
@@ -201,8 +225,16 @@ exports[`Canvas event data HTML event "dragenter" should fire a corresponding ca
         "y": 50,
       },
       "previousTarget": undefined,
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": "Drag Target",
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -276,8 +308,16 @@ exports[`Canvas event data HTML event "dragover" should fire a corresponding can
         "y": 50,
       },
       "previousTarget": undefined,
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": "Drag Target",
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -311,8 +351,16 @@ exports[`Canvas event data HTML event "drop" should fire a corresponding canvas
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": "Drag Target",
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
   [
@@ -332,8 +380,16 @@ exports[`Canvas event data HTML event "drop" should fire a corresponding canvas
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": "Drag Target",
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
   [
@@ -353,8 +409,16 @@ exports[`Canvas event data HTML event "drop" should fire a corresponding canvas
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": "Drag Target",
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -376,9 +440,17 @@ exports[`Canvas event data HTML event "mousedown" should fire a corresponding ca
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
   [
@@ -395,9 +467,17 @@ exports[`Canvas event data HTML event "mousedown" should fire a corresponding ca
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -419,6 +499,14 @@ exports[`Canvas event data HTML event "mouseenter" should fire a corresponding c
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -442,9 +530,17 @@ exports[`Canvas event data HTML event "mousemove" should fire a corresponding ca
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
   [
@@ -461,9 +557,17 @@ exports[`Canvas event data HTML event "mousemove" should fire a corresponding ca
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -486,7 +590,15 @@ exports[`Canvas event data HTML event "mouseout" should fire a corresponding can
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "target": undefined,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -513,9 +625,17 @@ exports[`Canvas event data HTML event "mouseup" should fire a corresponding canv
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
   [
@@ -535,9 +655,17 @@ exports[`Canvas event data HTML event "mouseup" should fire a corresponding canv
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -559,9 +687,17 @@ exports[`Canvas event data HTML event "wheel" should fire a corresponding canvas
         "x": 50,
         "y": 50,
       },
+      "scenePoint": Point {
+        "x": -30,
+        "y": -13,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 50,
+        "y": 50,
+      },
     },
   ],
 ]
@@ -585,7 +721,15 @@ exports[`should fire mouse over/out events on target 1`] = `
         "y": 5,
       },
       "previousTarget": undefined,
+      "scenePoint": Point {
+        "x": 5,
+        "y": 5,
+      },
       "target": "target",
+      "viewportPoint": Point {
+        "x": 5,
+        "y": 5,
+      },
     },
   ],
   [
@@ -602,9 +746,17 @@ exports[`should fire mouse over/out events on target 1`] = `
         "x": 5,
         "y": 5,
       },
+      "scenePoint": Point {
+        "x": 5,
+        "y": 5,
+      },
       "subTargets": [],
       "target": "target",
       "transform": null,
+      "viewportPoint": Point {
+        "x": 5,
+        "y": 5,
+      },
     },
   ],
   [
@@ -623,7 +775,15 @@ exports[`should fire mouse over/out events on target 1`] = `
         "x": 20,
         "y": 20,
       },
+      "scenePoint": Point {
+        "x": 20,
+        "y": 20,
+      },
       "target": "target",
+      "viewportPoint": Point {
+        "x": 20,
+        "y": 20,
+      },
     },
   ],
 ]
@@ -645,9 +805,17 @@ exports[`should fire mouse over/out events on target 2`] = `
         "x": 5,
         "y": 5,
       },
+      "scenePoint": Point {
+        "x": 5,
+        "y": 5,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 5,
+        "y": 5,
+      },
     },
   ],
   [
@@ -666,7 +834,15 @@ exports[`should fire mouse over/out events on target 2`] = `
         "y": 5,
       },
       "previousTarget": undefined,
+      "scenePoint": Point {
+        "x": 5,
+        "y": 5,
+      },
       "target": "target",
+      "viewportPoint": Point {
+        "x": 5,
+        "y": 5,
+      },
     },
   ],
   [
@@ -683,9 +859,17 @@ exports[`should fire mouse over/out events on target 2`] = `
         "x": 5,
         "y": 5,
       },
+      "scenePoint": Point {
+        "x": 5,
+        "y": 5,
+      },
       "subTargets": [],
       "target": "target",
       "transform": null,
+      "viewportPoint": Point {
+        "x": 5,
+        "y": 5,
+      },
     },
   ],
   [
@@ -702,9 +886,17 @@ exports[`should fire mouse over/out events on target 2`] = `
         "x": 20,
         "y": 20,
       },
+      "scenePoint": Point {
+        "x": 20,
+        "y": 20,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 20,
+        "y": 20,
+      },
     },
   ],
   [
@@ -723,7 +915,15 @@ exports[`should fire mouse over/out events on target 2`] = `
         "x": 20,
         "y": 20,
       },
+      "scenePoint": Point {
+        "x": 20,
+        "y": 20,
+      },
       "target": "target",
+      "viewportPoint": Point {
+        "x": 20,
+        "y": 20,
+      },
     },
   ],
   [
@@ -740,9 +940,17 @@ exports[`should fire mouse over/out events on target 2`] = `
         "x": 20,
         "y": 20,
       },
+      "scenePoint": Point {
+        "x": 20,
+        "y": 20,
+      },
       "subTargets": [],
       "target": undefined,
       "transform": null,
+      "viewportPoint": Point {
+        "x": 20,
+        "y": 20,
+      },
     },
   ],
 ]
diff --git a/src/canvas/__tests__/eventData.test.ts b/src/canvas/__tests__/eventData.test.ts
index f227a24ac..611549538 100644
--- a/src/canvas/__tests__/eventData.test.ts
+++ b/src/canvas/__tests__/eventData.test.ts
@@ -102,6 +102,33 @@ describe('Canvas event data', () => {
       expect(spy.mock.calls).toMatchSnapshot(snapshotOptions);
     }
   );
+
+  test('getScenePoint', () => {
+    const canvas = new Canvas(undefined, {
+      enableRetinaScaling: true,
+      width: 200,
+      height: 200,
+    });
+    jest.spyOn(canvas, 'getRetinaScaling').mockReturnValue(200);
+    const spy = jest.spyOn(canvas, 'getPointer');
+    jest.spyOn(canvas.upperCanvasEl, 'getBoundingClientRect').mockReturnValue({
+      width: 500,
+      height: 500,
+    });
+    jest.spyOn(canvas.upperCanvasEl, 'width', 'get').mockReturnValue(200);
+    jest.spyOn(canvas.upperCanvasEl, 'height', 'get').mockReturnValue(200);
+    const ev = new MouseEvent('mousemove', {
+      clientX: 50,
+      clientY: 50,
+    });
+    const point = canvas.getScenePoint(ev);
+    expect(spy).toHaveBeenCalledTimes(1);
+    expect(spy).toHaveBeenNthCalledWith(1, ev);
+    canvas._cacheTransformEventData(ev);
+    expect(point).toEqual(canvas['_absolutePointer']);
+    expect(spy).toHaveBeenCalledTimes(2);
+    expect(spy).toHaveBeenNthCalledWith(2, ev, true);
+  });
 });
 
 it('A selected subtarget should not fire an event twice', () => {
diff --git a/test/unit/brushes.js b/test/unit/brushes.js
index 206f9299c..5d95ad2de 100644
--- a/test/unit/brushes.js
+++ b/test/unit/brushes.js
@@ -40,7 +40,7 @@
         QUnit.test('fabric pencil brush draw point', function(assert) {
           var brush = new fabric.PencilBrush(canvas);
           const e = { target: canvas.upperCanvasEl };
-          var pointer = canvas.getPointer({ ...e, clientX: 10, clientY: 10 });
+          var pointer = canvas.getScenePoint({ ...e, clientX: 10, clientY: 10 });
           brush.onMouseDown(pointer, { e });
           var pathData = brush.convertPointsToSVGPath(brush._points);
           assert.deepEqual(pathData, parsePath('M 9.999 10 L 10.001 10'), 'path data create a small line that looks like a point');
@@ -48,7 +48,7 @@
         QUnit.test('fabric pencil brush multiple points', function(assert) {
           var brush = new fabric.PencilBrush(canvas);
           const e = { target: canvas.upperCanvasEl };
-          var pointer = canvas.getPointer({ ...e, clientX: 10, clientY: 10 });
+          var pointer = canvas.getScenePoint({ ...e, clientX: 10, clientY: 10 });
           brush.onMouseDown(pointer, { e });
           brush.onMouseMove(pointer, { e });
           brush.onMouseMove(pointer, { e });
@@ -61,9 +61,9 @@
         QUnit.test('fabric pencil brush multiple points not discarded', function(assert) {
           var brush = new fabric.PencilBrush(canvas);
           const e = { target: canvas.upperCanvasEl };
-          var pointer = canvas.getPointer({ ...e, clientX: 10, clientY: 10});
-          var pointer2 = canvas.getPointer({ ...e, clientX: 15, clientY: 15});
-          var pointer3 = canvas.getPointer({ ...e, clientX: 20, clientY: 20});
+          var pointer = canvas.getScenePoint({ ...e, clientX: 10, clientY: 10});
+          var pointer2 = canvas.getScenePoint({ ...e, clientX: 15, clientY: 15});
+          var pointer3 = canvas.getScenePoint({ ...e, clientX: 20, clientY: 20});
           brush.onMouseDown(pointer, { e });
           brush.onMouseMove(pointer2, { e });
           brush.onMouseMove(pointer3, { e });
@@ -80,11 +80,11 @@
         QUnit.test('fabric pencil brush multiple points outside canvas', function(assert) {
           var brush = new fabric.PencilBrush(canvas);
           const e = { target: canvas.upperCanvasEl };
-          var pointer = canvas.getPointer({ ...e, clientX: 10, clientY: 10});
-          var pointer2 = canvas.getPointer({ ...e, clientX: 15, clientY: 100});
-          var pointer3 = canvas.getPointer({ ...e, clientX: 20, clientY: 160});
-          var pointer4 = canvas.getPointer({ ...e, clientX: 320, clientY: 100});
-          var pointer5 = canvas.getPointer({ ...e, clientX: 100, clientY: 100});
+          var pointer = canvas.getScenePoint({ ...e, clientX: 10, clientY: 10});
+          var pointer2 = canvas.getScenePoint({ ...e, clientX: 15, clientY: 100});
+          var pointer3 = canvas.getScenePoint({ ...e, clientX: 20, clientY: 160});
+          var pointer4 = canvas.getScenePoint({ ...e, clientX: 320, clientY: 100});
+          var pointer5 = canvas.getScenePoint({ ...e, clientX: 100, clientY: 100});
           brush.onMouseDown(pointer, { e });
           brush.onMouseMove(pointer2, { e });
           brush.onMouseMove(pointer3, { e });
@@ -102,11 +102,11 @@
           var brush = new fabric.PencilBrush(canvas);
           brush.limitedToCanvasSize = true;
           const e = { target: canvas.upperCanvasEl };
-          var pointer = canvas.getPointer({ ...e, clientX: 10, clientY: 10});
-          var pointer2 = canvas.getPointer({ ...e, clientX: 15, clientY: 100});
-          var pointer3 = canvas.getPointer({ ...e, clientX: 20, clientY: 160});
-          var pointer4 = canvas.getPointer({ ...e, clientX: 320, clientY: 100});
-          var pointer5 = canvas.getPointer({ ...e, clientX: 100, clientY: 100});
+          var pointer = canvas.getScenePoint({ ...e, clientX: 10, clientY: 10});
+          var pointer2 = canvas.getScenePoint({ ...e, clientX: 15, clientY: 100});
+          var pointer3 = canvas.getScenePoint({ ...e, clientX: 20, clientY: 160});
+          var pointer4 = canvas.getScenePoint({ ...e, clientX: 320, clientY: 100});
+          var pointer5 = canvas.getScenePoint({ ...e, clientX: 100, clientY: 100});
           brush.onMouseDown(pointer, { e });
           brush.onMouseMove(pointer2, { e });
           brush.onMouseMove(pointer3, { e });
@@ -133,9 +133,9 @@
           });
           var brush = new fabric.PencilBrush(canvas);
           const e = { target: canvas.upperCanvasEl };
-          var pointer = canvas.getPointer({ ...e, clientX: 10, clientY: 10});
-          var pointer2 = canvas.getPointer({ ...e, clientX: 15, clientY: 15});
-          var pointer3 = canvas.getPointer({ ...e, clientX: 20, clientY: 20});
+          var pointer = canvas.getScenePoint({ ...e, clientX: 10, clientY: 10});
+          var pointer2 = canvas.getScenePoint({ ...e, clientX: 15, clientY: 15});
+          var pointer3 = canvas.getScenePoint({ ...e, clientX: 20, clientY: 20});
           brush.onMouseDown(pointer, { e });
           brush.onMouseMove(pointer2, { e });
           brush.onMouseMove(pointer3, { e });
diff --git a/test/unit/canvas.js b/test/unit/canvas.js
index 14a268f18..45f56c826 100644
--- a/test/unit/canvas.js
+++ b/test/unit/canvas.js
@@ -1162,26 +1162,6 @@
     assert.equal(dataURL.substring(0, 21), 'data:image/png;base64');
   });
 
-  //  QUnit.test('getPointer', function(assert) {
-  //    var done = assert.async();
-  //    assert.ok(typeof canvas.getPointer === 'function');
-  //
-  //    fabric.util.addListener(upperCanvasEl, 'click', function(e) {
-  //       canvas.calcOffset();
-  //       var pointer = canvas.getPointer(e);
-  //       assert.equal(pointer.x, 101, 'pointer.x should be correct');
-  //       assert.equal(pointer.y, 102, 'pointer.y should be correct');
-  //
-  //       done();
-  //   });
-
-  //     setTimeout(function() {
-  //       simulateEvent(upperCanvasEl, 'click', {
-  //         pointerX: 101, pointerY: 102
-  //       });
-  //     }, 100);
-  // });
-
   QUnit.test('getCenter', function(assert) {
     assert.ok(typeof canvas.getCenter === 'function');
     var center = canvas.getCenter();
@@ -1588,19 +1568,6 @@
     });
   });
 
-  QUnit.test('restorePointerVpt', function(assert) {
-    assert.ok(typeof canvas.restorePointerVpt === 'function');
-    var pointer = new fabric.Point({ x: 10, y: 20 }),
-        restoredPointer = canvas.restorePointerVpt(pointer);
-    assert.equal(restoredPointer.x, pointer.x, 'no changes if not vpt is set');
-    assert.equal(restoredPointer.y, pointer.y, 'no changes if not vpt is set');
-    canvas.viewportTransform = [2, 0, 0, 2, 50, -60];
-    restoredPointer = canvas.restorePointerVpt(pointer);
-    assert.equal(restoredPointer.x, -20, 'vpt changes restored');
-    assert.equal(restoredPointer.y, 40, 'vpt changes restored');
-    canvas.viewportTransform = [1, 0, 0, 1, 0, 0];
-  });
-
   // QUnit.test('loadFromJSON with backgroundImage', function(assert) {
   //   var done = assert.async();
   //   canvas.setBackgroundImage('../../assets/pug.jpg');
@@ -2062,7 +2029,7 @@
     };
     canvas.setActiveObject(rect);
     rect.__corner = rect._findTargetCorner(
-      canvas.getPointer(eventStub, true)
+      canvas.getViewportPoint(eventStub)
     );
     canvas._setupCurrentTransform(eventStub, rect);
     var t = canvas._currentTransform;
@@ -2078,7 +2045,7 @@
       target: canvas.upperCanvasEl
     };
     rect.__corner = rect._findTargetCorner(
-      canvas.getPointer(eventStub, true)
+      canvas.getViewportPoint(eventStub)
     );
     canvas._setupCurrentTransform(eventStub, rect, false);
     t = canvas._currentTransform;
@@ -2089,7 +2056,7 @@
 
     var alreadySelected = true;
     rect.__corner = rect._findTargetCorner(
-      canvas.getPointer(eventStub, true)
+      canvas.getViewportPoint(eventStub)
     );
     canvas._setupCurrentTransform(eventStub, rect, alreadySelected);
     t = canvas._currentTransform;
@@ -2107,7 +2074,7 @@
       shiftKey: true
     };
     rect.__corner = rect._findTargetCorner(
-      canvas.getPointer(eventStub, true)
+      canvas.getViewportPoint(eventStub)
     );
     canvas._setupCurrentTransform(eventStub, rect, alreadySelected);
     t = canvas._currentTransform;
diff --git a/test/unit/draggable_text.js b/test/unit/draggable_text.js
index bf96fc0d4..2373acfed 100644
--- a/test/unit/draggable_text.js
+++ b/test/unit/draggable_text.js
@@ -269,6 +269,8 @@ function assertDragEventStream(name, a, b) {
                         canDrop: false,
                         pointer: new fabric.Point(30, 15),
                         absolutePointer: new fabric.Point(30, 15),
+                        viewportPoint: new fabric.Point(30, 15),
+                        scenePoint: new fabric.Point(30, 15),
                         isClick: false,
                         previousTarget: undefined
                     },
@@ -300,6 +302,8 @@ function assertDragEventStream(name, a, b) {
                         canDrop: false,
                         pointer: new fabric.Point(123, 15),
                         absolutePointer: new fabric.Point(123, 15),
+                        viewportPoint: new fabric.Point(123, 15),
+                        scenePoint: new fabric.Point(123, 15),
                         isClick: false,
                         nextTarget: undefined
                     },
@@ -360,6 +364,8 @@ function assertDragEventStream(name, a, b) {
                         canDrop: false,
                         pointer: new fabric.Point(210, 15),
                         absolutePointer: new fabric.Point(210, 15),
+                        viewportPoint: new fabric.Point(210, 15),
+                        scenePoint: new fabric.Point(210, 15),
                         isClick: false,
                         previousTarget: undefined
                     },
@@ -382,6 +388,8 @@ function assertDragEventStream(name, a, b) {
                         canDrop: false,
                         pointer: new fabric.Point(220, -5),
                         absolutePointer: new fabric.Point(220, -5),
+                        viewportPoint: new fabric.Point(220, -5),
+                        scenePoint: new fabric.Point(220, -5),
                         isClick: false,
                         nextTarget: undefined
                     },
@@ -456,6 +464,8 @@ function assertDragEventStream(name, a, b) {
                         canDrop: false,
                         pointer: new fabric.Point(100, 15),
                         absolutePointer: new fabric.Point(100, 15),
+                        viewportPoint: new fabric.Point(100, 15),
+                        scenePoint: new fabric.Point(100, 15),
                         isClick: false,
                         previousTarget: undefined
                     },
@@ -483,6 +493,8 @@ function assertDragEventStream(name, a, b) {
                         didDrop: true,
                         pointer: new fabric.Point(110, 15),
                         absolutePointer: new fabric.Point(110, 15),
+                        viewportPoint: new fabric.Point(110, 15),
+                        scenePoint: new fabric.Point(110, 15),
                     },
                     {
                         e: drop,
@@ -523,6 +535,8 @@ function assertDragEventStream(name, a, b) {
                         canDrop: false,
                         pointer: new fabric.Point(230, 15),
                         absolutePointer: new fabric.Point(230, 15),
+                        viewportPoint: new fabric.Point(230, 15),
+                        scenePoint: new fabric.Point(230, 15),
                         isClick: false,
                         previousTarget: undefined
                     },
@@ -550,6 +564,8 @@ function assertDragEventStream(name, a, b) {
                         didDrop: true,
                         absolutePointer: new fabric.Point(240, 15),
                         pointer: new fabric.Point(240, 15),
+                        viewportPoint: new fabric.Point(240, 15),
+                        scenePoint: new fabric.Point(240, 15),
                     },
                 ]);
                 assert.equal(fabric.getFabricDocument().activeElement, iText2.hiddenTextarea, 'should have focused hiddenTextarea');
@@ -582,6 +598,8 @@ function assertDragEventStream(name, a, b) {
                         canDrop: false,
                         pointer: new fabric.Point(230, 15),
                         absolutePointer: new fabric.Point(230, 15),
+                        viewportPoint: new fabric.Point(230, 15),
+                        scenePoint: new fabric.Point(230, 15),
                         isClick: false,
                         previousTarget: undefined
                     },
diff --git a/test/unit/util.js b/test/unit/util.js
index fe107473f..62531a4d1 100644
--- a/test/unit/util.js
+++ b/test/unit/util.js
@@ -825,35 +825,6 @@
     assert.deepEqual(sendPointToPlane(point), point, 'sending to nowhere, point remains unchanged');
   });
 
-  QUnit.test('transformPointRelativeToCanvas', function(assert) {
-    assert.ok(typeof fabric.util.transformPointRelativeToCanvas === 'function');
-    var point = new fabric.Point(2, 2);
-    var matrix = [3, 0, 0, 2, 10, 4];
-    var canvas = {
-      viewportTransform: matrix
-    }
-    var transformPoint = fabric.util.transformPoint;
-    var invertTransform = fabric.util.invertTransform;
-    var transformPointRelativeToCanvas = fabric.util.transformPointRelativeToCanvas;
-    var p = transformPointRelativeToCanvas(point, canvas, 'sibling', 'child');
-    assert.deepEqual(p, transformPoint(point, invertTransform(matrix)));
-    p = transformPointRelativeToCanvas(point, canvas, 'child', 'sibling');
-    assert.deepEqual(p, transformPoint(point, matrix));
-    p = transformPointRelativeToCanvas(point, canvas, 'child', 'child');
-    assert.deepEqual(p, point);
-    p = transformPointRelativeToCanvas(point, canvas, 'sibling', 'sibling');
-    assert.deepEqual(p, point);
-    assert.throws(function () {
-      transformPointRelativeToCanvas(point, canvas, 'sibling');
-    });
-    assert.throws(function () {
-      transformPointRelativeToCanvas(point, canvas, 'sibling', true);
-    });
-    assert.throws(function () {
-      transformPointRelativeToCanvas(point, canvas, 'sibling', 'chil');
-    });
-  });
-
   QUnit.test('sendObjectToPlane', function (assert) {
     assert.ok(typeof fabric.util.sendObjectToPlane === 'function');
     var m = [6, Math.SQRT1_2, 0, 3, 2, 1],