ขอบคุณมีอะไรใหม่แนะนําด้วย
ในวันที่ วันอาทิตย์ที่ 28 มิถุนายน ค.ศ. 2020 เวลา 16 นาฬิกา 46 นาที 15 
วินาที UTC+7 oreng...@gmail.com เขียนว่า:

> + also call ShowProp("AA") & ShowProp("user)
>
> void ShowProp(const char * name)
> {
> v8::Local<v8::Value> val = v8::String::NewFromUtf8(m_Isolate, name);
> Local<Object> obj = val->ToObject(m_Context).ToLocalChecked();
> MaybeLocal<Array>  bb = obj->GetPropertyNames(m_Context);
>
> if (!bb.IsEmpty())
> {
> Local<Array>  arr = bb.ToLocalChecked();
> int len = arr->Length();
> for (uint32_t i = 0; i < len; ++i)
> {
> Local<Value> key = arr->Get(i);
> Local<Value> val = obj->Get(m_Context, key).ToLocalChecked();
>
> printProperty(val);
> }
> }
> }
>
> void printProperty(Local<Value> val)
> {
> if (val->IsName() || val->IsStringObject()) {
> v8::String::Utf8Value str(m_Isolate, val);
> std::string cppStr(*str);
> OutputDebugStringA(cppStr.c_str());
> }
> else if (val->IsNumberObject())
> {
> Maybe<double> db = val->NumberValue(m_Context);
> }
> else if (val->IsFunction())
> {
> Handle<v8::Function> func = v8::Handle<v8::Function>::Cast(val);
> if (func.IsEmpty())
> return ;
> }
> else if (val->IsArray())
> {
> Handle<v8::Array> array = v8::Handle<v8::Array>::Cast(val);
> int len = array->Length();
> for (int i = 0; i < len; ++i)
> {
> const Handle<Value> key = array->Get(i);
> printProperty(key);
> }
> }
> else if (val->IsObject())
> {
> bool a = val->IsObject();
> bool b = val->IsArgumentsObject();
>
> Local<Object> obj = val->ToObject(m_Context).ToLocalChecked();
> if (obj.IsEmpty())
> return;
> String::Utf8Value objascii(m_Isolate, obj);
>
> Handle<Array> properties = 
> obj->GetOwnPropertyNames(m_Context).ToLocalChecked();
> int len = properties->Length();
> if (len == 0)
> return;
>
> for (int i = 0; i < len; ++i)
> {
> const Handle<Value> key = properties->Get(i);
> printProperty(key);
> }
> }
> }
>
>
>
>
>
> On Friday, June 26, 2020 at 2:52:23 PM UTC+3, Oren Gavriel wrote:
>>
>> Hi 
>> After I compile a js source with v8, I would like to get the 
>> method/member per request  
>> Any idea how to do it ?
>>
>> For example for *user *i want to see : *User* & *sayHi *method and for 
>> *AA* i want to see the *Z* & *b* keys
>>
>> const char * src= ("const AA = {Z: 5, b : 6 } ;  class User { User() 
>> {alert('con');} sayHi() {alert('hi');}}  let user = new User()");
>> Local<v8::String> source = v8::String::NewFromUtf8(m_Isolate, src);
>> // Compile the script and check for errors.Local<Script> compiled_script;if 
>> (!Script::Compile(m_Context, source).ToLocal(&compiled_script)){
>> }
>> ...
>>
>> Thanks
>> Oren 
>>
>>

-- 
-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-users/f1bc0039-d667-435a-9f50-41ad07c917aan%40googlegroups.com.

Reply via email to