[V8] Allow a script to be flagged as "native"
authorAaron Kennedy <aaron.kennedy@nokia.com>
Fri, 9 Sep 2011 04:16:12 +0000 (14:16 +1000)
committerQt by Nokia <qt-info@nokia.com>
Wed, 13 Jun 2012 07:57:03 +0000 (09:57 +0200)
Native scripts do not appear in backtraces, or in the source and
line number when exceptions are thrown from within them.  This is
useful to be able to write code in JavaScript instead of C++ and
still have it appear sensibly to the user.

Change-Id: I0a772f7bdde24257b0aa19216b932f6a546ab918
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
src/3rdparty/v8/include/v8.h
src/3rdparty/v8/src/compiler.cc

index d79b1c3..fbb348f 100644 (file)
@@ -591,8 +591,9 @@ class ScriptOrigin {
 class V8EXPORT Script {
  public:
   enum CompileFlags {
-      Default = 0x00,
-      QmlMode = 0x01
+      Default    = 0x00,
+      QmlMode    = 0x01,
+      NativeMode = 0x02
   };
 
   /**
index 88b477d..4060b15 100644 (file)
@@ -508,7 +508,7 @@ Handle<SharedFunctionInfo> Compiler::Compile(Handle<String> source,
 
     // Create a script object describing the script to be compiled.
     Handle<Script> script = FACTORY->NewScript(source);
-    if (natives == NATIVES_CODE) {
+    if (natives == NATIVES_CODE || compile_flags & v8::Script::NativeMode) {
       script->set_type(Smi::FromInt(Script::TYPE_NATIVE));
     }
     if (!script_name.is_null()) {