// 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 "sky/engine/config.h"
#include "{{cpp_class}}.h"

{% for filename in cpp_includes %}
#include "{{filename}}"
{% endfor %}

namespace blink {

{# Constructor #}
{{cpp_class}}::{{cpp_class}}()
{
    {% for member in members if member.cpp_default_value %}
    {{member.setter_name}}({{member.cpp_default_value}});
    {% endfor %}
}

} // namespace blink
