1.1 --- a/jitcraft/API.cpp Tue Jul 10 02:11:13 2012 -0700
1.2 +++ b/jitcraft/API.cpp Wed Jul 11 01:12:54 2012 -0700
1.3 @@ -29,6 +29,7 @@
1.4 #include "Reference.h"
1.5 #include "Array.h"
1.6 #include "Interpreter.h"
1.7 +#include "Stack.h"
1.8
1.9 using namespace ke;
1.10
1.11 @@ -115,7 +116,7 @@
1.12 Ke::Compile(const char *path)
1.13 {
1.14 RootScope roots(ZONE());
1.15 - CompileContext cc(ZONE());
1.16 + CompileContext cc(ZONE(), path);
1.17
1.18 char *bytes = NULL;
1.19 size_t length;
1.20 @@ -157,6 +158,49 @@
1.21 return ToLocal<ke::Module, Ke::Module>(module);
1.22 }
1.23
1.24 +void
1.25 +Ke::Keima::InstallMessageReporter(Ke::IMessageReporter *reporter)
1.26 +{
1.27 + ZONE()->installErrorReporter(reporter);
1.28 +}
1.29 +
1.30 +class StackFrameIterator : public Ke::IStackFrameIterator
1.31 +{
1.32 + StackIter iter_;
1.33 +
1.34 + public:
1.35 + StackFrameIterator()
1.36 + : iter_(ZONE())
1.37 + {
1.38 + }
1.39 +
1.40 + virtual bool done() {
1.41 + return iter_.done();
1.42 + }
1.43 +
1.44 + const char *function() {
1.45 + return iter_.function();
1.46 + }
1.47 +
1.48 + const char *source() {
1.49 + return iter_.source();
1.50 + }
1.51 +
1.52 + unsigned lineNumber() {
1.53 + return iter_.lineNumber();
1.54 + }
1.55 +
1.56 + void prev() {
1.57 + iter_.prev();
1.58 + }
1.59 +};
1.60 +
1.61 +Ke::IStackFrameIterator *
1.62 +Ke::Keima::NewStackFrameIterator()
1.63 +{
1.64 + return new StackFrameIterator();
1.65 +}
1.66 +
1.67 static inline ke::HeapRoot *
1.68 FromAPI(ke::HeapRoot *from)
1.69 {