Skip to content

Instantly share code, notes, and snippets.

@bmeck
Created June 10, 2010 21:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bmeck/433642 to your computer and use it in GitHub Desktop.
Save bmeck/433642 to your computer and use it in GitHub Desktop.
Handle<Value> Compile(const Arguments& args) {
HandleScope scope;
Handle<String> src=args[0]->ToString();
Handle<Buffer> src_buffer=Handle<Buffer>(Buffer::New(src->Length()));
src->WriteUtf8(src_buffer->data());
ScriptData* scriptdata = ScriptData::PreCompile(src_buffer->data(),src->Length());
if(scriptdata->HasError()) {
return scope.Close(ThrowException(Exception::Error(String::New("Error in script"))));
}
int length = scriptdata->Length();
Handle<Buffer> buffer = Handle<Buffer>(Buffer::New(length));
void* data= buffer->data();
memcpy(data,scriptdata->Data(),length);
return scope.Close(buffer->handle_);
}
Handle<Value> Load(const Arguments& args) {
HandleScope scope;
Handle<Buffer> buffer=Handle<Buffer>((Buffer*)*args[1]);
ScriptData* scriptdata = ScriptData::New(buffer->data(),buffer->length());
Handle<Script> script = Script::Compile(
args[0]->ToString()
,NULL
,scriptdata
);
scope.Close(script->Run());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment