# Enable compiler warnings when using V8_DEPRECATED apis.
'v8_deprecation_warnings%': 0,
-
- # Use the v8 provided v8::Platform implementation.
- 'v8_use_default_platform%': 1,
},
'target_defaults': {
'conditions': [
['v8_enable_i18n_support==1', {
'defines': ['V8_I18N_SUPPORT',],
}],
- ['v8_use_default_platform==1', {
- 'defines': ['V8_USE_DEFAULT_PLATFORM',],
- }],
['v8_compress_startup_data=="bz2"', {
'defines': [
'COMPRESS_STARTUP_DATA_BZ2',
+++ /dev/null
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef V8_V8_PLATFORM_H_
-#define V8_V8_PLATFORM_H_
-
-#include "v8.h"
-
-namespace v8 {
-
-/**
- * A Task represents a unit of work.
- */
-class Task {
- public:
- virtual ~Task() {}
-
- virtual void Run() = 0;
-};
-
-/**
- * V8 Platform abstraction layer.
- *
- * The embedder has to provide an implementation of this interface before
- * initializing the rest of V8.
- */
-class Platform {
- public:
- /**
- * Schedules a task to be invoked on a background thread. |task_is_slow|
- * indicates that the task will run a long time. The Platform implementation
- * takes ownership of |task|. There is no guarantee about order of execution
- * of tasks wrt order of scheduling, nor is there a guarantee about the
- * thread the task will be run on.
- */
- virtual void CallOnBackgroundThread(Task* task, bool task_is_slow) = 0;
-
- /**
- * Schedules a task to be invoked on a foreground thread wrt a specific
- * |isolate|. Tasks posted for the same isolate should be execute in order of
- * scheduling. The definition of "foreground" is opaque to V8.
- */
- virtual void CallOnForegroundThread(Isolate* isolate, Task* task) = 0;
-
- protected:
- virtual ~Platform() {}
-};
-
-} // namespace v8
-
-#endif // V8_V8_PLATFORM_H_
class Object;
class ObjectOperationDescriptor;
class ObjectTemplate;
-class Platform;
class Primitive;
class RawOperationDescriptor;
class Signature;
*/
static bool InitializeICU();
- /**
- * Sets the v8::Platform to use. This should be invoked before V8 is
- * initialized.
- */
- static void InitializePlatform(Platform* platform);
-
- /**
- * Clears all references to the v8::Platform. This should be invoked after
- * V8 was disposed.
- */
- static void ShutdownPlatform();
-
private:
V8();
#include "counters.h"
#include "cpu-profiler.h"
#include "debug.h"
-#ifdef V8_USE_DEFAULT_PLATFORM
-#include "default-platform.h"
-#endif
#include "deoptimizer.h"
#include "execution.h"
#include "global-handles.h"
// --- E n v i r o n m e n t ---
-void v8::V8::InitializePlatform(Platform* platform) {
-#ifdef V8_USE_DEFAULT_PLATFORM
- FATAL("Can't override v8::Platform when using default implementation");
-#else
- i::V8::InitializePlatform(platform);
-#endif
-}
-
-
-void v8::V8::ShutdownPlatform() {
-#ifdef V8_USE_DEFAULT_PLATFORM
- FATAL("Can't override v8::Platform when using default implementation");
-#else
- i::V8::ShutdownPlatform();
-#endif
-}
-
-
bool v8::V8::Initialize() {
i::Isolate* isolate = i::Isolate::UncheckedCurrent();
if (isolate != NULL && isolate->IsInitialized()) {
return true;
}
-#ifdef V8_USE_DEFAULT_PLATFORM
- i::V8::InitializePlatform(new i::DefaultPlatform);
-#endif
return InitializeHelper(isolate);
}
return false;
}
i::V8::TearDown();
-#ifdef V8_USE_DEFAULT_PLATFORM
- i::DefaultPlatform* platform =
- static_cast<i::DefaultPlatform*>(i::V8::GetCurrentPlatform());
- i::V8::ShutdownPlatform();
- delete platform;
-#endif
return true;
}
+++ /dev/null
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include "v8.h"
-
-#include "default-platform.h"
-
-namespace v8 {
-namespace internal {
-
-
-DefaultPlatform::DefaultPlatform() {}
-
-
-DefaultPlatform::~DefaultPlatform() {}
-
-void DefaultPlatform::CallOnBackgroundThread(Task *task, bool task_is_slow) {
- // TODO(jochen): implement.
- task->Run();
- delete task;
-}
-
-
-void DefaultPlatform::CallOnForegroundThread(v8::Isolate* isolate, Task* task) {
- // TODO(jochen): implement.
- task->Run();
- delete task;
-}
-
-
-} } // namespace v8::internal
+++ /dev/null
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef V8_DEFAULT_PLATFORM_H_
-#define V8_DEFAULT_PLATFORM_H_
-
-#include "v8.h"
-
-namespace v8 {
-namespace internal {
-
-class DefaultPlatform : public Platform {
- public:
- DefaultPlatform();
- virtual ~DefaultPlatform();
-
- // v8::Platform implementation.
- virtual void CallOnBackgroundThread(Task *task,
- bool task_is_slow) V8_OVERRIDE;
- virtual void CallOnForegroundThread(v8::Isolate *isolate,
- Task *task) V8_OVERRIDE;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DefaultPlatform);
-};
-
-
-} } // namespace v8::internal
-
-
-#endif // V8_DEFAULT_PLATFORM_H_
List<CallCompletedCallback>* V8::call_completed_callbacks_ = NULL;
v8::ArrayBuffer::Allocator* V8::array_buffer_allocator_ = NULL;
-v8::Platform* V8::platform_ = NULL;
bool V8::Initialize(Deserializer* des) {
CallOnce(&init_once, &InitializeOncePerProcessImpl);
}
-
-void V8::InitializePlatform(v8::Platform* platform) {
- ASSERT(platform);
- platform_ = platform;
-}
-
-
-void V8::ShutdownPlatform() {
- ASSERT(platform_);
- platform_ = NULL;
-}
-
-
-v8::Platform* V8::GetCurrentPlatform() {
- ASSERT(platform_);
- return platform_;
-}
-
} } // namespace v8::internal
// Basic includes
#include "../include/v8.h"
-#include "../include/v8-platform.h"
#include "v8globals.h"
#include "v8checks.h"
#include "allocation.h"
array_buffer_allocator_ = allocator;
}
- static void InitializePlatform(v8::Platform* platform);
- static void ShutdownPlatform();
- static v8::Platform* GetCurrentPlatform();
-
private:
static void InitializeOncePerProcessImpl();
static void InitializeOncePerProcess();
static List<CallCompletedCallback>* call_completed_callbacks_;
// Allocator for external array buffers.
static v8::ArrayBuffer::Allocator* array_buffer_allocator_;
- // v8::Platform to use.
- static v8::Platform* platform_;
};
'../../src/debug-agent.h',
'../../src/debug.cc',
'../../src/debug.h',
- '../../src/default-platform.cc',
- '../../src/default-platform.h',
'../../src/deoptimizer.cc',
'../../src/deoptimizer.h',
'../../src/disasm.h',
'<(icu_gyp_path):icudata',
],
}],
- ['v8_use_default_platform==0', {
- 'sources!': [
- '../../src/default-platform.cc',
- '../../src/default-platform.h',
- ],
- }],
],
},
{