6.2. Object Store Retrieval Operations

The steps to retrieve a value from an object store with targetRealm, store and range are as follows:

  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).

The steps to retrieve multiple values from an object store with targetRealm, store, range and optional count are as follows:

  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 in 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.

The steps to retrieve a key from an object store with store and range are as follows:

  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 the steps to convert a key to a value with record’s key.

The steps to retrieve multiple keys from an object store with store, range and optional count are as follows:

  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 in records:

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

    2. Append entry to list.

  5. Return list converted to a sequence.