[英]Why does creating new v8::Array before v8::Scope cause segmentation fault, but v8::String and v8::FunctionTemplate do not?
[英]V8: create new variable scope
在JavaScript中,當我輸入一個新函數時,會得到一個新的局部變量作用域。 例如:
function f() {
var x = 42; // this is in our local variable scope
// other code
}
我現在想在V8中做同樣的事情。 我還有other code
作為String
,並通過Script::Compile
,並通過Script::Run
。
現在,我創建了一個新的Context
但是我認為這完全是矯kill過正。 這也意味着我必須在新的上下文中重新初始化全局變量。
如果我理解正確,那么我想假設您希望使C ++輔助腳本在新的隔離上下文中運行,因為您不希望它意外地別名或修改全局環境。 在這種情況下,在執行代碼之前,請執行以下操作:
std::string sScopedCode = "(function(){" + sYourCode + "})();"
這樣可以確保sYourCode中的代碼與您可能進行的其他調用保持隔離。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.