Home | History | Annotate | Download | only in templates
      1 /*
      2  * Copyright (C) 2013 Google Inc. All rights reserved.
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions are
      6  * met:
      7  *
      8  *     * Redistributions of source code must retain the above copyright
      9  * notice, this list of conditions and the following disclaimer.
     10  *     * Redistributions in binary form must reproduce the above
     11  * copyright notice, this list of conditions and the following disclaimer
     12  * in the documentation and/or other materials provided with the
     13  * distribution.
     14  *     * Neither the name of Google Inc. nor the names of its
     15  * contributors may be used to endorse or promote products derived from
     16  * this software without specific prior written permission.
     17  *
     18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     19  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     20  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     22  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     29  */
     30 
     31 // This file has been auto-generated by CodeGeneratorV8.pm. DO NOT MODIFY!
     32 
     33 #include "config.h"
     34 {% if conditional_string %}
     35 #if {{conditional_string}}
     36 {% endif %}
     37 #include "{{v8_class_name}}.h"
     38 
     39 {% for filename in cpp_includes %}
     40 #include "{{filename}}"
     41 {% endfor %}
     42 namespace WebCore {
     43 
     44 {{v8_class_name}}::{{v8_class_name}}(v8::Handle<v8::Object> callback, ScriptExecutionContext* context)
     45     : ActiveDOMCallback(context)
     46     , m_callback(callback)
     47     , m_world(DOMWrapperWorld::current())
     48 {
     49 }
     50 
     51 {{v8_class_name}}::~{{v8_class_name}}()
     52 {
     53 }
     54 
     55 {% for method in methods %}
     56 {% if not method.custom %}
     57 {{method.return_cpp_type}} {{v8_class_name}}::{{method.name}}({{method.argument_declaration}})
     58 {
     59     if (!canInvokeCallback())
     60         return true;
     61 
     62     v8::Isolate* isolate = v8::Isolate::GetCurrent();
     63     v8::HandleScope handleScope(isolate);
     64 
     65     v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_world.get());
     66     if (v8Context.IsEmpty())
     67         return true;
     68 
     69     v8::Context::Scope scope(v8Context);
     70 
     71 {% for argument in method.arguments %}
     72     {{argument.cpp_to_js_conversion | indent(4)}}
     73     if ({{argument.name}}Handle.IsEmpty()) {
     74         if (!isScriptControllerTerminating())
     75             CRASH();
     76         return true;
     77     }
     78 {% endfor %}
     79 {% if method.arguments | length > 0 %}
     80     v8::Handle<v8::Value> argv[] = { {{method.handles}} };
     81 {% else %}
     82     v8::Handle<v8::Value> *argv = 0;
     83 {% endif %}
     84 
     85     bool callbackReturnValue = false;
     86     return !invokeCallback(m_callback.newLocal(isolate), {{method.arguments | length}}, argv, callbackReturnValue, scriptExecutionContext());
     87 }
     88 
     89 {% endif %}
     90 {% endfor %}{# for method in methods #}
     91 } // namespace WebCore
     92 
     93 {% if conditional_string %}
     94 #endif // {{conditional_string}}
     95 {% endif %}
     96