mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
45 lines
1.5 KiB
C++
45 lines
1.5 KiB
C++
// Copyright 2014 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// This file has been auto-generated by {{code_generator}}. DO NOT MODIFY!
|
|
|
|
#include "config.h"
|
|
#include "{{v8_class}}.h"
|
|
|
|
{% for filename in cpp_includes if filename != '%s.h' % v8_class %}
|
|
#include "{{filename}}"
|
|
{% endfor %}
|
|
|
|
namespace blink {
|
|
|
|
{{cpp_class}}* {{v8_class}}::toNative(v8::Isolate* isolate, v8::Handle<v8::Value> v8Value)
|
|
{
|
|
{{cpp_class}}* impl = {{cpp_class}}::create();
|
|
// FIXME: Do not use Dictionary and DictionaryHelper
|
|
// https://crbug.com/321462
|
|
Dictionary dictionary(v8Value, isolate);
|
|
{% for member in members %}
|
|
{{member.cpp_type}} {{member.name}};
|
|
if (DictionaryHelper::get(dictionary, "{{member.name}}", {{member.name}}))
|
|
impl->{{member.setter_name}}({{member.name}});
|
|
{% endfor %}
|
|
return impl;
|
|
}
|
|
|
|
v8::Handle<v8::Value> toV8({{cpp_class}}* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
|
|
{
|
|
v8::Handle<v8::Object> v8Object = v8::Object::New(isolate);
|
|
{% for member in members %}
|
|
if (impl->{{member.has_method_name}}())
|
|
v8Object->Set(v8String(isolate, "{{member.name}}"), {{member.cpp_value_to_v8_value}});
|
|
{% if member.v8_default_value %}
|
|
else
|
|
v8Object->Set(v8String(isolate, "{{member.name}}"), {{member.v8_default_value}});
|
|
{% endif %}
|
|
{% endfor %}
|
|
return v8Object;
|
|
}
|
|
|
|
} // namespace blink
|