// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[
    GarbageCollected
] interface DictionaryTest {
    void set(optional InternalDictionary testingDictionary);
    InternalDictionary get();
    [CallWith=ScriptState] object getDictionaryMemberProperties();

    void setDerived(InternalDictionaryDerived derived);
    InternalDictionaryDerived getDerived();

    [CallWith=ExecutionContext, RaisesException] DOMString stringFromIterable(Dictionary iterableDictionary);
};
