gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/AS3_OPCODES


From: Chad Musick
Subject: [Gnash-commit] gnash ChangeLog server/AS3_OPCODES
Date: Tue, 09 Oct 2007 11:19:39 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Chad Musick <cmusick>   07/10/09 11:19:39

Modified files:
        .              : ChangeLog 
Removed files:
        server         : AS3_OPCODES 

Log message:
        Removing obsolete file.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4574&r2=1.4575
http://cvs.savannah.gnu.org/viewcvs/gnash/server/AS3_OPCODES?cvsroot=gnash&r1=1.1&r2=0

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4574
retrieving revision 1.4575
diff -u -b -r1.4574 -r1.4575
--- ChangeLog   9 Oct 2007 09:06:26 -0000       1.4574
+++ ChangeLog   9 Oct 2007 11:19:38 -0000       1.4575
@@ -1,3 +1,7 @@
+2007-10-09 Chad Musick <address@hidden>
+
+       * server/AS3_OPCODES: Remove file (information up-to-date elsewhere).
+
 2007-10-09 Zou Lunkai <address@hidden>
        
        * testsuite/misc-ming.all/PlaceObject2Test.swf, Makefile.am: enable an 
old

Index: server/AS3_OPCODES
===================================================================
RCS file: server/AS3_OPCODES
diff -N server/AS3_OPCODES
--- server/AS3_OPCODES  16 Aug 2007 14:47:09 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,1531 +0,0 @@
-These are the opcodes for Actionscript ByteCode in AS3. They are executed
-in the Abc block of a V9+ .swf file.
-
-The following opcodes were summarized from the Tamarin code base, used under
-the GPL. 
-
-Codes may have the following attributes:
-
-Hex: The hexadecimal value of the code. Note that many of these codes changed
- from AS2 to AS3 -- the code numbers are not comparable between the two.
-Name: The name, as given in the Tamarin source, plus my speculation of just
- what may have been the thought behind the name, when it didn't seem obvious
- to me.
-StacK In: The entries expected on the stack, with the top of the stack being
- the last entry listed.
-Stack Out: The stack as it leaves the operation, compared to how it entered.
- If it doesn't appear on the Stack In list, it won't be touched by the
- operation. Only operations 0x2A (swap) and 0x2B (dup) leave more than one
- value on the stack.
-Stream: The state of the bytestream as it is known to be. The bytestream is
- used to store some values, and the order in which these are listed (left to
- right) is the order in which they should appear in the stream.
- The types V32 and UV32 are the variable encoding scheme 30 bit numbers,
- stored in a 32 bit signed integer (unsigned for UV32).
- The type S24 is a signed 3 byte number stored in 3 bytes in the stream.
- Stream reads should always advance the stream point, unless otherwise noted.
-Frame: Accesses of the frame pointer are listed here.
-Names: Some operators have [ns [n]] on the stack. Some names read from the
- stream need additional context information, and these optional atoms can
- provide that information.
-See: Some operations are either identical to others or so similar that they
- are best described in terms of those operations.
-Do: If the intent of the opcode is not obvious from the stack and stream
- entries, this says what side effects the operation should have.
-NB: Things that are either unusual about this opcode or that I thought worth
- noting in particular.
-
-See http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf
- for how these things ought to work, ideally. This document tries to describe
- how things work in there Tamarin, even if they are incorrect.
- This file is based on my best understanding, and there is no warranty of
- correctness or any other kind.
-
-Hex: 0x01
-Name: OP_bkpt
-Do: Enter the debugger if one has been invoked.
-
-Hex: 0x02
-Name: OP_nop
-Do: Nothing.
-
-Hex: 0x03
-Name: OP_throw
-Stack In:
- obj -- an object
-Stack Out:
- .
-Do: Throw obj as an exception
-
-Hex: 0x04
-Name: OP_getsuper
-Stream:
- name_id -- V32 index to multiname 'name'
-Stack In:
- obj -- an object
- [ns [n]] -- Namespace stuff.
-Stack Out:
- super -- if obj.name is a method, the super of that method.
-       -- if obj.name is write-only data, throw ReferenceError.
-       -- if obj.name is readable, the return of the getter of super.
-
-Hex: 0x05
-Name: OP_setsuper
-Stream: UV32 index to multiname 'name'
-Stack In:
- obj -- an object
- val -- an object
- [ns [n]] -- Namespace stuff.
-Stack Out:
- .
-Do: Make val the super of obj.name ; throw ReferenceError if obj.name is
- not writable.
-
-Hex: 0x06
-Name: OP_dxns (Dynamically eXtend Name Space?)
-Stream: UV32 index to string pool 'nsname'
-Do: Create a new public namespace with name nsname, enter the namespace.
-
-Hex: 0x07
-Name: OP_dxnslate (Dynamically eXtend Name Space late?)
-Stack In:
- nsname -- a string object
-Stack Out:
- .
-Do: Create a new public namespace with name nsname, but don't enter it.
-
-Hex: 0x08
-Name: OP_kill
-Stream: UV32 frame pointer offset 'offset'
-Frame: 
- Kill at offset
-
-Hex: 0x09
-Name: OP_label
-Do: Unknown purpose, Tamarin does nothing.
-
-Hex: 0x0A
-Name: UNUSED
-
-Hex: 0x0B
-Name: UNUSED
-
-Hex: 0x0C
-Name: OP_ifnlt
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If !(a < b) move by jump in stream, as OP_jump does.
-
-Hex: 0x0D
-Name: OP_ifnle
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If !(a <= b) move by jump in stream, as OP_jump does.
-
-Hex: 0x0E
-Name: OP_ifngt
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If !(a > b) move by jump in stream, as OP_jump does.
-
-Hex: 0x0F
-Name: OP_ifnge
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If !(a >= b) move by jump in stream, as OP_jump does.
-
-Hex: 0x10
-Name: OP_jump
-Stream: S24 jump offset 'jump'
-Do: If jump is negative, check for interrupts. Move by jump in stream.
-
-Hex: 0x11
-Name: OP_iftrue
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
-Stack Out:
- .
-Do: If a has a 'true' value, move by jump in stream, as OP_jump does.
-
-Hex: 0x12
-Name: OP_iffalse
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
-Stack Out:
- .
-Do: If a has a 'false' value, move by jump in stream, as OP_jump does.
-
-Hex: 0x13
-Name: OP_ifeq
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If a == b (weakly), move by jump in stream, as OP_jump does.
-
-Hex: 0x14
-Name: OP_ifne
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If a != b (weakly), move by jump in stream, as OP_jump does.
-
-Hex: 0x15
-Name: OP_iflt
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If a < b move by jump in stream, as OP_jump does.
-
-Hex: 0x16
-Name: OP_ifle
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If a <= b move by jump in stream, as OP_jump does.
-
-Hex: 0x17
-Name: OP_ifgt
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If a > b move by jump in stream, as OP_jump does.
-
-Hex: 0x18
-Name: OP_ifge
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If a >= b move by jump in stream, as OP_jump does.
-
-Hex: 0x19
-Name: OP_ifstricteq
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If a == b (strictly), move by jump in stream, as OP_jump does.
-
-Hex: 0x1A
-Name: OP_ifstrictne
-Stream: S24 jump offset 'jump'
-Stack In:
- a -- an object
- b -- an object
-Stack Out:
- .
-Do: If a != b (strongly), move by jump in stream, as OP_jump does.
-
-Hex: 0x1B
-Name: OP_lookupswitch
-Stream: 3 bytes unknown use | V32 count as 'case_count - 1' | case_count of S24
- as 'cases'
-Stack In:
- index -- an integer object
-Stack Out:
- .
-Do: If index >= case_count, reset stream pointer to position on op entry.
- Otherwise, move by cases[index] - 1 from stream position on op entry.
-
-Hex: 0x1C
-Name: OP_pushwith
-Stack In:
- scope -- a scope
-Stack Out:
- .
-Do: Enter scope with previous scope as its base, unless it already had a base,
- in which case leave that alone.
-
-Hex: 0x1D
-Name: OP_popscope
-Do: Leave current scope. Clear the base if the depth is now shallower than the
- base's depth.
-
-Hex: 0x1E
-Name: OP_nextname
-Stack In:
- obj -- an object
- index -- an integer object
-Stack Out:
- name -- the key name at index in obj (not next after index).
-Do: If obj is a namespace index 1 is the uri of the namespace, index 2 is
- the prefix of the namespace, and any other value is a null string object. If
- obj is an immutable object, like a number, operate on its prototype instead.
- If there is no such index, name is null.
-
-Hex: 0x1F
-Name: OP_hasnext
-Stack In:
- obj -- an object
- index -- an integer object
-Stack Out:
- next_index -- a raw integer of the next index after index in obj, or 0 if 
none.
-Do: If there is a key value pair after the one at index, make next_index as it.
- Otherwise, make next_index 0.
-
-Hex: 0x20
-Name: OP_pushnull
-Stack Out:
- n -- a Null object.
-
-Hex: 0x21
-Name: OP_pushundefined
- n -- an Undefined object.
-
-Hex: 0x22
-Name: UNUSED
-
-Hex: 0x23
-Name: OP_nextvalue
-Stack In:
- obj -- an object (namespaces okay)
- index -- an integer object
-Stack Out:
- value -- the value of the key value pair in obj at index.
-
-Hex: 0x24
-Name: OP_pushbyte
-Stream: S8 as 'byte'
-Stack Out:
- byte -- as a raw byte
-
-Hex: 0x25
-Name: OP_pushshort
-Stream: V32 as 'value'
-Stack Out:
- value -- as a raw integer
-
-Hex: 0x26
-Name: OP_pushtrue
-Stack Out:
- true -- the True object
-
-Hex: 0x27
-Name: OP_pushfalse
-Stack Out:
- false -- the False object
-
-Hex: 0x28
-Name: OP_pushnan
-Stack Out:
- NaN -- the NaN object
-
-Hex: 0x29
-Name: OP_pop
-Stack In:
- a -- anything
-Stack Out:
- .
-
-Hex: 0x2A
-Name: OP_dup
-Stack In:
- a -- anything
-Stack Out:
- a
- a
-
-Hex: 0x2B
-Name: OP_swap
-Stack In:
- a -- anything
- b -- anything
-Stack Out:
- b
- a
-
-Hex: 0x2C
-Name: OP_pushstring
-Stream: V32 string pool index 'index'
-Stack Out:
- value -- String object from string_pool[index]
-
-Hex: 0x2D
-Name: OP_pushint
-Stream: V32 int pool index 'index'
-Stack Out:
- value -- Integer object from integer_pool[index]
-
-Hex: 0x2E
-Name: OP_pushuint
-Stream: V32 uint pool index 'index'
-Stack Out:
- value -- Unsigned Integer object from unsigned_integer_pool[index]
-
-Hex: 0x2F
-Name: OP_pushdouble
-Stream: V32 double pool index 'index'
-Stack Out:
- value -- Double object from double_pool[index]
-
-Hex: 0x30
-Name: OP_pushscope
-Stack In:
- scope -- a scope
-Stack Out:
- .
-Do: Enter scope without altering base.
-
-Hex: 0x31
-Name: OP_pushnamespace
-Stream: V32 namespace pool index 'index'
-Stack Out:
- ns -- Namespace object from namespace_pool[index]
-
-Hex: 0x32
-Name: OP_hasnext2
-Stream: V32 frame location 'objloc' | V32 frame location 'indexloc'
-Stack Out:
- truth -- True if frame[objloc] has a key/value pair after frame[indexloc],
-  following delagates (__proto__) objects if needed. False, otherwise.
-Frame:
- Change at objloc to object which possessed next value.
- Change at indexloc to index (as object) of the next value.
-
-Hex: 0x33
-Name: UNUSED
-
-Hex: 0x34
-Name: UNUSED
-
-Hex: 0x35
-Name: UNUSED
-
-Hex: 0x36
-Name: UNUSED
-
-Hex: 0x37
-Name: UNUSED
-
-Hex: 0x38
-Name: UNUSED
-
-Hex: 0x39
-Name: UNUSED
-
-Hex: 0x3A
-Name: UNUSED
-
-Hex: 0x3B
-Name: UNUSED
-
-Hex: 0x3C
-Name: UNUSED
-
-Hex: 0x3D
-Name: UNUSED
-
-Hex: 0x3E
-Name: UNUSED
-
-Hex: 0x3F
-Name: UNUSED
-
-Hex: 0x40
-Name: OP_newfunction
-Stream: V32 'index'
-Stack Out:
- func -- the function object
-Do: Information about the function is in the pool at index. Construct the
- function from this information, the current scope, and the base of the scope.
-
-Hex: 0x41
-Name: OP_call
-Stream: V32 'arg_count'
-Stack In:
- func -- the function to be called
- obj -- the object to which the function belongs
- arg1 ... argN -- the arg_count arguments to pass
-Stack Out:
- value -- the value returned by obj->func(arg1, ...., argN)
-
-Hex: 0x42
-Name: OP_construct
-Stream: V32 'arg_count'
-Stack In:
- obj -- the object to be constructed
- arg1 ... argN -- the arg_count arguments to pass
-Stack Out:
- value -- obj after it has been constructed as obj(arg1, ..., argN)
-
-Hex: 0x43
-Name: OP_callmethod
-Stream: V32 'method_id + 1' | V32 'arg_count'
-Stack In:
- obj -- the object to be called
- arg1 ... argN -- the arg_count arguments to pass
-Stack Out:
- value -- the value returned by obj::'method_id'(arg1, ..., argN)
-
-Hex: 0x44
-Name: OP_callstatic
-Stream: V32 'method_id' | V32 'arg_count'
-Stack In:
- obj -- the object to act as a receiver for the static call
- arg1 ... argN -- the arg_count arguments to pass
-Stack Out:
- value -- the value returned by obj->ABC::'method_id'(arg1, ..., argN)
-
-Hex: 0x45
-Name: OP_callsuper
-Stream: V32 'name_offset' | V32 'arg_count'
-Stack In:
- obj -- the object whose super is to be called
- [ns [n]] -- Namespace stuff
- arg1 ... argN -- the arg_count arguments to pass
-Stack Out:
- value -- the value returned by obj::(resolve)'name_offset'::super(arg1,
-  ..., argN)
-
-Hex: 0x46
-Name: OP_callproperty
-Stream: V32 'name_offset' | V32 'arg_count'
-Stack In:
- obj -- The object whose property is to be accessed.
- [ns [n]] -- Namespace stuff
- arg1 ... argN -- the arg_count arguments to pass
-Stack Out:
- value -- the value returned by obj::(resolve)'name_offset'(arg1, ..., argN)
-NB: Calls getter/setter if they exist.
-
-Hex: 0x47
-Name: OP_returnvoid
-Do: Return an Undefined object up the callstack.
-
-Hex: 0x48
-Name: OP_returnvalue
-Stack In:
- value -- value to be returned
-Stack Out:
- .
-Do: Return value up the callstack.
-
-Hex: 0x49
-Name: OP_constructsuper
-Stream: V32 'arg_count'
-Stack In:
- obj -- the object whose super's constructor should be invoked
- arg1 ... argN -- the arg_count arguments
-Stack Out:
- value -- obj after obj::super(arg1, ..., argN) has been invoked
-
-Hex: 0x4A
-Name: OP_constructprop
-Stream: V32 'name_offset' | V32 'arg_count'
-Stack In:
- obj -- the object whose property should be constructed
- [ns [n]] -- Namespace stuff
- arg1 ... argN -- the arg_count arguments to pass
-Stack Out:
- value -- the newly constructed prop from obj::(resolve)'name_offset'(arg1,
-  ..., argN)
-
-Hex: 0x4B
-Name: OP_callsuperid
-Do: Nothing, this is an intermediate code op, should not appear in ABC.
-
-Hex: 0x4C
-Name: OP_callproplex
-Stream: V32 'name_offset' | V32 'arg_count'
-Stack In:
- obj -- The object whose property is to be accessed.
- [ns [n]] -- Namespace stuff
- arg1 ... argN -- the arg_count arguments to pass
-Stack Out:
- value -- the value returned by obj::(resolve)'name_offset'(arg1, ..., argN)
-NB: As nearly as I can tell, this does _not_ call getter/setter if they exist,
- but is otherwise identical to OP_callproperty
-
-Hex: 0x4D
-Name: OP_callinterface
-Do: Nothing, this is an intermediate code op, should not appear in ABC.
-
-Hex: 0x4E
-Name: OP_callsupervoid
-See: 0x45 (OP_callsuper), but
-Stack Out:
- .
-
-Hex: 0x4F
-Name: OP_callpropvoid
-See: 0x46 (OP_callproperty), but
-Stack Out:
- .
-
-Hex: 0x50
-Name: UNUSED
-
-Hex: 0x51
-Name: UNUSED
-
-Hex: 0x52
-Name: UNUSED
-
-Hex: 0x53
-Name: UNUSED
-
-Hex: 0x54
-Name: UNUSED
-
-Hex: 0x55
-Name: OP_newobject
-Stream: V32 'arg_count'
-Stack In:
- prop_name_1 -- a string
- prop_value_1 -- a value object
- .
- . (arg_count name/value pairs in all)
- .
- prop_name_n -- a string
- prop_value_n -- a value object
-Stack Out:
- obj -- A new object which contains all of the given properties.
-NB: This builds an object from its properties, it's not a constructor.
-
-Hex: 0x56
-Name: OP_newarray
-Stream: V32 'array_size'
-Stack In:
- value_1 -- a value
- .
- . (array_size of these)
- .
- value_n -- a value
-Stack Out:
- array -- an array { value_1, value_2, ..., value_n }
-
-Hex: 0x57
-Name: OP_newactivation
-Stack Out:
- vtable -- A new virtual table, which has the previous one as a parent.
-
-Hex: 0x58
-Name: OP_newclass
-Stream: V32 'class_id'
-Stack In:
- obj -- An object to be turned into a class
-Stack Out:
- class -- The newly made class, made from obj and the information at
-  cinits_pool[class_id]
-NB: This depends on scope and scope base (to determine base class)
-
-Hex: 0x59
-Name: OP_getdescendants
-Stream: V32 'name_id'
-Stack In:
- value -- Whose descendants to get
- [ns [n]] -- Namespace stuff
-Stack Out:
- ?
-NB: This op seems to always throw a TypeError in Tamarin, though I assume that
- it ought to do something to yield a list of descendants of a class.
-
-Hex: 0x5A
-Name: OP_newcatch
-Stream: V32 'catch_id'
-Stack Out:
- vtable -- A new vtable suitable to catch an exception of the type in catch_id.
-NB: Need more information on how exceptions are set up.
-
-Hex: 0x5B
-Name: UNUSED
-
-Hex: 0x5C
-Name: UNUSED
-
-Hex: 0x5D
-Name: OP_findpropstrict
-Stream: V32 'name_id'
-Stack In:
- [ns [n]] -- Namespace stuff
-Stack Out:
- owner -- The object which owns the property given by looking up the name_id,
-  or throw a ReferenceError if none exists.
-
-Hex: 0x5E
-Name: OP_findproperty
-Stream: V32 'name_id'
-Stack In:
- [ns [n]] -- Namespace stuff
-Stack Out:
- owner -- The object which owns the property given by looking up the name_id,
-  or an Undefined object if none exists.
-
-Hex: 0x5F
-Name: OP_finddef
-Stream: V32 'name_id' (no ns expansion)
-Stack Out:
- def -- The definition of the name at name_id.
-
-Hex: 0x60
-Name: OP_getlex
-Stream: V32 'name_id' (no ns expansion)
-Stack Out:
- property -- The result of 0x5D (OP_findpropstrict) + 0x66 (OP_getproperty)
-
-Hex: 0x61
-Name: OP_setproperty
-Stream: V32 'name_id'
-Stack In:
- obj -- The object whose property is to be set
- [ns [n]] -- Namespace stuff
- [key] -- Key name for the property. Will not have both Namespace and key.
- value -- The value to be used
-Stack Out:
- .
-Do: Set obj::(resolve)'name_id' to value, or set obj::key to value.
-NB: I'm not yet clear which should be used when. (Chad)
-
-Hex: 0x62
-Name: OP_getlocal
-Stream: V32 'frame_index'
-Frame: value at frame_index is needed
-Stack Out:
- value
-
-Hex: 0x63
-Name: OP_setlocal
-Stream: V32 'frame_index'
-Frame: obj at frame_index is set to value
-Stack In:
- value
-Stack Out:
- .
-
-Hex: 0x64
-Name: OP_getglobalscope
-Stack Out:
- global -- The global scope object
-
-Hex: 0x65
-Name: OP_getscopeobject
-Stream: S8 'depth'
-Stack Out:
- scope -- The scope object at depth
-
-Hex: 0x66
-Name: OP_getproperty
-Stream: V32 'name_id'
-Stack In:
- obj -- The object whose property is to be retrieved
- [ns [n]] -- Namespace stuff
- [key] -- Key name for the property. Will not have both Namespace and key.
-Stack Out:
- prop -- The requested property.
-NB: As with 0x61 (OP_setproperty) it's unclear to me when key gets used and
- when the namespace (or nothing) is used.
-
-Hex: 0x67
-Name: UNUSED
-
-Hex: 0x68
-Name: OP_initproperty
-Stream V32 'name_id'
-Stack In:
- obj -- The object whose property is to be initialized
- [ns [n]] -- Namespace stuff
- value -- The value to be put into the property.
-Stack Out:
- .
-Do:
- Set obj::(resolve)'name_id' to value, and set the bindings from the context.
-
-Hex: 0x69
-Name: UNUSED
-
-Hex: 0x6A
-Name: OP_deleteproperty
-Stream: V32 'name_id'
-Stack In:
- obj -- The object whose property should be deleted.
- [ns [n]] -- Namespace stuff
-Stack Out:
- truth -- True if the property was deleted or did not exist, otherwise False.
-
-Hex: 0x6B
-Name: UNUSED
-
-Hex: 0x6C
-Name: OP_getslot
-Stream: V32 'slot_index + 1'
-Stack In:
- obj -- The object which owns the desired slot.
-Stack Out:
- slot -- obj.slots[slot_index]
-
-Hex: 0x6D
-Name: OP_setslot
-Stream: V32 'slot_index + 1'
-Stack In:
- obj -- The object whose slot should be set.
- value -- The value intended for the slot.
-Stack Out:
- .
-Do: obj.slots[slot_index] = value
-
-Hex: 0x6E
-Name: OP_getglobalslot
-Stream: V32 'slot_index + 1'
-Stack In:
- .
-Stack Out:
- slot -- globals.slots[slot_index]
-NB: Deprecated
-
-Hex: 0x6F
-Name: OP_setglobalslot
-Stream: V32 'slot_index + 1'
-Stack In:
- value -- The value to be placed into the slot.
-Stack Out:
- .
-Do: globals[slot_index] = value
-NB: Deprecated
-
-Hex: 0x70
-Name: OP_convert_s
-Stack In:
- value -- An object
-Stack Out:
- str_value -- value as a string
-
-Hex: 0x71
-Name: OP_esc_xelem
-Stack In:
- value -- An object to be escaped
-Stack Out:
- str_value -- value as a string, escaped suitably to be put in an XML element.
-
-Hex: 0x72
-Name: OP_esc_xattr
-Stack In:
- value -- An object to be escaped
-Stack Out:
- str_value -- value as a string, escaped suitably to be put in an XML 
attribute.
-
-Hex: 0x73
-Name: OP_convert_i
-Stack In:
- value -- An object to be converted to Integer
-Stack Out:
- int_value -- value as an integer object
-
-Hex: 0x74
-Name: OP_convert_u
-Stack In:
- value -- An object to be converted to unsigned integer
-Stack Out:
- int_value -- value as an unsigned integer object
-
-Hex: 0x75
-Name: OP_convert_d
-Stack In:
- value -- An object to be converted to a double
-Stack Out:
- double_value -- value as a double object
-
-Hex: 0x76
-Name: OP_convert_b
-Stack In:
- value -- An object to be converted to a boolean
-Stack Out:
- bool_value -- value as a boolean object
-
-Hex: 0x77
-Name: OP_convert_o
-Stack In:
- obj -- An object
-Stack Out:
- obj -- An object
-Do: If obj is Undefined or Null, throw TypeError
-
-Hex: 0x78
-Name: OP_checkfilter
-Stack In:
- obj -- An object
-Stack Out:
- obj -- An object
-Do: If obj is not XML based, throw TypeError
-
-Hex: 0x79
-Name: UNUSED
-
-Hex: 0x7A
-Name: UNUSED
-
-Hex: 0x7B
-Name: UNUSED
-
-Hex: 0x7C
-Name: UNUSED
-
-Hex: 0x7D
-Name: UNUSED
-
-Hex: 0x7E
-Name: UNUSED
-
-Hex: 0x7F
-Name: UNUSED
-
-Hex: 0x80
-Name: OP_coerce
-Stream: V32 'name_index'
-Stack In:
- obj -- An object to be converted
-Stack Out:
- coerced_obj -- The object as the desired (resolve)'name_index' type.
-
-Hex: 0x81
-Name: OP_coerce_b
-See: 0x76 (OP_convert_b)
-NB: Deprecated
-
-Hex: 0x82
-Name: OP_coerce_a
-Stack In:
- obj -- An object to be converted
-Stack Out:
- obj
-Do: Nothing. (The 'a' is for atom, and this already is.)
-
-Hex: 0x83
-Name: OP_coerce_i
-See: 0x73 OP_convert_i
-NB: Deprecated
-
-Hex: 0x84
-Name: OP_coerce_d
-See: 0x75 OP_convert_d
-NB: Deprecated
-
-Hex: 0x85
-Name: OP_coerce_s
-Stack In:
- obj -- An object to be converted
-Stack Out:
- str_obj -- The converted object. nullString object if obj is Null or Undefined
-
-Hex: 0x86
-Name: OP_astype
-Stream: V32 'name_index' (no namespace)
-Stack In:
- obj -- An object to be checked
-Stack Out:
- cobj -- obj if obj is of type (resolve)'name_index', otherwise Null
-
-Hex: 0x87
-Name: OP_astypelate
-Stack In:
- obj -- An object to be checked
- valid -- The object whose type is to be matched
-Stack Out:
- cobj -- obj if type of obj is type of valid, otherwise Null
-
-Hex: 0x88
-Name: OP_coerce_u
-See: 0x74 (OP_convert_u)
-NB: Deprecated
-
-Hex: 0x89
-Name: OP_coerce_o
-Stack In:
- obj -- An object
-Stack Out:
- cobj -- obj if obj is not Undefined, otherwise Null
-
-Hex: 0x8A
-Name: UNUSED
-
-Hex: 0x8B
-Name: UNUSED
-
-Hex: 0x8C
-Name: UNUSED
-
-Hex: 0x8D
-Name: UNUSED
-
-Hex: 0x8E
-Name: UNUSED
-
-Hex: 0x8F
-Name: UNUSED
-
-Hex: 0x90
-Name: OP_negate
-Stack In:
- obj -- An object
-Stack Out:
- negdouble -- -1.0 * (double) obj
-
-Hex: 0x91
-Name: OP_increment
-Stack In:
- num -- A number, integer or double
-Stack Out:
- num2 -- The same value, but new object.
-Do:
- num = num + 1 (post-increment)
-
-Hex: 0x92
-Name: OP_inclocal
-Stream: V32 'frame_addr'
-Frame: Load i from frame_addr. Store clone(i) at frame_addr. i = i + 1
- (post-increment in frame)
-
-Hex: 0x93
-Name: OP_decrement
-Stack In:
- num -- A number, integer or double
-Stack Out:
- num2 -- The same value, but new object.
-Do:
- num = num - 1 (post-decrement)
-
-Hex: 0x94
-Name: OP_declocal
-Stream: V32 'frame_addr'
-Frame: Load i from frame_addr. Store clone(i) at frame_addr. i = i - 1
- (post-decrement in frame)
-
-Hex: 0x95
-Name: OP_typeof
-Stack In:
- obj -- An object
-Stack Out:
- type -- typeof(obj)
-
-Hex: 0x96
-Name: OP_not
-Stack In:
- obj -- An object
-Stack Out:
- nobj -- A truth object with value !((Boolean) obj)
-
-Hex: 0x97
-Name: OP_bitnot
-Stack In:
- obj -- An object
-Stack Out:
- nint -- ~((Int) obj)
-
-Hex: 0x98
-Name: UNUSED
-
-Hex: 0x99
-Name: UNUSED
-
-Hex: 0x9A
-Name: OP_concat
-NB: It is an error for this to appear.
-
-Hex: 0x9B
-Name: OP_add_d
-NB: It is an error for this to appear.
-
-Hex: 0x9C
-Name: UNUSED
-
-Hex: 0x9D
-Name: UNUSED
-
-Hex: 0x9E
-Name: UNUSED
-
-Hex: 0x9F
-Name: UNUSED
-
-Hex: 0xA0
-Name: OP_add
-Stack In:
- a
- b
-Stack Out:
- a + b (double if numeric)
-
-Hex: 0xA1
-Name: OP_subtract
-Stack In:
- a
- b
-Stack Out:
- a - b (double)
-
-Hex: 0xA2
-Name: OP_multiply
-Stack In:
- a
- b
-Stack Out:
- a * b (double)
-
-Hex: 0xA3
-Name: OP_divide
-Stack In:
- a
- b
-Stack Out:
- a / b (double)
-
-Hex: 0xA4
-Name: OP_modulo
-Stack In:
- a
- b
-Stack Out:
- a % b
-
-Hex: 0xA5
-Name: OP_lshift
-Stack In:
- a
- b
-Stack Out:
- a << b
-
-Hex: 0xA6
-Name: OP_rshift
-Stack In:
- a
- b
-Stack Out:
- a >> b
-
-Hex: 0xA7
-Name: OP_urshift
-Stack In:
- a
- b
-Stack Out:
- ((unsigned) a) >> b
-
-Hex: 0xA8
-Name: OP_bitand
-Stack In:
- a
- b
-Stack Out:
- a & b
-
-Hex: 0xA9
-Name: OP_bitor
-Stack In:
- a
- b
-Stack Out:
- a | b
-
-Hex: 0xAA
-Name: OP_bitxor
-Stack In:
- a
- b
-Stack Out:
- a ^ b
-
-Hex: 0xAB
-Name: OP_equals
-Stack In:
- a
- b
-Stack Out:
- truth -- Truth of (a == b) (weakly)
-
-Hex: 0xAC
-Name: OP_strictequals
-Stack In:
- a
- b
-Stack Out:
- truth -- Truth of (a == b) (strongly, as in 0x19 (OP_ifstricteq))
-
-Hex: 0xAD
-Name: OP_lessthan
-Stack In:
- a
- b
-Stack Out:
- truth -- Truth of (a < b)
-
-Hex: 0xAE
-Name: OP_lessequals
-Stack In:
- a
- b
-Stack Out:
- truth -- Truth of (a <= b)
-
-Hex: 0xAF
-Name: OP_greaterthan
-Stack In:
- a
- b
-Stack Out:
- truth -- Truth of (a > b)
-
-Hex: 0xB0
-Name: OP_greaterequals
-Stack In:
- a
- b
-Stack Out:
- truth -- Truth of (a >= b)
-
-Hex: 0xB1
-Name: OP_instanceof
-Stack In:
- val -- An object
- super -- An object
-Stack Out:
- truth -- Truth of "val is an instance of super"
-
-Hex: 0xB2
-Name: OP_istype
-Stream: V32 'name_id'
-Stack In:
- obj -- An object
-Stack Out:
- truth -- Truth of "obj is of the type given in (resolve)'name_id'"
-
-Hex: 0xB3
-Name: OP_istypelate
-Stack In:
- obj -- An object
- type -- A type to match
-Stack Out:
- truth -- Truth of "obj is of type"
-
-Hex: 0xB4
-Name: OP_in
-Stack In:
- name -- The name to find
- obj -- The object to search for it
-Stack Out:
- truth -- True if name is in the current namespace or anywhere in object.
-  Don't look in the namespace if obj is a dictionary.
-
-Hex: 0xB5
-Name: UNUSED
-
-Hex: 0xB6
-Name: UNUSED
-
-Hex: 0xB7
-Name: UNUSED
-
-Hex: 0xB8
-Name: UNUSED
-
-Hex: 0xB9
-Name: UNUSED
-
-Hex: 0xBA
-Name: UNUSED
-
-Hex: 0xBB
-Name: UNUSED
-
-Hex: 0xBC
-Name: UNUSED
-
-Hex: 0xBD
-Name: UNUSED
-
-Hex: 0xBE
-Name: UNUSED
-
-Hex: 0xBF
-Name: UNUSED
-
-Hex: 0xC0
-Name: OP_increment_i
-See: 0x91 (OP_increment), but forces types to int, not double
-
-Hex: 0xC1
-Name: OP_decrement_i
-See: 0x93 (OP_decrement), but forces types to int, not double
-
-Hex: 0xC2
-Name: OP_inclocal_i
-See: 0x92 (OP_inclocal), but forces types to int, not double
-
-Hex: 0xC3
-Name: OP_declocal_i
-See: 0x94 (OP_declocal), but forces types to int, not double
-
-Hex: 0xC4
-Name: OP_negate_i
-See: 0x90 (OP_negate), but forces type to int, not double
-
-Hex: 0xC5
-Name: OP_add_i
-See: 0xA0 (OP_add), but forces type to int
-
-Hex: 0xC6
-Name: OP_subtract_i
-See: 0xA1 (OP_subtract), but forces type to int
-
-Hex: 0xC7
-Name: OP_multiply_i
-See: 0xA2 (OP_multiply), but forces type to int
-
-Hex: 0xC8
-Name: UNUSED
-
-Hex: 0xC9
-Name: UNUSED
-
-Hex: 0xCA
-Name: UNUSED
-
-Hex: 0xCB
-Name: UNUSED
-
-Hex: 0xCC
-Name: UNUSED
-
-Hex: 0xCD
-Name: UNUSED
-
-Hex: 0xCE
-Name: UNUSED
-
-Hex: 0xCF
-Name: UNUSED
-
-Hex: 0xD0
-Name: OP_getlocal0
-Frame: Load frame[0] as val
-Stack Out:
- val
-
-Hex: 0xD1
-Name: OP_getlocal1
-Frame: Load frame[1] as val
-Stack Out:
- val
-
-Hex: 0xD2
-Name: OP_getlocal2
-Frame: Load frame[2] as val
-Stack Out:
- val
-
-Hex: 0xD3
-Name: OP_getlocal3
-Frame: Load frame[3] as val
-Stack Out:
- val
-
-Hex: 0xD4
-Name: OP_setlocal0
-Frame: Store val as frame[0]
-Stack In:
- val
-Stack Out:
- .
-
-Hex: 0xD5
-Name: OP_setlocal1
-Frame: Store val as frame[1]
-Stack In:
- val
-Stack Out:
- .
-
-Hex: 0xD6
-Name: OP_setlocal2
-Frame: Store val as frame[2]
-Stack In:
- val
-Stack Out:
- .
-
-Hex: 0xD7
-Name: OP_setlocal3
-Frame: Store val as frame[3]
-Stack In:
- val
-Stack Out:
- .
-
-Hex: 0xD8
-Name: UNUSED
-
-Hex: 0xD9
-Name: UNUSED
-
-Hex: 0xDA
-Name: UNUSED
-
-Hex: 0xDB
-Name: UNUSED
-
-Hex: 0xDC
-Name: UNUSED
-
-Hex: 0xDD
-Name: UNUSED
-
-Hex: 0xDE
-Name: UNUSED
-
-Hex: 0xDF
-Name: UNUSED
-
-Hex: 0xE0
-Name: UNUSED
-
-Hex: 0xE1
-Name: UNUSED
-
-Hex: 0xE2
-Name: UNUSED
-
-Hex: 0xE3
-Name: UNUSED
-
-Hex: 0xE4
-Name: UNUSED
-
-Hex: 0xE5
-Name: UNUSED
-
-Hex: 0xE6
-Name: UNUSED
-
-Hex: 0xE7
-Name: UNUSED
-
-Hex: 0xE8
-Name: UNUSED
-
-Hex: 0xE9
-Name: UNUSED
-
-Hex: 0xEA
-Name: UNUSED
-
-Hex: 0xEB
-Name: UNUSED
-
-Hex: 0xEC
-Name: UNUSED
-
-Hex: 0xED
-Name: UNUSED
-
-Hex: 0xEE
-Name: OP_abs_jump
-NB: It is an error for this to appear.
-
-Hex: 0xEF
-Name: OP_debug
-Stream: 7 bytes of unknown stuff to be skipped
-Do: skip ahead 7 bytes in stream
-
-Hex: 0xF0
-Name: OP_debugline
-Stream: V32 'line_number'
-Do: Nothing, but line_number is for the debugger if wanted.
-
-Hex: 0xF1
-Name: OP_debugfile
-Stream: V32 'name_offset'
-Do: Nothing, but 'name_offset' into string pool is the file name if wanted.
-
-Hex: 0xF2
-Name: OP_bkptline
-Stream: V32 'line_number'
-Do: Enter debugger if present, line_number is the line number in source.
-
-Hex: 0xF3
-Name: OP_timestamp
-Do: Nothing.
-
-Hex: 0xF4
-Name: UNUSED
-
-Hex: 0xF5
-Name: OP_verifypass
-NB: It seems an error for this to appear.
-
-Hex: 0xF6
-Name: OP_alloc
-NB: Error to appear in ABC
-
-Hex: 0xF7
-Name: OP_mark
-NB: Error to appear in ABC
-
-Hex: 0xF8
-Name: OP_wb
-NB: Error to appear in ABC
-
-Hex: 0xF9
-Name: OP_prologue
-NB: Error to appear in ABC
-
-Hex: 0xFA
-Name: OP_sendenter
-NB: Error to appear in ABC
-
-Hex: 0xFB
-Name: OP_doubletoatom
-NB: Error to appear in ABC
-
-Hex: 0xFC
-Name: OP_sweep
-NB: Error to appear in ABC
-
-Hex: 0xFD
-Name: OP_codegenop
-NB: Error to appear in ABC
-
-Hex: 0xFE
-Name: OP_verifyop
-NB: Error to appear in ABC
-
-Hex: 0xFF
-Name: OP_decode
-NB: Error to appear in ABC
-~                                                                              
                                                                                
                                                
-~                                                                              
                                                                                
                                              




reply via email to

[Prev in Thread] Current Thread [Next in Thread]