| OLD | NEW | 
|---|
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 33 const char* const GCExtension::kSource = "native function gc();"; | 33 const char* const GCExtension::kSource = "native function gc();"; | 
| 34 | 34 | 
| 35 | 35 | 
| 36 v8::Handle<v8::FunctionTemplate> GCExtension::GetNativeFunction( | 36 v8::Handle<v8::FunctionTemplate> GCExtension::GetNativeFunction( | 
| 37     v8::Handle<v8::String> str) { | 37     v8::Handle<v8::String> str) { | 
| 38   return v8::FunctionTemplate::New(GCExtension::GC); | 38   return v8::FunctionTemplate::New(GCExtension::GC); | 
| 39 } | 39 } | 
| 40 | 40 | 
| 41 | 41 | 
| 42 v8::Handle<v8::Value> GCExtension::GC(const v8::Arguments& args) { | 42 v8::Handle<v8::Value> GCExtension::GC(const v8::Arguments& args) { | 
| 43   bool compact = false; | 43   HEAP->CollectAllGarbage(Heap::kNoGCFlags); | 
| 44   // All allocation spaces other than NEW_SPACE have the same effect. |  | 
| 45   if (args.Length() >= 1 && args[0]->IsBoolean()) { |  | 
| 46     compact = args[0]->BooleanValue(); |  | 
| 47   } |  | 
| 48   HEAP->CollectAllGarbage(compact); |  | 
| 49   return v8::Undefined(); | 44   return v8::Undefined(); | 
| 50 } | 45 } | 
| 51 | 46 | 
| 52 | 47 | 
| 53 void GCExtension::Register() { | 48 void GCExtension::Register() { | 
| 54   static GCExtension gc_extension; | 49   static GCExtension gc_extension; | 
| 55   static v8::DeclareExtension gc_extension_declaration(&gc_extension); | 50   static v8::DeclareExtension gc_extension_declaration(&gc_extension); | 
| 56 } | 51 } | 
| 57 | 52 | 
| 58 } }  // namespace v8::internal | 53 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|