chromium/third_party/blink/web_tests/fast/canvas/canvas-context-gc-custom-properties.html

<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/gc.js"></script>
<script>

function runTest() {
    canvas = document.createElement("canvas");
    context = canvas.getContext("2d");
    context.customProperty = "value";
    assert_equals(context.customProperty, "value");
    context = null;
    gc();
    context = canvas.getContext("2d");
    assert_equals(context.customProperty, "value");
}

async_test(t => {
        window.onload = function() {
            t.step(runTest);
            t.done();
        }
}, 'Verify that the custom properties on a Canvas 2D rendering context object are retained across GCs.');

</script>