17242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
27242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// Use of this source code is governed by a BSD-style license that can be
37242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// found in the LICENSE file.
47242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
57242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// FIXME: Implement forEach.
67242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// callback ForEachCallback = void(DOMString id, MIDIOutput port);
77242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
87242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci[
97242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    Iterable,
107242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    NoInterfaceObject,
117242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    GarbageCollected,
127242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci] interface MIDIOutputMap {
137242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    readonly attribute unsigned long size;
147242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    Iterator keys();
157242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    Iterator entries();
167242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    Iterator values();
177242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    // This function returns undefined if |!this->has(id)|.
187242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    [ImplementedAs=getForBinding, CallWith=ScriptState] any get(DOMString id);
197242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    boolean has(DOMString key);
207242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    // FIXME: Implement forEach.
217242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    // void forEach (ForEachCallback callback);
227242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci};
23