Bug 607719: revamp the testconfig setup (r=brbaker)
[tamarin-stm.git] / shell / shell_toplevel.as
blob09a2a86d18e731f7499ca56de5ab96d92eb425d6
1 /* -*- c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
2 /* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
3 /* ***** BEGIN LICENSE BLOCK *****
4 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6 * The contents of this file are subject to the Mozilla Public License Version
7 * 1.1 (the "License"); you may not use this file except in compliance with
8 * the License. You may obtain a copy of the License at
9 * http://www.mozilla.org/MPL/
11 * Software distributed under the License is distributed on an "AS IS" basis,
12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 * for the specific language governing rights and limitations under the
14 * License.
16 * The Original Code is [Open Source Virtual Machine.].
18 * The Initial Developer of the Original Code is
19 * Adobe System Incorporated.
20 * Portions created by the Initial Developer are Copyright (C) 2004-2006
21 * the Initial Developer. All Rights Reserved.
23 * Contributor(s):
24 * Adobe AS3 Team
26 * Alternatively, the contents of this file may be used under the terms of
27 * either the GNU General Public License Version 2 or later (the "GPL"), or
28 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29 * in which case the provisions of the GPL or the LGPL are applicable instead
30 * of those above. If you wish to allow use of your version of this file only
31 * under the terms of either the GPL or the LGPL, and not to allow others to
32 * use your version of this file under the terms of the MPL, indicate your
33 * decision by deleting the provisions above and replace them with the notice
34 * and other provisions required by the GPL or the LGPL. If you do not delete
35 * the provisions above, a recipient may use your version of this file under
36 * the terms of any one of the MPL, the GPL or the LGPL.
38 * ***** END LICENSE BLOCK ***** */
40 package avmplus
42 import flash.utils.ByteArray
44 // this namespace exists solely so that nativegen.py will encounter them during shell building,
45 // thus giving us a test case for parsing methods with custom namespaces in nativegen.py
46 namespace ns_example = "http://www.example.com"
48 // this interface exists solely so that nativegen.py will encounter them during shell building,
49 // thus giving us a test case for interface parsing in nativegen.py
50 interface ITest
52 function test();
54 class CTest //implements ITest
56 public function test() { }
59 // this class exists solely to test native classes that use MI.
60 [native(cls="::avmshell::MIClass", instance="::avmshell::MIObject", methods="::avmshell::MIObjectImpl")]
61 internal class MI
63 public native function plus(i:Number):Number;
66 [native(cls="::avmshell::SystemClass", classgc="exact", methods="auto")]
67 public class System
69 // this metadata exists solely so that nativegen.py will encounter it during shell building,
70 // thus giving us a test case for metadata parsing in nativegen.py
71 [foo]
72 public native static function exit(status:int):void
74 // this metadata exists solely so that nativegen.py will encounter it during shell building,
75 // thus giving us a test case for metadata parsing in nativegen.py
76 [bar(attr="whatever")]
77 public native static function exec(command:String):int
79 public native static function getAvmplusVersion():String
80 public native static function getFeatures():String
81 public native static function getRunmode():String
82 public native static function trace(a:Array):void
83 public native static function write(s:String):void
84 public native static function debugger():void
85 public native static function isDebugger():Boolean
86 public native static function getTimer():uint
87 private native static function getArgv():Array
88 public static const argv:Array = getArgv();
89 public native static function readLine():String;
91 // Amount of real memory we've aqcuired from the OS
92 public native static function get totalMemory():Number;
94 // Part of totalMemory we aren't using
95 public native static function get freeMemory():Number;
97 // process wide size of resident private memory
98 public native static function get privateMemory():Number;
100 // Initiate a garbage collection; future versions will not return before completed.
101 public native static function forceFullCollection():void;
103 // Queue a garbage collection request.
104 public native static function queueCollection():void;
106 // function exists solely to test native-methods with custom namespaces
107 ns_example native static function nstest():void;
109 // function exists solely to test ScriptObject::isGlobalObject
110 public native static function isGlobal(o:Object):Boolean;
112 // return the value passed to -swfversion at launch (or the default value, if -swfversion was not specified)
113 public native static function get swfVersion():int;
115 // return the value passed to -api at launch (or the default value, if -api was not specified)
116 public native static function get apiVersion():int;
118 public native static function disposeXML(xml:XML):void;
121 [native(cls="::avmshell::FileClass", methods="auto")]
122 public class File
124 public native static function exists(filename:String):Boolean;
125 public native static function read(filename:String):String;
126 public native static function write(filename:String, data:String):void;
128 public native static function readByteArray(filename:String):ByteArray;
129 public native static function writeByteArray(filename:String, bytes:ByteArray):Boolean;
132 public function debugger()
134 System.debugger()
138 // The flash.system package is present so identical ATS test media can be used
139 // in the command-line VM and the Player
140 package flash.system
142 import avmplus.*;
144 public final class Capabilities
146 public static function get playerType():String { return "AVMPlus"; }
147 public static function get isDebugger():Boolean { return System.isDebugger(); }
151 package {
153 import avmplus.*
155 public function getClassByName(name:String):Class
157 return Domain.currentDomain.getClass(name);
160 // nonstandard extensions to ECMAScript
161 public function print(...s)
163 System.trace(s)
166 // nonstandard Flash Player extensions
167 public function trace(...s)
169 System.trace(s)
172 public function getTimer():uint
174 return System.getTimer()
177 public function readLine():String
179 return System.readLine()
183 // test library code
186 tests
187 - unversioned names: are in all versions, as though version 0
188 - versioned names: are not visible to smaller versions (bindings, not number)
189 - multiple versioned names: are visible to all compatible versions
190 - class, interface, method, accessor, slot, static names
191 - running multiple active versions
194 // API Versioning - Globals
195 // moved from "avmplus" to "avmshell" to avoid having avmplus be unversioned in builtin, but versioned in shell
196 package avmshell
198 include "../core/api-versions.as"
200 // Shadow the declarations into public vars solely so that the acceptance tests
201 // can read them; they can't simple include api-versions.as because the CONFIG
202 // namespace is special and available only to builtin code (which the acceptance
203 // tests aren't).
204 public const API_FP_9_0 = CONFIG::FP_9_0;
205 public const API_AIR_1_0 = CONFIG::AIR_1_0;
206 public const API_FP_10_0 = CONFIG::FP_10_0;
207 public const API_AIR_1_5 = CONFIG::AIR_1_5;
208 public const API_AIR_1_5_1 = CONFIG::AIR_1_5_1;
209 public const API_FP_10_0_32 = CONFIG::FP_10_0_32;
210 public const API_AIR_1_5_2 = CONFIG::AIR_1_5_2;
212 public var public_var:Boolean = true;
213 [API(CONFIG::FP_9_0)] public var public_var_FP_9_0:Boolean = true;
214 [API(CONFIG::AIR_1_0)] public var public_var_AIR_1_0:Boolean = true;
215 [API(CONFIG::FP_10_0)] public var public_var_FP_10_0:Boolean = true;
216 [API(CONFIG::AIR_1_5)] public var public_var_AIR_1_5:Boolean = true;
217 [API(CONFIG::AIR_1_5_1)] public var public_var_AIR_1_5_1:Boolean = true;
218 [API(CONFIG::FP_10_0_32)] public var public_var_FP_10_0_32:Boolean = true;
219 [API(CONFIG::AIR_1_5_2)] public var public_var_AIR_1_5_2:Boolean = true;
220 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public var public_var_AIR_1_0_FP_10_0:Boolean = true;
221 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public var public_var_AIR_1_5_2_FP_9_0:Boolean = true;
222 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public var public_var_AIR_1_5_1_FP_10_0_AIR_1_5_2:Boolean = true;
223 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public var public_var_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0:Boolean = true;
225 public const public_const:Boolean = true;
226 [API(CONFIG::FP_9_0)] public const public_const_FP_9_0:Boolean = true;
227 [API(CONFIG::AIR_1_0)] public const public_const_AIR_1_0:Boolean = true;
228 [API(CONFIG::FP_10_0)] public const public_const_FP_10_0:Boolean = true;
229 [API(CONFIG::AIR_1_5)] public const public_const_AIR_1_5:Boolean = true;
230 [API(CONFIG::AIR_1_5_1)] public const public_const_AIR_1_5_1:Boolean = true;
231 [API(CONFIG::FP_10_0_32)] public const public_const_FP_10_0_32:Boolean = true;
232 [API(CONFIG::AIR_1_5_2)] public const public_const_AIR_1_5_2:Boolean = true;
233 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public const public_const_AIR_1_0_FP_10_0:Boolean = true;
234 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public const public_const_AIR_1_5_2_FP_9_0:Boolean = true;
235 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public const public_const_AIR_1_5_1_FP_10_0_AIR_1_5_2:Boolean = true;
236 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public const public_const_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0:Boolean = true;
238 public function public_function():Boolean { return true; }
239 [API(CONFIG::FP_9_0)] public function public_function_FP_9_0():Boolean { return true; }
240 [API(CONFIG::AIR_1_0)] public function public_function_AIR_1_0():Boolean { return true; }
241 [API(CONFIG::FP_10_0)] public function public_function_FP_10_0():Boolean { return true; }
242 [API(CONFIG::AIR_1_5)] public function public_function_AIR_1_5():Boolean { return true; }
243 [API(CONFIG::AIR_1_5_1)] public function public_function_AIR_1_5_1():Boolean { return true; }
244 [API(CONFIG::FP_10_0_32)] public function public_function_FP_10_0_32():Boolean { return true; }
245 [API(CONFIG::AIR_1_5_2)] public function public_function_AIR_1_5_2():Boolean { return true; }
246 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function public_function_AIR_1_0_FP_10_0():Boolean { return true; }
247 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public function public_function_AIR_1_5_2_FP_9_0():Boolean { return true; }
248 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public function public_function_AIR_1_5_1_FP_10_0_AIR_1_5_2():Boolean { return true; }
249 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function public_function_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0():Boolean { return true; }
251 public function get public_getset():Boolean { return true; }
252 [API(CONFIG::FP_9_0)] public function get public_getset_FP_9_0():Boolean { return true; }
253 [API(CONFIG::AIR_1_0)] public function get public_getset_AIR_1_0():Boolean { return true; }
254 [API(CONFIG::FP_10_0)] public function get public_getset_FP_10_0():Boolean { return true; }
255 [API(CONFIG::AIR_1_5)] public function get public_getset_AIR_1_5():Boolean { return true; }
256 [API(CONFIG::AIR_1_5_1)] public function get public_getset_AIR_1_5_1():Boolean { return true; }
257 [API(CONFIG::FP_10_0_32)] public function get public_getset_FP_10_0_32():Boolean { return true; }
258 [API(CONFIG::AIR_1_5_2)] public function get public_getset_AIR_1_5_2():Boolean { return true; }
259 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function get public_getset_AIR_1_0_FP_10_0():Boolean { return true; }
260 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public function get public_getset_AIR_1_5_2_FP_9_0():Boolean { return true; }
261 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public function get public_getset_AIR_1_5_1_FP_10_0_AIR_1_5_2():Boolean { return true; }
262 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function get public_getset_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0():Boolean { return true; }
264 public function set public_getset(x:*):void { }
265 [API(CONFIG::FP_9_0)] public function set public_getset_FP_9_0(x:*):void { }
266 [API(CONFIG::AIR_1_0)] public function set public_getset_AIR_1_0(x:*):void { }
267 [API(CONFIG::FP_10_0)] public function set public_getset_FP_10_0(x:*):void { }
268 [API(CONFIG::AIR_1_5)] public function set public_getset_AIR_1_5(x:*):void { }
269 [API(CONFIG::AIR_1_5_1)] public function set public_getset_AIR_1_5_1(x:*):void { }
270 [API(CONFIG::FP_10_0_32)] public function set public_getset_FP_10_0_32(x:*):void { }
271 [API(CONFIG::AIR_1_5_2)] public function set public_getset_AIR_1_5_2(x:*):void { }
272 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function set public_getset_AIR_1_0_FP_10_0(x:*):void { }
273 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public function set public_getset_AIR_1_5_2_FP_9_0(x:*):void { }
274 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public function set public_getset_AIR_1_5_1_FP_10_0_AIR_1_5_2(x:*):void { }
275 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function set public_getset_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0(x:*):void { }
279 // API Versioning - Classes
280 // moved from "avmplus" to "avmshell" to avoid having avmplus be unversioned in builtin, but versioned in shell
281 package avmshell
283 public class public_class
286 public var public_var:Boolean = true;
287 [API(CONFIG::FP_9_0)] public var public_var_FP_9_0:Boolean = true;
288 [API(CONFIG::AIR_1_0)] public var public_var_AIR_1_0:Boolean = true;
289 [API(CONFIG::FP_10_0)] public var public_var_FP_10_0:Boolean = true;
290 [API(CONFIG::AIR_1_5)] public var public_var_AIR_1_5:Boolean = true;
291 [API(CONFIG::AIR_1_5_1)] public var public_var_AIR_1_5_1:Boolean = true;
292 [API(CONFIG::FP_10_0_32)] public var public_var_FP_10_0_32:Boolean = true;
293 [API(CONFIG::AIR_1_5_2)] public var public_var_AIR_1_5_2:Boolean = true;
294 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public var public_var_AIR_1_0_FP_10_0:Boolean = true;
295 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public var public_var_AIR_1_5_2_FP_9_0:Boolean = true;
296 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public var public_var_AIR_1_5_1_FP_10_0_AIR_1_5_2:Boolean = true;
297 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public var public_var_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0:Boolean = true;
299 public const public_const:Boolean = true;
300 [API(CONFIG::FP_9_0)] public const public_const_FP_9_0:Boolean = true;
301 [API(CONFIG::AIR_1_0)] public const public_const_AIR_1_0:Boolean = true;
302 [API(CONFIG::FP_10_0)] public const public_const_FP_10_0:Boolean = true;
303 [API(CONFIG::AIR_1_5)] public const public_const_AIR_1_5:Boolean = true;
304 [API(CONFIG::AIR_1_5_1)] public const public_const_AIR_1_5_1:Boolean = true;
305 [API(CONFIG::FP_10_0_32)] public const public_const_FP_10_0_32:Boolean = true;
306 [API(CONFIG::AIR_1_5_2)] public const public_const_AIR_1_5_2:Boolean = true;
307 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public const public_const_AIR_1_0_FP_10_0:Boolean = true;
308 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public const public_const_AIR_1_5_2_FP_9_0:Boolean = true;
309 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public const public_const_AIR_1_5_1_FP_10_0_AIR_1_5_2:Boolean = true;
310 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public const public_const_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0:Boolean = true;
312 public function public_function():Boolean { return true; }
313 [API(CONFIG::FP_9_0)] public function public_function_FP_9_0():Boolean { return true; }
314 [API(CONFIG::AIR_1_0)] public function public_function_AIR_1_0():Boolean { return true; }
315 [API(CONFIG::FP_10_0)] public function public_function_FP_10_0():Boolean { return true; }
316 [API(CONFIG::AIR_1_5)] public function public_function_AIR_1_5():Boolean { return true; }
317 [API(CONFIG::AIR_1_5_1)] public function public_function_AIR_1_5_1():Boolean { return true; }
318 [API(CONFIG::FP_10_0_32)] public function public_function_FP_10_0_32():Boolean { return true; }
319 [API(CONFIG::AIR_1_5_2)] public function public_function_AIR_1_5_2():Boolean { return true; }
320 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function public_function_AIR_1_0_FP_10_0():Boolean { return true; }
321 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public function public_function_AIR_1_5_2_FP_9_0():Boolean { return true; }
322 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public function public_function_AIR_1_5_1_FP_10_0_AIR_1_5_2():Boolean { return true; }
323 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function public_function_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0():Boolean { return true; }
325 public function get public_getset():Boolean { return true; }
326 [API(CONFIG::FP_9_0)] public function get public_getset_FP_9_0():Boolean { return true; }
327 [API(CONFIG::AIR_1_0)] public function get public_getset_AIR_1_0():Boolean { return true; }
328 [API(CONFIG::FP_10_0)] public function get public_getset_FP_10_0():Boolean { return true; }
329 [API(CONFIG::AIR_1_5)] public function get public_getset_AIR_1_5():Boolean { return true; }
330 [API(CONFIG::AIR_1_5_1)] public function get public_getset_AIR_1_5_1():Boolean { return true; }
331 [API(CONFIG::FP_10_0_32)] public function get public_getset_FP_10_0_32():Boolean { return true; }
332 [API(CONFIG::AIR_1_5_2)] public function get public_getset_AIR_1_5_2():Boolean { return true; }
333 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function get public_getset_AIR_1_0_FP_10_0():Boolean { return true; }
334 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public function get public_getset_AIR_1_5_2_FP_9_0():Boolean { return true; }
335 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public function get public_getset_AIR_1_5_1_FP_10_0_AIR_1_5_2():Boolean { return true; }
336 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function get public_getset_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0():Boolean { return true; }
338 public function set public_getset(x:*):void { }
339 [API(CONFIG::FP_9_0)] public function set public_getset_FP_9_0(x:*):void { }
340 [API(CONFIG::AIR_1_0)] public function set public_getset_AIR_1_0(x:*):void { }
341 [API(CONFIG::FP_10_0)] public function set public_getset_FP_10_0(x:*):void { }
342 [API(CONFIG::AIR_1_5)] public function set public_getset_AIR_1_5(x:*):void { }
343 [API(CONFIG::AIR_1_5_1)] public function set public_getset_AIR_1_5_1(x:*):void { }
344 [API(CONFIG::FP_10_0_32)] public function set public_getset_FP_10_0_32(x:*):void { }
345 [API(CONFIG::AIR_1_5_2)] public function set public_getset_AIR_1_5_2(x:*):void { }
346 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function set public_getset_AIR_1_0_FP_10_0(x:*):void { }
347 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public function set public_getset_AIR_1_5_2_FP_9_0(x:*):void { }
348 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public function set public_getset_AIR_1_5_1_FP_10_0_AIR_1_5_2(x:*):void { }
349 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public function set public_getset_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0(x:*):void { }
352 [API(CONFIG::FP_9_0)] public class public_class_FP_9_0 { }
353 [API(CONFIG::AIR_1_0)] public class public_class_AIR_1_0 { }
354 [API(CONFIG::FP_10_0)] public class public_class_FP_10_0 { }
355 [API(CONFIG::AIR_1_5)] public class public_class_AIR_1_5 { }
356 [API(CONFIG::AIR_1_5_1)] public class public_class_AIR_1_5_1 { }
357 [API(CONFIG::FP_10_0_32)] public class public_class_FP_10_0_32 { }
358 [API(CONFIG::AIR_1_5_2)] public class public_class_AIR_1_5_2 { }
359 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public class public_class_AIR_1_0_FP_10_0 { }
360 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public class public_class_AIR_1_5_2_FP_9_0 { }
361 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public class public_class_AIR_1_5_1_FP_10_0_AIR_1_5_2 { }
362 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public class public_class_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0 { }
364 public interface public_interface {}
365 [API(CONFIG::FP_9_0)] public interface public_interface_FP_9_0 { }
366 [API(CONFIG::AIR_1_0)] public interface public_interface_AIR_1_0 { }
367 [API(CONFIG::FP_10_0)] public interface public_interface_FP_10_0 { }
368 [API(CONFIG::AIR_1_5)] public interface public_interface_AIR_1_5 { }
369 [API(CONFIG::AIR_1_5_1)] public interface public_interface_AIR_1_5_1 { }
370 [API(CONFIG::FP_10_0_32)] public interface public_interface_FP_10_0_32 { }
371 [API(CONFIG::AIR_1_5_2)] public interface public_interface_AIR_1_5_2 { }
372 [API(CONFIG::AIR_1_0,CONFIG::FP_10_0)] public interface public_interface_AIR_1_0_FP_10_0 { }
373 [API(CONFIG::AIR_1_5_2,CONFIG::FP_9_0)] public interface public_interface_AIR_1_5_2_FP_9_0 { }
374 [API(CONFIG::AIR_1_5_1,CONFIG::FP_10_0,CONFIG::AIR_1_5_2)] public interface public_interface_AIR_1_5_1_FP_10_0_AIR_1_5_2 { }
375 [API(CONFIG::FP_10_0_32,CONFIG::FP_9_0,CONFIG::AIR_1_0,CONFIG::FP_10_0)] public interface public_interface_FP_10_0_32_FP_9_0_AIR_1_0_FP_10_0 { }