Merge remote-tracking branch 'redux/master' into sh4-pool
[tamarin-stm.git] / utils / abc-constants.as
blob8ed7ccb98fa95f8e4fead9d24f3c86bcedccb62e
1 /* -*- 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 // This file is to be included in its clients
42 // method flags
43 const NEED_ARGUMENTS:int = 0x01
44 const NEED_ACTIVATION:int = 0x02
45 const NEED_REST:int = 0x04
46 const HAS_OPTIONAL:int = 0x08
47 const IGNORE_REST:int = 0x10
48 const NATIVE:int = 0x20
49 const HAS_ParamNames:int = 0x80
51 const CONSTANT_Utf8 :int = 0x01
52 const CONSTANT_Int :int = 0x03
53 const CONSTANT_UInt :int = 0x04
54 const CONSTANT_PrivateNs :int = 0x05 // non-shared namespace
55 const CONSTANT_Double :int = 0x06
56 const CONSTANT_Qname :int = 0x07 // o.ns::name, ct ns, ct name
57 const CONSTANT_Namespace :int = 0x08
58 const CONSTANT_Multiname :int = 0x09 // o.name, ct nsset, ct name
59 const CONSTANT_False :int = 0x0A
60 const CONSTANT_True :int = 0x0B
61 const CONSTANT_Null :int = 0x0C
62 const CONSTANT_QnameA :int = 0x0D // o.@ns::name, ct ns, ct attr-name
63 const CONSTANT_MultinameA :int = 0x0E // o.@name, ct attr-name
64 const CONSTANT_RTQname :int = 0x0F // o.ns::name, rt ns, ct name
65 const CONSTANT_RTQnameA :int = 0x10 // o.@ns::name, rt ns, ct attr-name
66 const CONSTANT_RTQnameL :int = 0x11 // o.ns::[name], rt ns, rt name
67 const CONSTANT_RTQnameLA :int = 0x12 // o.@ns::[name], rt ns, rt attr-name
68 const CONSTANT_NameL :int = 0x13 // o.[], ns=public implied, rt name
69 const CONSTANT_NameLA :int = 0x14 // o.@[], ns=public implied, rt attr-name
70 const CONSTANT_NamespaceSet :int = 0x15
71 const CONSTANT_PackageNs :int = 0x16
72 const CONSTANT_PackageInternalNs :int = 0x17
73 const CONSTANT_ProtectedNs :int = 0x18
74 const CONSTANT_StaticProtectedNs :int = 0x19
75 const CONSTANT_StaticProtectedNs2 :int = 0x1a
76 const CONSTANT_MultinameL :int = 0x1B
77 const CONSTANT_MultinameLA :int = 0x1C
78 const CONSTANT_TypeName :int = 0x1D
80 const constantKinds:Array = [ "0", "utf8", "2",
81 "int", "uint", "private", "double", "qname", "namespace",
82 "multiname", "false", "true", "null", "@qname", "@multiname", "rtqname",
83 "@rtqname", "[qname]", "@[qname]", "[name]", "@[name]", "nsset", "packagens",
84 "packageinternalns", "protectedns", "staticprotectedns", "staticprotectedns2",
85 "multiname", "multiname2", "typename"
88 const TRAIT_Slot :int = 0x00
89 const TRAIT_Method :int = 0x01
90 const TRAIT_Getter :int = 0x02
91 const TRAIT_Setter :int = 0x03
92 const TRAIT_Class :int = 0x04
93 const TRAIT_Function :int = 0x05
94 const TRAIT_Const :int = 0x06
96 const traitKinds:Array = [
97 "var", "function", "function get", "function set", "class", "function", "const"
100 include "opcodes-table.as"
102 const ATTR_final :int = 0x01; // 1=final, 0=virtual
103 const ATTR_override :int = 0x02; // 1=override, 0=new
104 const ATTR_metadata :int = 0x04; // 1=has metadata, 0=no metadata
105 const ATTR_public :int = 0x08; // 1=add public namespace
107 const CLASS_FLAG_sealed :int = 0x01;
108 const CLASS_FLAG_final :int = 0x02;
109 const CLASS_FLAG_interface :int = 0x04;