Add a getter for value set with AllowCodeGenerationFromStrings
Review URL: https://chromiumcodereview.appspot.com/9223016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
f3f28b290d
commit
882ede3053
@ -3538,6 +3538,12 @@ class V8EXPORT Context {
|
||||
*/
|
||||
void AllowCodeGenerationFromStrings(bool allow);
|
||||
|
||||
/**
|
||||
* Returns true if code generation from strings is allowed for the context.
|
||||
* For more details see AllowCodeGenerationFromStrings(bool) documentation.
|
||||
*/
|
||||
bool IsCodeGenerationFromStringsAllowed();
|
||||
|
||||
/**
|
||||
* Stack-allocated class which sets the execution context for all
|
||||
* operations executed within a local scope.
|
||||
|
14
src/api.cc
14
src/api.cc
@ -4313,6 +4313,20 @@ void Context::AllowCodeGenerationFromStrings(bool allow) {
|
||||
}
|
||||
|
||||
|
||||
bool Context::IsCodeGenerationFromStringsAllowed() {
|
||||
i::Isolate* isolate = i::Isolate::Current();
|
||||
if (IsDeadCheck(isolate,
|
||||
"v8::Context::IsCodeGenerationFromStringsAllowed()")) {
|
||||
return false;
|
||||
}
|
||||
ENTER_V8(isolate);
|
||||
i::Object** ctx = reinterpret_cast<i::Object**>(this);
|
||||
i::Handle<i::Context> context =
|
||||
i::Handle<i::Context>::cast(i::Handle<i::Object>(ctx));
|
||||
return !context->allow_code_gen_from_strings()->IsFalse();
|
||||
}
|
||||
|
||||
|
||||
void V8::SetWrapperClassId(i::Object** global_handle, uint16_t class_id) {
|
||||
i::GlobalHandles::SetWrapperClassId(global_handle, class_id);
|
||||
}
|
||||
|
@ -15558,10 +15558,12 @@ THREADED_TEST(AllowCodeGenFromStrings) {
|
||||
LocalContext context;
|
||||
|
||||
// eval and the Function constructor allowed by default.
|
||||
CHECK(context->IsCodeGenerationFromStringsAllowed());
|
||||
CheckCodeGenerationAllowed();
|
||||
|
||||
// Disallow eval and the Function constructor.
|
||||
context->AllowCodeGenerationFromStrings(false);
|
||||
CHECK(!context->IsCodeGenerationFromStringsAllowed());
|
||||
CheckCodeGenerationDisallowed();
|
||||
|
||||
// Allow again.
|
||||
@ -15571,10 +15573,12 @@ THREADED_TEST(AllowCodeGenFromStrings) {
|
||||
// Disallow but setting a global callback that will allow the calls.
|
||||
context->AllowCodeGenerationFromStrings(false);
|
||||
V8::SetAllowCodeGenerationFromStringsCallback(&CodeGenerationAllowed);
|
||||
CHECK(!context->IsCodeGenerationFromStringsAllowed());
|
||||
CheckCodeGenerationAllowed();
|
||||
|
||||
// Set a callback that disallows the code generation.
|
||||
V8::SetAllowCodeGenerationFromStringsCallback(&CodeGenerationDisallowed);
|
||||
CHECK(!context->IsCodeGenerationFromStringsAllowed());
|
||||
CheckCodeGenerationDisallowed();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user