Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index b621f0110a519378621cae992e59f6ddc8635049..6ba8859ef405acde38bad6f67ae4abe0bc5bebce 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -115,7 +115,7 @@ class Isolate; |
} |
-// --- W e a k H a n d l e s |
+// --- Weak Handles --- |
/** |
@@ -131,7 +131,7 @@ typedef void (*WeakReferenceCallback)(Persistent<Value> object, |
void* parameter); |
-// --- H a n d l e s --- |
+// --- Handles --- |
#define TYPE_CHECK(T, S) \ |
while (false) { \ |
@@ -483,7 +483,7 @@ class V8EXPORT HandleScope { |
}; |
-// --- S p e c i a l o b j e c t s --- |
+// --- Special objects --- |
/** |
@@ -841,7 +841,7 @@ class V8EXPORT StackFrame { |
}; |
-// --- V a l u e --- |
+// --- Value --- |
/** |
@@ -1783,7 +1783,7 @@ class External : public Value { |
}; |
-// --- T e m p l a t e s --- |
+// --- Templates --- |
/** |
@@ -2317,7 +2317,7 @@ class V8EXPORT TypeSwitch : public Data { |
}; |
-// --- E x t e n s i o n s --- |
+// --- Extensions --- |
/** |
@@ -2369,7 +2369,7 @@ class V8EXPORT DeclareExtension { |
}; |
-// --- S t a t i c s --- |
+// --- Statics --- |
Handle<Primitive> V8EXPORT Undefined(); |
@@ -2410,7 +2410,7 @@ class V8EXPORT ResourceConstraints { |
bool V8EXPORT SetResourceConstraints(ResourceConstraints* constraints); |
-// --- E x c e p t i o n s --- |
+// --- Exceptions --- |
typedef void (*FatalErrorCallback)(const char* location, const char* message); |
@@ -2441,7 +2441,7 @@ class V8EXPORT Exception { |
}; |
-// --- C o u n t e r s C a l l b a c k s --- |
+// --- Counters Callbacks --- |
typedef int* (*CounterLookupCallback)(const char* name); |
@@ -2452,7 +2452,7 @@ typedef void* (*CreateHistogramCallback)(const char* name, |
typedef void (*AddHistogramSampleCallback)(void* histogram, int sample); |
-// --- M e m o r y A l l o c a t i o n C a l l b a c k --- |
+// --- Memory Allocation Callback --- |
enum ObjectSpace { |
kObjectSpaceNewSpace = 1 << 0, |
kObjectSpaceOldPointerSpace = 1 << 1, |
@@ -2476,12 +2476,20 @@ typedef void (*MemoryAllocationCallback)(ObjectSpace space, |
AllocationAction action, |
int size); |
-// --- F a i l e d A c c e s s C h e c k C a l l b a c k --- |
+// --- Failed Access Check Callback --- |
typedef void (*FailedAccessCheckCallback)(Local<Object> target, |
AccessType type, |
Local<Value> data); |
-// --- G a r b a g e C o l l e c t i o n C a l l b a c k s |
+// --- AllowCodeGenerationFromStrings callbacks --- |
+ |
+/** |
+ * Callback to check if code generation from strings is allowed. See |
+ * Context::AllowCodeGenerationFromStrings. |
+ */ |
+typedef bool (*AllowCodeGenerationFromStringsCallback)(Local<Context> context); |
+ |
+// --- Garbage Collection Callbacks --- |
/** |
* Applications can register callback functions which will be called |
@@ -2662,6 +2670,13 @@ class V8EXPORT V8 { |
static void SetFatalErrorHandler(FatalErrorCallback that); |
/** |
+ * Set the callback to invoke to check if code generation from |
+ * strings should be allowed. |
+ */ |
+ static void SetAllowCodeGenerationFromStringsCallback( |
+ AllowCodeGenerationFromStringsCallback that); |
+ |
+ /** |
* Ignore out-of-memory exceptions. |
* |
* V8 running out of memory is treated as a fatal error by default. |
@@ -3189,7 +3204,7 @@ class V8EXPORT TryCatch { |
}; |
-// --- C o n t e x t --- |
+// --- Context --- |
/** |
@@ -3325,6 +3340,21 @@ class V8EXPORT Context { |
Local<Value> GetData(); |
/** |
+ * Control whether code generation from strings is allowed. Calling |
+ * this method with false will disable 'eval' and the 'Function' |
+ * constructor for code running in this context. If 'eval' or the |
+ * 'Function' constructor are used an exception will be thrown. |
+ * |
+ * If code generation from strings is not allowed the |
+ * V8::AllowCodeGenerationFromStrings callback will be invoked if |
+ * set before blocking the call to 'eval' or the 'Function' |
+ * constructor. If that callback returns true, the call will be |
+ * allowed, otherwise an exception will be thrown. If no callback is |
+ * set an exception will be thrown. |
+ */ |
+ void AllowCodeGenerationFromStrings(bool allow); |
+ |
+ /** |
* Stack-allocated class which sets the execution context for all |
* operations executed within a local scope. |
*/ |
@@ -3520,7 +3550,7 @@ class V8EXPORT ActivityControl { // NOLINT |
}; |
-// --- I m p l e m e n t a t i o n --- |
+// --- Implementation --- |
namespace internal { |