v8  3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
d8.h
Go to the documentation of this file.
1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are
4 // met:
5 //
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided
11 // with the distribution.
12 // * Neither the name of Google Inc. nor the names of its
13 // contributors may be used to endorse or promote products derived
14 // from this software without specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 
28 #ifndef V8_D8_H_
29 #define V8_D8_H_
30 
31 #ifndef V8_SHARED
32 #include "allocation.h"
33 #include "hashmap.h"
34 #include "smart-pointers.h"
35 #include "v8.h"
36 #else
37 #include "../include/v8.h"
38 #endif // V8_SHARED
39 
40 namespace v8 {
41 
42 
43 #ifndef V8_SHARED
44 // A single counter in a counter collection.
45 class Counter {
46  public:
47  static const int kMaxNameSize = 64;
48  int32_t* Bind(const char* name, bool histogram);
49  int32_t* ptr() { return &count_; }
50  int32_t count() { return count_; }
51  int32_t sample_total() { return sample_total_; }
52  bool is_histogram() { return is_histogram_; }
53  void AddSample(int32_t sample);
54  private:
55  int32_t count_;
56  int32_t sample_total_;
57  bool is_histogram_;
58  uint8_t name_[kMaxNameSize];
59 };
60 
61 
62 // A set of counters and associated information. An instance of this
63 // class is stored directly in the memory-mapped counters file if
64 // the --map-counters options is used
66  public:
69  private:
70  static const unsigned kMaxCounters = 512;
71  uint32_t magic_number_;
72  uint32_t max_counters_;
73  uint32_t max_name_size_;
74  uint32_t counters_in_use_;
75  Counter counters_[kMaxCounters];
76 };
77 
78 
79 class CounterMap {
80  public:
81  CounterMap(): hash_map_(Match) { }
82  Counter* Lookup(const char* name) {
83  i::HashMap::Entry* answer = hash_map_.Lookup(
84  const_cast<char*>(name),
85  Hash(name),
86  false);
87  if (!answer) return NULL;
88  return reinterpret_cast<Counter*>(answer->value);
89  }
90  void Set(const char* name, Counter* value) {
91  i::HashMap::Entry* answer = hash_map_.Lookup(
92  const_cast<char*>(name),
93  Hash(name),
94  true);
95  ASSERT(answer != NULL);
96  answer->value = value;
97  }
98  class Iterator {
99  public:
100  explicit Iterator(CounterMap* map)
101  : map_(&map->hash_map_), entry_(map_->Start()) { }
102  void Next() { entry_ = map_->Next(entry_); }
103  bool More() { return entry_ != NULL; }
104  const char* CurrentKey() { return static_cast<const char*>(entry_->key); }
105  Counter* CurrentValue() { return static_cast<Counter*>(entry_->value); }
106  private:
107  i::HashMap* map_;
108  i::HashMap::Entry* entry_;
109  };
110 
111  private:
112  static int Hash(const char* name);
113  static bool Match(void* key1, void* key2);
114  i::HashMap hash_map_;
115 };
116 #endif // V8_SHARED
117 
118 
119 class LineEditor {
120  public:
121  enum Type { DUMB = 0, READLINE = 1 };
122  LineEditor(Type type, const char* name);
123  virtual ~LineEditor() { }
124 
125  virtual Handle<String> Prompt(const char* prompt) = 0;
126  virtual bool Open() { return true; }
127  virtual bool Close() { return true; }
128  virtual void AddHistory(const char* str) { }
129 
130  const char* name() { return name_; }
131  static LineEditor* Get();
132  private:
133  Type type_;
134  const char* name_;
135  LineEditor* next_;
136  static LineEditor* first_;
137 };
138 
139 
140 class SourceGroup {
141  public:
143 #ifndef V8_SHARED
144  next_semaphore_(v8::internal::OS::CreateSemaphore(0)),
145  done_semaphore_(v8::internal::OS::CreateSemaphore(0)),
146  thread_(NULL),
147 #endif // V8_SHARED
148  argv_(NULL),
149  begin_offset_(0),
150  end_offset_(0) {}
151 
152  ~SourceGroup();
153 
154  void Begin(char** argv, int offset) {
155  argv_ = const_cast<const char**>(argv);
156  begin_offset_ = offset;
157  }
158 
159  void End(int offset) { end_offset_ = offset; }
160 
161  void Execute();
162 
163 #ifndef V8_SHARED
164  void StartExecuteInThread();
165  void WaitForThread();
166 
167  private:
168  class IsolateThread : public i::Thread {
169  public:
170  explicit IsolateThread(SourceGroup* group)
171  : i::Thread(GetThreadOptions()), group_(group) {}
172 
173  virtual void Run() {
174  group_->ExecuteInThread();
175  }
176 
177  private:
178  SourceGroup* group_;
179  };
180 
181  static i::Thread::Options GetThreadOptions();
182  void ExecuteInThread();
183 
184  i::Semaphore* next_semaphore_;
185  i::Semaphore* done_semaphore_;
186  i::Thread* thread_;
187 #endif // V8_SHARED
188 
189  void ExitShell(int exit_code);
190  Handle<String> ReadFile(const char* name);
191 
192  const char** argv_;
193  int begin_offset_;
194  int end_offset_;
195 };
196 
197 
199  public:
200  BinaryResource(const char* string, int length)
201  : data_(string),
202  length_(length) { }
203 
205  delete[] data_;
206  data_ = NULL;
207  length_ = 0;
208  }
209 
210  virtual const char* data() const { return data_; }
211  virtual size_t length() const { return length_; }
212 
213  private:
214  const char* data_;
215  size_t length_;
216 };
217 
218 
220  public:
222 #ifndef V8_SHARED
227 #endif // V8_SHARED
229  last_run(true),
231  stress_opt(false),
234  test_shell(false),
235  num_isolates(1),
236  isolate_sources(NULL) { }
237 
239 #ifndef V8_SHARED
240  delete[] parallel_files;
241 #endif // V8_SHARED
242  delete[] isolate_sources;
243  }
244 
245 #ifndef V8_SHARED
250 #endif // V8_SHARED
252  bool last_run;
260 };
261 
262 #ifdef V8_SHARED
263 class Shell {
264 #else
265 class Shell : public i::AllStatic {
266 #endif // V8_SHARED
267 
268  public:
269  static bool ExecuteString(Handle<String> source,
270  Handle<Value> name,
271  bool print_result,
272  bool report_exceptions);
273  static const char* ToCString(const v8::String::Utf8Value& value);
274  static void ReportException(TryCatch* try_catch);
275  static Handle<String> ReadFile(const char* name);
277  static int RunMain(int argc, char* argv[]);
278  static int Main(int argc, char* argv[]);
279  static void Exit(int exit_code);
280 
281 #ifndef V8_SHARED
283  Handle<String> full);
284  static void OnExit();
285  static int* LookupCounter(const char* name);
286  static void* CreateHistogram(const char* name,
287  int min,
288  int max,
289  size_t buckets);
290  static void AddHistogramSample(void* histogram, int sample);
291  static void MapCounters(const char* name);
292 
293 #ifdef ENABLE_DEBUGGER_SUPPORT
294  static Handle<Object> DebugMessageDetails(Handle<String> message);
295  static Handle<Value> DebugCommandToJSONRequest(Handle<String> command);
296  static void DispatchDebugMessages();
297 #endif // ENABLE_DEBUGGER_SUPPORT
298 #endif // V8_SHARED
299 
300 #ifdef WIN32
301 #undef Yield
302 #endif
303 
304  static Handle<Value> Print(const Arguments& args);
305  static Handle<Value> Write(const Arguments& args);
306  static Handle<Value> Yield(const Arguments& args);
307  static Handle<Value> Quit(const Arguments& args);
308  static Handle<Value> Version(const Arguments& args);
309  static Handle<Value> EnableProfiler(const Arguments& args);
310  static Handle<Value> DisableProfiler(const Arguments& args);
311  static Handle<Value> Read(const Arguments& args);
312  static Handle<Value> ReadBuffer(const Arguments& args);
313  static Handle<String> ReadFromStdin();
314  static Handle<Value> ReadLine(const Arguments& args) {
315  return ReadFromStdin();
316  }
317  static Handle<Value> Load(const Arguments& args);
318  static Handle<Value> ArrayBuffer(const Arguments& args);
319  static Handle<Value> Int8Array(const Arguments& args);
320  static Handle<Value> Uint8Array(const Arguments& args);
321  static Handle<Value> Int16Array(const Arguments& args);
322  static Handle<Value> Uint16Array(const Arguments& args);
323  static Handle<Value> Int32Array(const Arguments& args);
324  static Handle<Value> Uint32Array(const Arguments& args);
325  static Handle<Value> Float32Array(const Arguments& args);
326  static Handle<Value> Float64Array(const Arguments& args);
327  static Handle<Value> Uint8ClampedArray(const Arguments& args);
328  static Handle<Value> ArrayBufferSlice(const Arguments& args);
329  static Handle<Value> ArraySubArray(const Arguments& args);
330  static Handle<Value> ArraySet(const Arguments& args);
331  // The OS object on the global object contains methods for performing
332  // operating system calls:
333  //
334  // os.system("program_name", ["arg1", "arg2", ...], timeout1, timeout2) will
335  // run the command, passing the arguments to the program. The standard output
336  // of the program will be picked up and returned as a multiline string. If
337  // timeout1 is present then it should be a number. -1 indicates no timeout
338  // and a positive number is used as a timeout in milliseconds that limits the
339  // time spent waiting between receiving output characters from the program.
340  // timeout2, if present, should be a number indicating the limit in
341  // milliseconds on the total running time of the program. Exceptions are
342  // thrown on timeouts or other errors or if the exit status of the program
343  // indicates an error.
344  //
345  // os.chdir(dir) changes directory to the given directory. Throws an
346  // exception/ on error.
347  //
348  // os.setenv(variable, value) sets an environment variable. Repeated calls to
349  // this method leak memory due to the API of setenv in the standard C library.
350  //
351  // os.umask(alue) calls the umask system call and returns the old umask.
352  //
353  // os.mkdirp(name, mask) creates a directory. The mask (if present) is anded
354  // with the current umask. Intermediate directories are created if necessary.
355  // An exception is not thrown if the directory already exists. Analogous to
356  // the "mkdir -p" command.
357  static Handle<Value> OSObject(const Arguments& args);
358  static Handle<Value> System(const Arguments& args);
359  static Handle<Value> ChangeDirectory(const Arguments& args);
360  static Handle<Value> SetEnvironment(const Arguments& args);
361  static Handle<Value> UnsetEnvironment(const Arguments& args);
362  static Handle<Value> SetUMask(const Arguments& args);
363  static Handle<Value> MakeDirectory(const Arguments& args);
364  static Handle<Value> RemoveDirectory(const Arguments& args);
365 
366  static void AddOSMethods(Handle<ObjectTemplate> os_template);
367 
369  static const char* kPrompt;
371 
372  private:
373  static Persistent<Context> evaluation_context_;
374 #ifndef V8_SHARED
375  static Persistent<Context> utility_context_;
376  static CounterMap* counter_map_;
377  // We statically allocate a set of local counters to be used if we
378  // don't want to store the stats in a memory-mapped file
379  static CounterCollection local_counters_;
380  static CounterCollection* counters_;
381  static i::OS::MemoryMappedFile* counters_file_;
382  static i::Mutex* context_mutex_;
383 
384  static Counter* GetCounter(const char* name, bool is_histogram);
385  static void InstallUtilityScript();
386 #endif // V8_SHARED
387  static void Initialize();
388  static void RunShell();
389  static bool SetOptions(int argc, char* argv[]);
391  static Handle<FunctionTemplate> CreateArrayBufferTemplate(InvocationCallback);
392  static Handle<FunctionTemplate> CreateArrayTemplate(InvocationCallback);
393  static Handle<Value> CreateExternalArrayBuffer(Handle<Object> buffer,
394  int32_t size);
395  static Handle<Object> CreateExternalArray(Handle<Object> array,
396  Handle<Object> buffer,
397  ExternalArrayType type,
398  int32_t length,
399  int32_t byteLength,
400  int32_t byteOffset,
401  int32_t element_size);
402  static Handle<Value> CreateExternalArray(const Arguments& args,
403  ExternalArrayType type,
404  int32_t element_size);
405  static void ExternalArrayWeakCallback(Persistent<Value> object, void* data);
406 };
407 
408 
409 } // namespace v8
410 
411 
412 #endif // V8_D8_H_
static void Exit(int exit_code)
Definition: d8.cc:1274
~ShellOptions()
Definition: d8.h:238
static Handle< Array > GetCompletions(Handle< String > text, Handle< String > full)
Definition: d8.cc:905
void Set(const char *name, Counter *value)
Definition: d8.h:90
int num_parallel_files
Definition: d8.h:248
bool use_preemption
Definition: d8.h:246
CounterMap()
Definition: d8.h:81
char ** parallel_files
Definition: d8.h:249
SourceGroup()
Definition: d8.h:142
static Handle< Value > ArrayBufferSlice(const Arguments &args)
Definition: d8.cc:521
static Handle< Value > Version(const Arguments &args)
Definition: d8.cc:853
static int Main(int argc, char *argv[])
Definition: d8.cc:1843
void WaitForThread()
Definition: d8.cc:1619
static void AddHistogramSample(void *histogram, int sample)
Definition: d8.cc:1041
void AddSample(int32_t sample)
Definition: d8.cc:959
bool interactive_shell
Definition: d8.h:256
static Handle< Value > Int32Array(const Arguments &args)
Definition: d8.cc:810
static Handle< Value > Float32Array(const Arguments &args)
Definition: d8.cc:820
static Handle< Value > OSObject(const Arguments &args)
virtual size_t length() const
Definition: d8.h:211
static Handle< Value > SetUMask(const Arguments &args)
Definition: d8-posix.cc:542
static Handle< Value > ReadLine(const Arguments &args)
Definition: d8.h:314
static void AddOSMethods(Handle< ObjectTemplate > os_template)
Definition: d8-posix.cc:677
int int32_t
Definition: unicode.cc:47
virtual bool Open()
Definition: d8.h:126
static LineEditor * Get()
Definition: d8.cc:81
int32_t * ptr()
Definition: d8.h:49
int preemption_interval
Definition: d8.h:247
TickSample * sample
Counter * GetNextCounter()
Definition: d8.cc:973
int32_t * Bind(const char *name, bool histogram)
Definition: d8.cc:949
#define ASSERT(condition)
Definition: checks.h:270
static Handle< Value > Int16Array(const Arguments &args)
Definition: d8.cc:799
ExternalArrayType
Definition: v8.h:1431
void End(int offset)
Definition: d8.h:159
static const int kMaxNameSize
Definition: d8.h:47
v8::Handle< v8::ObjectTemplate > CreateGlobalTemplate(v8::InvocationCallback terminate, v8::InvocationCallback doloop)
Iterator(CounterMap *map)
Definition: d8.h:100
static Handle< Value > Uint16Array(const Arguments &args)
Definition: d8.cc:804
static LineEditor * console
Definition: d8.h:368
static Handle< Value > SetEnvironment(const Arguments &args)
Definition: d8-posix.cc:639
static ShellOptions options
Definition: d8.h:370
virtual const char * data() const
Definition: d8.h:210
LineEditor(Type type, const char *name)
Definition: d8.cc:73
Handle< Value >(* InvocationCallback)(const Arguments &args)
Definition: v8.h:2047
bool is_histogram()
Definition: d8.h:52
static Handle< Value > ArrayBuffer(const Arguments &args)
Definition: d8.cc:366
static Handle< Value > EnableProfiler(const Arguments &args)
Definition: d8.cc:220
static const char * ToCString(const v8::String::Utf8Value &value)
Definition: d8.cc:137
static Handle< Value > DisableProfiler(const Arguments &args)
Definition: d8.cc:226
int32_t sample_total()
Definition: d8.h:51
activate correct semantics for inheriting readonliness enable harmony semantics for typeof enable harmony enable harmony proxies enable all harmony harmony_scoping harmony_proxies harmony_scoping tracks arrays with only smi values automatically unbox arrays of doubles use crankshaft use hydrogen range analysis use hydrogen global value numbering use function inlining maximum number of AST nodes considered for a single inlining loop invariant code motion print statistics for hydrogen trace generated IR for specified phases trace register allocator trace range analysis trace representation types environment for every instruction put a break point before deoptimizing polymorphic inlining perform array bounds checks elimination use dead code elimination trace on stack replacement optimize closures cache optimized code for closures functions with arguments object loop weight for representation inference allow uint32 values on optimize frames if they are used only in safe operations track parallel recompilation enable all profiler experiments number of stack frames inspected by the profiler call recompile stub directly when self optimizing trigger profiler ticks based on counting instead of timing weight back edges by jump distance for interrupt triggering percentage of ICs that must have type info to allow optimization watch_ic_patching retry_self_opt interrupt_at_exit extra verbose compilation tracing generate extra emit comments in code disassembly enable use of SSE3 instructions if available enable use of CMOV instruction if available enable use of SAHF instruction if enable use of VFP3 instructions if available this implies enabling ARMv7 and VFP2 enable use of VFP2 instructions if available enable use of SDIV and UDIV instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of MIPS FPU instructions if expose natives in global object expose gc extension number of stack frames to capture disable builtin natives files print a stack trace if an assertion failure occurs use random jit cookie to mask large constants trace lazy optimization use adaptive optimizations prepare for turning on always opt minimum length for automatic enable preparsing maximum number of optimization attempts before giving up cache prototype transitions automatically set the debug break flag when debugger commands are in the queue always cause a debug break before aborting maximum length of function source code printed in a stack trace max size of the new max size of the old max size of executable always perform global GCs print one trace line following each garbage collection do not print trace line after scavenger collection print more details following each garbage collection print amount of external allocated memory after each time it is adjusted flush code that we expect not to use again before full gc do incremental marking steps track object counts and memory usage use caching Perform compaction on every full GC Never perform compaction on full GC testing only Compact code space on full incremental collections Default seed for initializing random allows verbose printing trace parsing and preparsing Check icache flushes in ARM and MIPS simulator Stack alingment in bytes in print stack trace when throwing exceptions randomize hashes to avoid predictable hash Fixed seed to use to hash property activate a timer that switches between V8 threads testing_bool_flag float flag Seed used for threading test randomness A filename with extra code to be included in the Print usage message
static Handle< Value > Read(const Arguments &args)
Definition: d8.cc:232
SourceGroup * isolate_sources
Definition: d8.h:259
Counter * CurrentValue()
Definition: d8.h:105
Entry * Lookup(void *key, uint32_t hash, bool insert, AllocationPolicy allocator=AllocationPolicy())
Definition: hashmap.h:131
~SourceGroup()
Definition: d8.cc:1521
int num_isolates
Definition: d8.h:258
static const char * kPrompt
Definition: d8.h:369
bool stress_opt
Definition: d8.h:254
static Handle< Value > ArraySet(const Arguments &args)
Definition: d8.cc:638
activate correct semantics for inheriting readonliness false
static void * CreateHistogram(const char *name, int min, int max, size_t buckets)
Definition: d8.cc:1033
const char * name()
Definition: d8.h:130
ShellOptions()
Definition: d8.h:221
static Handle< Value > RemoveDirectory(const Arguments &args)
Definition: d8-posix.cc:624
static Handle< Value > Int8Array(const Arguments &args)
Definition: d8.cc:789
bool stress_deopt
Definition: d8.h:255
static Handle< Value > Write(const Arguments &args)
Definition: d8.cc:197
virtual bool Close()
Definition: d8.h:127
static Handle< Value > Load(const Arguments &args)
Definition: d8.cc:275
Counter * Lookup(const char *name)
Definition: d8.h:82
BinaryResource(const char *string, int length)
Definition: d8.h:200
Definition: d8.h:265
virtual Handle< String > Prompt(const char *prompt)=0
static Handle< Value > ReadBuffer(const Arguments &args)
Definition: d8.cc:1379
static Handle< Value > UnsetEnvironment(const Arguments &args)
Definition: d8-posix.cc:661
static Handle< Value > Print(const Arguments &args)
Definition: d8.cc:189
void Execute()
Definition: d8.cc:1533
static bool ExecuteString(Handle< String > source, Handle< Value > name, bool print_result, bool report_exceptions)
Definition: d8.cc:143
static Handle< Value > Float64Array(const Arguments &args)
Definition: d8.cc:826
static Persistent< Context > CreateEvaluationContext()
Definition: d8.cc:1245
static Handle< String > ReadFile(const char *name)
Definition: d8.cc:1430
void Begin(char **argv, int offset)
Definition: d8.h:154
static void MapCounters(const char *name)
Definition: d8.cc:979
activate correct semantics for inheriting readonliness enable harmony semantics for typeof enable harmony enable harmony proxies enable all harmony harmony_scoping harmony_proxies harmony_scoping tracks arrays with only smi values automatically unbox arrays of doubles use crankshaft use hydrogen range analysis use hydrogen global value numbering use function inlining maximum number of AST nodes considered for a single inlining loop invariant code motion print statistics for hydrogen trace generated IR for specified phases trace register allocator trace range analysis trace representation types environment for every instruction put a break point before deoptimizing polymorphic inlining perform array bounds checks elimination use dead code elimination trace on stack replacement optimize closures cache optimized code for closures functions with arguments object loop weight for representation inference allow uint32 values on optimize frames if they are used only in safe operations track parallel recompilation enable all profiler experiments number of stack frames inspected by the profiler call recompile stub directly when self optimizing trigger profiler ticks based on counting instead of timing weight back edges by jump distance for interrupt triggering percentage of ICs that must have type info to allow optimization watch_ic_patching retry_self_opt interrupt_at_exit extra verbose compilation tracing generate extra emit comments in code disassembly enable use of SSE3 instructions if available enable use of CMOV instruction if available enable use of SAHF instruction if enable use of VFP3 instructions if available this implies enabling ARMv7 and VFP2 enable use of VFP2 instructions if available enable use of SDIV and UDIV instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of MIPS FPU instructions if NULL
static void ReportException(TryCatch *try_catch)
Definition: d8.cc:858
static Handle< Value > Uint8Array(const Arguments &args)
Definition: d8.cc:794
virtual ~LineEditor()
Definition: d8.h:123
static Handle< String > ReadFromStdin()
Definition: d8.cc:245
static Handle< Value > Uint8ClampedArray(const Arguments &args)
Definition: d8.cc:832
int32_t count()
Definition: d8.h:50
static Handle< Value > Quit(const Arguments &args)
Definition: d8.cc:843
static Handle< Value > ArraySubArray(const Arguments &args)
Definition: d8.cc:578
static Handle< Value > Uint32Array(const Arguments &args)
Definition: d8.cc:815
static Handle< Value > MakeDirectory(const Arguments &args)
Definition: d8-posix.cc:601
bool test_shell
Definition: d8.h:257
const char * CurrentKey()
Definition: d8.h:104
virtual void AddHistory(const char *str)
Definition: d8.h:128
static int * LookupCounter(const char *name)
Definition: d8.cc:1022
static Handle< Value > Yield(const Arguments &args)
Definition: d8.cc:837
~BinaryResource()
Definition: d8.h:204
bool script_executed
Definition: d8.h:251
bool send_idle_notification
Definition: d8.h:253
static Handle< Value > System(const Arguments &args)
Definition: d8-posix.cc:451
void RunShell(v8::Handle< v8::Context > context)
Definition: shell.cc:251
static Handle< Value > ChangeDirectory(const Arguments &args)
Definition: d8-posix.cc:525
Definition: d8.h:45
void StartExecuteInThread()
Definition: d8.cc:1610
static void OnExit()
Definition: d8.cc:1296
static int RunMain(int argc, char *argv[])
Definition: d8.cc:1763
Entry * Next(Entry *p) const
Definition: hashmap.h:243
bool last_run
Definition: d8.h:252