 								}
 								return result; // break at top level
 							}
+							else if (method == operators[ST_THROW])
+							{
+								//TODO - find try/catch/finally
+								throw call.evaluatedParams[0];
+							}
 						}
 						else if (ASSIGN_OP_LOOKUP[method] && compiledParams.length == 2) // two params means local assignment
 						{

			JUMP_LOOKUP[operators[ST_BREAK]] = true;
			JUMP_LOOKUP[operators[ST_CONTINUE]] = true;
			JUMP_LOOKUP[operators[ST_RETURN]] = true;
			
			// fill assignment operator reverse-lookup dictionary
			for each (var assigOp:Function in assignmentOperators)

							result = method.apply(null, call.evaluatedParams);
						}
					}
					catch (e:*)
					{
						if (ignoreRuntimeErrors)
							result = undefined;
