1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/.
7 callback SetDeleteObjectCallback = undefined (object value, unsigned long index);
8 callback SetDeleteBooleanCallback = undefined (boolean value, unsigned long index);
9 callback SetDeleteInterfaceCallback = undefined (TestInterfaceObservableArray value, unsigned long index);
11 dictionary ObservableArrayCallbacks {
12 SetDeleteObjectCallback setObjectCallback;
13 SetDeleteObjectCallback deleteObjectCallback;
14 SetDeleteBooleanCallback setBooleanCallback;
15 SetDeleteBooleanCallback deleteBooleanCallback;
16 SetDeleteInterfaceCallback setInterfaceCallback;
17 SetDeleteInterfaceCallback deleteInterfaceCallback;
20 [Pref="dom.expose_test_interfaces",
22 interface TestInterfaceObservableArray {
24 constructor(optional ObservableArrayCallbacks callbacks = {});
26 // Testing for ObservableArray
27 attribute ObservableArray<boolean> observableArrayBoolean;
28 attribute ObservableArray<object> observableArrayObject;
29 attribute ObservableArray<TestInterfaceObservableArray> observableArrayInterface;
31 // Tests for C++ helper function
33 boolean booleanElementAtInternal(unsigned long index);
35 TestInterfaceObservableArray interfaceElementAtInternal(unsigned long index);
37 object objectElementAtInternal(unsigned long index);
40 undefined booleanReplaceElementAtInternal(unsigned long index, boolean value);
42 undefined interfaceReplaceElementAtInternal(unsigned long index, TestInterfaceObservableArray value);
44 undefined objectReplaceElementAtInternal(unsigned long index, object value);
47 undefined booleanAppendElementInternal(boolean value);
49 undefined interfaceAppendElementInternal(TestInterfaceObservableArray value);
51 undefined objectAppendElementInternal(object value);
54 undefined booleanRemoveLastElementInternal();
56 undefined interfaceRemoveLastElementInternal();
58 undefined objectRemoveLastElementInternal();
61 unsigned long booleanLengthInternal();
63 unsigned long interfaceLengthInternal();
65 unsigned long objectLengthInternal();