by the way, the same restriction exists for es6-style class definitions.
On Monday, April 3, 2017 at 10:48:56 PM UTC-7, Zac Hansen wrote: > > I'm nearly certain you cannot -- and I don't even believe they're > guaranteed to actually ever exist. It would put pretty serious limitations > on the optimizer if everything in a block had to exist as written. > > > > > On Monday, April 3, 2017 at 8:02:28 PM UTC-7, Ian Bull wrote: >> >> In J2V8 (our Java bindings for V8 [1]) we provide access to objects >> defined in the global scope. >> >> [1] https://github.com/eclipsesource/j2v8 >> >> In Java you can write: >> >> v8.executeScript("var foo = [1,2,3]"); >> >> V8Array array = (V8Array) v8.get("foo"); >> >> >> v8 in this case is the the isolate, and when we create the isolate we >> provide a Persistent<Object> >> >> that matches the global scope: >> >> >> Handle<Context> context = Context::New(runtime->isolate, NULL, >> globalObject); >> >> runtime->context_.Reset(runtime->isolate, context); >> >> runtime->globalObject = new Persistent<Object>; >> >> runtime->globalObject->Reset(runtime->isolate, context->Global()); >> >> >> We can then access the objects using: >> >> Handle<Object> object = Local<Object>::New(isolate, >> *reinterpret_cast<Persistent<Object>*>(objectHandle)); >> >> Local<String> v8Key = createV8String(env, isolate, key); >> >> MaybeLocal<Value> result = object->Get(context, v8Key); >> >> >> Where v8Key is the identifier ("foo" in this case), and object is the >> globalObject. >> >> >> If we change the JavaScript to: >> >> "let foo = [1,2,3]" (notice let instead of var) this code returns >> Undefined. I'm not a JS expert >> >> (I just write bindings), but I guess this is because let defines a block >> scoped variable, whereas >> >> var is not. Can we access these blocked scoped (ES6) variables using the >> V8 API? I would like >> >> to expose this to users of the J2V8 bindings. >> >> >> Thanks, >> >> Ian >> > -- -- 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.