Exemple #1
0
void
WritableSharedMap::Set(JSContext* aCx,
                       const nsACString& aName,
                       JS::HandleValue aValue,
                       ErrorResult& aRv)
{
  StructuredCloneData holder;

  holder.Write(aCx, aValue, aRv);
  if (aRv.Failed()) {
    return;
  }

  if (!holder.InputStreams().IsEmpty()) {
    aRv.Throw(NS_ERROR_INVALID_ARG);
    return;
  }

  Entry* entry = mEntries.LookupOrAdd(aName, *this, aName);
  entry->TakeData(std::move(holder));

  KeyChanged(aName);
}