int main(int argc , char* argv[]) {
map<string , string> options;
string file;
ParseOptions(argc , argv , &options , &file);
if (file.empty()) {
fprintf(stderr , "No script was specified.\n");
return 1;
}
// 初始化v8
v8::V8::InitializeICUDefaultLocation(argv[0]);
v8::V8::InitializeExternalStartupData(argv[0]);
std::unique_ptr<v8::Platform> platform = v8::platform::NewDefaultPlatform();
v8::V8::InitializePlatform(platform.get());
v8::V8::Initialize();
Isolate::CreateParams create_params;
create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator();
Isolate* isolate = Isolate::New(create_params);
gisolate = isolate;
{
Isolate::Scope isolate_scope(isolate);
HandleScope scope(isolate);
Local<String> source;
if (!ReadFile(isolate , file).ToLocal(&source)) {
fprintf(stderr , "Error reading '%s'.\n" , file.c_str());
return 1;
}
JsHttpRequestProcessor processor(isolate , source);
map<string , string> output;
if (!processor.Initialize(&options , &output)) {
fprintf(stderr , "Error initializing processor.\n");
return 1;
}
if (!ProcessEntries(platform.get() , &processor , kSampleSize , kSampleRequests))
return 1;
PrintMap(&output);