6.2. Object store retrieval operations

To retrieve a value from an object store with targetRealm, store and range, run these steps:

  1. Let record be the first record in store’s list of records whose key is in range, if any.

  2. If record was not found, return undefined.

  3. Let serialized be of record’s value.

  4. Return ! StructuredDeserialize(serialized, targetRealm).

To retrieve multiple values from an object store with targetRealm, store, range and optional count, run these steps:

  1. If count is not given or is 0 (zero), let count be infinity.

  2. Let records be a list containing the first count records in store’s list of records whose key is in range.

  3. Let list be an empty list.

  4. For each record of records:

    1. Let serialized be record’s value.

    2. Let entry be ! StructuredDeserialize(serialized, targetRealm).

    3. Append entry to list.

  5. Return list converted to a sequence.

To retrieve a key from an object store with store and range, run these steps:

  1. Let record be the first record in store’s list of records whose key is in range, if any.

  2. If record was not found, return undefined.

  3. Return the result of running convert a key to a value with record’s key.

To retrieve multiple keys from an object store with store, range and optional count, run these steps:

  1. If count is not given or is 0 (zero), let count be infinity.

  2. Let records be a list containing the first count records in store’s list of records whose key is in range.

  3. Let list be an empty list.

  4. For each record of records:

    1. Let entry be the result of running convert a key to a value with record’s key.

    2. Append entry to list.

  5. Return list converted to a sequence.