Hello,
I am trying to make a program in visual c/c++ for configuring a specific vendor modem via http(s). For this purpose, I am trying and testing with v8, I need to take some variable values at runtime and use them in the next POST or GET, but no luck with v8. There are several javascript files downloaded from devices, but all of them even fail to compile.They does not seem to have any error from from an editor, are not modifiable because every time it is retrieved from modem. There are not problems configuring modems from popular browsers, chrome included; they don't find errors. e.g. It is a file md5.js downloaded from modem(in attach) I begin from hello_world sample modified a little with shell example: adding ReportException function in order to take more information from compile fails: *G:\c++\projects\v8hello\x64\Debug>v8helloundefined:260: SyntaxError: Unexpected token >> 8 * ((i+1)%4)) & 0xFF) << 8 )^SyntaxError: Unexpected token >* where this is line 249(not 260): (((binarray[i+1 >> 2] *>>* 8 * ((i+1)%4)) & 0xFF) << 8 ) , and I cannot find any error there, brackets seem ok etc. The bitwise shift right is the problem, but why ? There bitwise shift right & left before this statement, but they do not take attention of the compiler. the source is: *// Copyright 2015 the V8 project authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.#include <stdio.h>#include <stdlib.h>#include <string.h>#include <io.h>#include <fcntl.h>#include <libplatform/libplatform.h>#include <v8.h>void ReportException(v8::Isolate* isolate, v8::TryCatch* handler);const char* ToCString(const v8::String::Utf8Value& value) { return *value ? *value : "<string conversion failed>";}void ReportException(v8::Isolate* isolate, v8::TryCatch* try_catch) { v8::HandleScope handle_scope(isolate); v8::String::Utf8Value exception(isolate, try_catch->Exception()); const char* exception_string = ToCString(exception); v8::Local<v8::Message> message = try_catch->Message(); if (message.IsEmpty()) { // V8 didn't provide any extra information about this error; just // print the exception. fprintf(stderr, "%s\n", exception_string); } else { // Print (filename):(line number): (message). v8::String::Utf8Value filename(isolate, message->GetScriptOrigin().ResourceName()); v8::Local<v8::Context> context(isolate->GetCurrentContext()); const char* filename_string = ToCString(filename); int linenum = message->GetLineNumber(context).FromJust(); fprintf(stderr, "%s:%i: %s\n", filename_string, linenum, exception_string); // Print line of source code. v8::String::Utf8Value sourceline( isolate, message->GetSourceLine(context).ToLocalChecked()); const char* sourceline_string = ToCString(sourceline); fprintf(stderr, "%s\n", sourceline_string); // Print wavy underline (GetUnderline is deprecated). int start = message->GetStartColumn(context).FromJust(); for (int i = 0; i < start; i++) { fprintf(stderr, " "); } int end = message->GetEndColumn(context).FromJust(); for (int i = start; i < end; i++) { fprintf(stderr, "^"); } fprintf(stderr, "\n"); v8::Local<v8::Value> stack_trace_string; if (try_catch->StackTrace(context).ToLocal(&stack_trace_string) && stack_trace_string->IsString() && v8::Local<v8::String>::Cast(stack_trace_string)->Length() > 0) { v8::String::Utf8Value stack_trace(isolate, stack_trace_string); const char* stack_trace_string = ToCString(stack_trace); fprintf(stderr, "%s\n", stack_trace_string); } }}int main(int argc, char* argv[]) { // Initialize 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(); // Create a new Isolate and make it the current one. v8::Isolate::CreateParams create_params; create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator(); v8::Isolate* isolate = v8::Isolate::New(create_params); { v8::Isolate::Scope isolate_scope(isolate); // Create a stack-allocated handle scope. v8::HandleScope handle_scope(isolate); v8::TryCatch try_catch(isolate); // Create a new context. v8::Local<v8::Context> context = v8::Context::New(isolate); // Enter the context for compiling and running the hello world script. v8::Context::Scope context_scope(context); { // Create a string containing the JavaScript source code. int fd = open("G:\\md5.js", _O_RDWR, _S_IREAD); char bfx[200001]; int nr = read(fd, bfx, 200000); close(fd); v8::Local<v8::String> source = v8::String::NewFromUtf8(isolate, bfx, v8::NewStringType::kNormal) .ToLocalChecked(); // Compile the source code. /* v8::Local<v8::Script> script = v8::Script::Compile(context, source).ToLocalChecked();*/ v8::Local<v8::Script> script; if (!v8::Script::Compile(context, source).ToLocal(&script)) { ReportException(isolate, &try_catch); return -1; } // Run the script to get the result. v8::Local<v8::Value> result = script->Run(context).ToLocalChecked(); // Convert the result to an UTF8 string and print it. v8::String::Utf8Value utf8(isolate, result); printf("%s\n", *utf8); } } // Dispose the isolate and tear down V8. isolate->Dispose(); v8::V8::Dispose(); v8::V8::ShutdownPlatform(); delete create_params.array_buffer_allocator; return 0;}* -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.