Version 3.20.7

Deprecated some debugger methods.

Fixed wrong bailout id in polymorphic stores (Chromium issue 259787).

Fixed data race in SamplingCircularQueue (Chromium issue 251218).

Fixed type feedback in presence of negative lookups (Chromium issue 252797).

Do not materialize context-allocated values for debug-evaluate (Chromium issue 259300).

Synchronized Compare-Literal behavior in FullCodegen and Hydrogen (Chromium issue 260345).

Performance and stability improvements on all platforms.

git-svn-id: http://v8.googlecode.com/svn/trunk@15795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/platform-linux.cc b/src/platform-linux.cc
index ace4056..613d243 100644
--- a/src/platform-linux.cc
+++ b/src/platform-linux.cc
@@ -594,7 +594,13 @@
   }
   void* addr = mmap(OS::GetRandomMmapAddr(),
                     size,
+#if defined(__native_client__)
+                    // The Native Client port of V8 uses an interpreter,
+                    // so code pages don't need PROT_EXEC.
+                    PROT_READ,
+#else
                     PROT_READ | PROT_EXEC,
+#endif
                     MAP_PRIVATE,
                     fileno(f),
                     0);
@@ -717,7 +723,13 @@
 
 
 bool VirtualMemory::CommitRegion(void* base, size_t size, bool is_executable) {
+#if defined(__native_client__)
+  // The Native Client port of V8 uses an interpreter,
+  // so code pages don't need PROT_EXEC.
+  int prot = PROT_READ | PROT_WRITE;
+#else
   int prot = PROT_READ | PROT_WRITE | (is_executable ? PROT_EXEC : 0);
+#endif
   if (MAP_FAILED == mmap(base,
                          size,
                          prot,