summaryrefslogtreecommitdiffstats
path: root/src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch')
-rw-r--r--src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch b/src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch
new file mode 100644
index 0000000000..396d1f7add
--- /dev/null
+++ b/src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch
@@ -0,0 +1,46 @@
+From a1572a979803dda787be4a7095d5c37e926443a7 Mon Sep 17 00:00:00 2001
+From: Aaron Kennedy <aaron.kennedy@nokia.com>
+Date: Fri, 9 Sep 2011 14:16:12 +1000
+Subject: [PATCH 07/11] Allow a script to be flagged as "native"
+
+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.
+---
+ include/v8.h | 5 +++--
+ src/compiler.cc | 2 +-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/include/v8.h b/include/v8.h
+index 6baf2b2..229ddbd 100644
+--- a/include/v8.h
++++ b/include/v8.h
+@@ -588,8 +588,9 @@ class ScriptOrigin {
+ class V8EXPORT Script {
+ public:
+ enum CompileFlags {
+- Default = 0x00,
+- QmlMode = 0x01
++ Default = 0x00,
++ QmlMode = 0x01,
++ NativeMode = 0x02
+ };
+
+ /**
+diff --git a/src/compiler.cc b/src/compiler.cc
+index 596df4a..b760b71 100644
+--- a/src/compiler.cc
++++ b/src/compiler.cc
+@@ -501,7 +501,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()) {
+--
+1.7.4.4
+