 				['*','/','%'],
 				['+','-'],
 				['<<','>>','>>>'],
-				['<','<=','>','>='],
+				['<','<=','>','>=','as','in','instanceof','is'],
 				['==','!=','===','!=='],
 				['&'],
 				['^'],

			// multiple commands
			operators[','] = function(...args):* { return args[args.length - 1]; };
			operators[';'] = operators[',']; // equivalent functionality but must be remembered as a different operator
			// assignment operators -- first arg is host object, last arg is new value, remaining args are a chain of property names
			assignmentOperators['=']    = function(o:*, ...a):* { for (var i:int = 0; i < a.length - 2; i++) o = o[a[i]]; return o[a[i]] =    a[i + 1]; };
			assignmentOperators['+=']   = function(o:*, ...a):* { for (var i:int = 0; i < a.length - 2; i++) o = o[a[i]]; return o[a[i]] +=   a[i + 1]; };

				}
			};
			constants['iif'] = function(c:*, t:*, f:*):* { return c ? t : f; };
			// for trace debugging, debug must be set to true
			if (debug)
				constants['trace'] = function(...args):void { trace.apply(null, args); };
