Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GNASH_BUILTIN_FUNCTION_H
00020 #define GNASH_BUILTIN_FUNCTION_H
00021
00022 #include "UserFunction.h"
00023 #include "as_environment.h"
00024 #include "fn_call.h"
00025
00026 #include <cassert>
00027
00028 namespace gnash {
00029
00030
00032
00036
00039 class builtin_function : public UserFunction
00040 {
00041 typedef as_value (*ASFunction)(const fn_call& fn);
00042
00043 public:
00044
00046
00052 builtin_function(Global_as& gl, ASFunction func)
00053 :
00054 UserFunction(gl),
00055 _func(func)
00056 {
00057 }
00058
00060
00062 virtual boost::uint8_t registers() const {
00063 return 0;
00064 }
00065
00067 virtual as_value call(const fn_call& fn)
00068 {
00069 FrameGuard guard(getVM(fn), *this);
00070
00071 assert(_func);
00072 return _func(fn);
00073 }
00074
00075 bool isBuiltin() { return true; }
00076
00077 private:
00078
00079 ASFunction _func;
00080 };
00081
00082 }
00083
00084 #endif
00085