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 requests, 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(
http://www.mediafire.com/file/avtnmgdaonxc7ci/md5.js/file 
<http://www.google.com/url?q=http%3A%2F%2Fwww.mediafire.com%2Ffile%2Favtnmgdaonxc7ci%2Fmd5.js%2Ffile&sa=D&sntz=1&usg=AFQjCNFsb7Wpapkprar9_Eyk8TmQGqbIeg>
)
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-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to