• Robert Knight's avatar
    Refactor `Guest#anchor` · d9085810
    Robert Knight authored
    Rewrite the `Guest#anchor` method to simplify the control flow and
    generally make it easier to understand and change. There are no
    functional changes for annotations with zero or one entry in the
    `target` field (all existing Hypothesis annotations).
    
    There is a functional change to handling of annotations with multiple
    targets. Previously `anchor` would try to be smart about only
    re-anchoring targets which were not already anchored. In the new
    implementation all targets for an annotation are re-anchored. This will have
    no effect in practice because the Hypothesis client only supports
    creating annotations with a single target and the h backend can only
    store a single target per annotation. However the Hypothesis API does
    allow for multiple targets per annotation, in line with the W3C Web
    Annotations specs in which a single annotation can refer to multiple
    parts of a document.
    
     - Convert `anchor` method to async and replace Promise chains with async/await
    
     - Replace the logic that removes existing anchors and highlights for an
       annotation with a call to the `detach` method. This required adding
       an internal parameter to `detach` to control whether `anchorsChanged`
       is emitted, so that `anchor` only emits `anchorsChanged` once.
    
     - Add an explicit error to `Promise.reject` calls in tests so that the
       tests are easier to debug if they fail
    d9085810
Name
Last commit
Last update
..
integration Loading commit data...
adder-test.js Loading commit data...
annotation-counts-test.js Loading commit data...
annotation-sync-test.js Loading commit data...
bucket-bar-test.js Loading commit data...
cross-frame-test.js Loading commit data...
empty.html Loading commit data...
features-test.js Loading commit data...
guest-test.js Loading commit data...
highlighter-test.js Loading commit data...
notebook-test.js Loading commit data...
range-util-test.js Loading commit data...
selection-observer-test.js Loading commit data...
sidebar-test.js Loading commit data...
sidebar-trigger-test.js Loading commit data...
toolbar-test.js Loading commit data...