Import Cobalt 13.97306

Change-Id: I020449eacf32503499df667c9ca6df3d3ea2b715
diff --git a/src/base/debug/debugger_starboard.cc b/src/base/debug/debugger_starboard.cc
index ee9e762..6945358 100644
--- a/src/base/debug/debugger_starboard.cc
+++ b/src/base/debug/debugger_starboard.cc
@@ -26,7 +26,7 @@
 }
 
 bool BeingDebugged() {
-#if defined(__LB_SHELL__FOR_RELEASE__)
+#if defined(COBALT_BUILD_TYPE_GOLD)
   return false;
 #else
   return SbSystemIsDebuggerAttached();
diff --git a/src/base/logging.h b/src/base/logging.h
index 238db8c..0f665ca 100644
--- a/src/base/logging.h
+++ b/src/base/logging.h
@@ -471,7 +471,7 @@
 // defined.
 #if ( defined(OS_WIN) && defined(OFFICIAL_BUILD)) || \
     (!defined(OS_WIN) && defined(NDEBUG) && defined(GOOGLE_CHROME_BUILD)) || \
-    defined(__LB_SHELL__FOR_RELEASE__)
+    defined(COBALT_BUILD_TYPE_GOLD)
 #define LOGGING_IS_OFFICIAL_BUILD 1
 #else
 #define LOGGING_IS_OFFICIAL_BUILD 0
@@ -618,7 +618,7 @@
 #define CHECK_GT(val1, val2) CHECK_OP(GT, > , val1, val2)
 
 #if LOGGING_IS_OFFICIAL_BUILD || \
-    (defined(__LB_SHELL__FOR_QA__) && !defined(__LB_SHELL__FORCE_LOGGING__))
+    (defined(COBALT_BUILD_TYPE_QA) && !defined(__LB_SHELL__FORCE_LOGGING__))
 // In order to have optimized code for official builds, remove DLOGs and
 // DCHECKs.
 #define ENABLE_DLOG 0
@@ -1052,7 +1052,7 @@
 
 #ifndef NOTIMPLEMENTED_POLICY
 #if (defined(OS_ANDROID) && defined(OFFICIAL_BUILD)) || \
-  defined(__LB_SHELL__FOR_RELEASE__)
+  defined(COBALT_BUILD_TYPE_GOLD)
 #define NOTIMPLEMENTED_POLICY 0
 #elif defined (__LB_SHELL__) || defined(COBALT)
   // Only print each message once.
diff --git a/src/base/logging_unittest.cc b/src/base/logging_unittest.cc
index f0e9f56..8fbe9c7 100644
--- a/src/base/logging_unittest.cc
+++ b/src/base/logging_unittest.cc
@@ -215,7 +215,7 @@
 }
 
 TEST_F(LoggingTest, Dcheck) {
-#if LOGGING_IS_OFFICIAL_BUILD
+#if LOGGING_IS_OFFICIAL_BUILD || defined(COBALT_BUILD_TYPE_QA)
   // Official build.
   EXPECT_FALSE(DCHECK_IS_ON());
   EXPECT_FALSE(DLOG_IS_ON(DCHECK));
diff --git a/src/base/metrics/histogram.h b/src/base/metrics/histogram.h
index 74474f3..9fbe631 100644
--- a/src/base/metrics/histogram.h
+++ b/src/base/metrics/histogram.h
@@ -285,7 +285,7 @@
 // to record histogram data, and have the data submitted/uploaded via UMA.
 // Not all systems support such UMA, but if they do, the following macros
 // should work with the service.
-#if defined(__LB_SHELL__FOR_RELEASE__)
+#if defined(COBALT_BUILD_TYPE_GOLD)
 
 #define UMA_HISTOGRAM_TIMES(name, sample) DISCARD_2_ARGUMENTS(name, sample)
 #define UMA_HISTOGRAM_MEDIUM_TIMES(name, sample) \
@@ -372,7 +372,7 @@
     STATIC_HISTOGRAM_POINTER_BLOCK(name, Add(sample), \
         base::CustomHistogram::FactoryGet(name, custom_ranges, \
             base::Histogram::kUmaTargetedHistogramFlag))
-#endif  // defined(__LB_SHELL__FOR_RELEASE__)
+#endif  // defined(COBALT_BUILD_TYPE_GOLD)
 
 //------------------------------------------------------------------------------
 
diff --git a/src/base/test/main_hook.cc b/src/base/test/main_hook.cc
index d385198..e8e6db0 100644
--- a/src/base/test/main_hook.cc
+++ b/src/base/test/main_hook.cc
@@ -9,7 +9,7 @@
 #include "base/command_line.h"
 #endif
 
-#if defined(__LB_SHELL__FOR_RELEASE__)
+#if defined(COBALT_BUILD_TYPE_GOLD)
 #error You cannot build unit tests in gold builds.
 #endif
 
diff --git a/src/base/tracked_objects.cc b/src/base/tracked_objects.cc
index 9165169..b4ceb23 100644
--- a/src/base/tracked_objects.cc
+++ b/src/base/tracked_objects.cc
@@ -22,7 +22,7 @@
 
 namespace {
 // Flag to compile out almost all of the task tracking code.
-#if defined(__LB_SHELL__FOR_RELEASE__)
+#if defined(COBALT_BUILD_TYPE_GOLD)
 const bool kTrackAllTaskObjects = false;
 #else
 const bool kTrackAllTaskObjects = true;
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/derived_dictionary.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/derived_dictionary.h
deleted file mode 100644
index cd27ab6..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/derived_dictionary.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/templates/dictionary.h.template
-
-#ifndef DerivedDictionary_h
-#define DerivedDictionary_h
-
-#include <string>
-
-#include "base/optional.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/script/sequence.h"
-#include "cobalt/script/value_handle.h"
-#include "cobalt/bindings/testing/test_dictionary.h"
-
-using cobalt::bindings::testing::TestDictionary;
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class DerivedDictionary : public cobalt::bindings::testing::TestDictionary {
- public:
-  DerivedDictionary() {
-    additional_member_ = false;
-  }
-
-  DerivedDictionary(const DerivedDictionary& other)
-    : cobalt::bindings::testing::TestDictionary(other) {
-    additional_member_ = other.additional_member_;
-  }
-
-  DerivedDictionary& operator=(const DerivedDictionary& other) {
-    cobalt::bindings::testing::TestDictionary::operator=(other);
-    additional_member_ = other.additional_member_;
-    return *this;
-  }
-
-  bool has_additional_member() const {
-    return true;
-  }
-  bool additional_member() const {
-    return additional_member_;
-  }
-  void set_additional_member(bool value) {
-    additional_member_ = value;
-  }
-
- private:
-  bool additional_member_;
-};
-
-// This ostream override is necessary for MOCK_METHODs commonly used
-// in idl test code
-inline std::ostream& operator<<(
-    std::ostream& stream, const cobalt::bindings::testing::DerivedDictionary& in) {
-  UNREFERENCED_PARAMETER(in);
-  stream << "[DerivedDictionary]";
-  return stream;
-}
-
-}  // namespace cobalt
-}  // namespace bindings
-}  // namespace testing
-
-#endif  // DerivedDictionary_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/dictionary_with_dictionary_member.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/dictionary_with_dictionary_member.h
deleted file mode 100644
index 02dbce6..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/dictionary_with_dictionary_member.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/templates/dictionary.h.template
-
-#ifndef DictionaryWithDictionaryMember_h
-#define DictionaryWithDictionaryMember_h
-
-#include <string>
-
-#include "base/optional.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/script/sequence.h"
-#include "cobalt/script/value_handle.h"
-#include "cobalt/bindings/testing/test_dictionary.h"
-
-using cobalt::bindings::testing::TestDictionary;
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class DictionaryWithDictionaryMember {
- public:
-  DictionaryWithDictionaryMember() {
-    has_nested_dictionary_ = false;
-    nested_dictionary_ = TestDictionary();
-  }
-
-  DictionaryWithDictionaryMember(const DictionaryWithDictionaryMember& other) {
-    has_nested_dictionary_ = other.has_nested_dictionary_;
-    nested_dictionary_ = other.nested_dictionary_;
-  }
-
-  DictionaryWithDictionaryMember& operator=(const DictionaryWithDictionaryMember& other) {
-    has_nested_dictionary_ = other.has_nested_dictionary_;
-    nested_dictionary_ = other.nested_dictionary_;
-    return *this;
-  }
-
-  bool has_nested_dictionary() const {
-    return has_nested_dictionary_;
-  }
-  TestDictionary nested_dictionary() const {
-    DCHECK(has_nested_dictionary_);
-    return nested_dictionary_;
-  }
-  void set_nested_dictionary(TestDictionary value) {
-    has_nested_dictionary_ = true;
-    nested_dictionary_ = value;
-  }
-
- private:
-  bool has_nested_dictionary_;
-  TestDictionary nested_dictionary_;
-};
-
-// This ostream override is necessary for MOCK_METHODs commonly used
-// in idl test code
-inline std::ostream& operator<<(
-    std::ostream& stream, const cobalt::bindings::testing::DictionaryWithDictionaryMember& in) {
-  UNREFERENCED_PARAMETER(in);
-  stream << "[DictionaryWithDictionaryMember]";
-  return stream;
-}
-
-}  // namespace cobalt
-}  // namespace bindings
-}  // namespace testing
-
-#endif  // DictionaryWithDictionaryMember_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_indexed_getter_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_indexed_getter_interface.cc
deleted file mode 100644
index 806ac70..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_indexed_getter_interface.cc
+++ /dev/null
@@ -1,507 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_anonymous_indexed_getter_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::AnonymousIndexedGetterInterface;
-using cobalt::bindings::testing::MozjsAnonymousIndexedGetterInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-bool IsSupportedIndexProperty(JSContext* context, JS::HandleObject object,
-                              uint32_t index) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousIndexedGetterInterface>().get();
-  return index < impl->length();
-}
-
-void EnumerateSupportedIndexes(JSContext* context, JS::HandleObject object,
-                               JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousIndexedGetterInterface>().get();
-  const uint32_t kNumIndexedProperties = impl->length();
-  for (uint32_t i = 0; i < kNumIndexedProperties; ++i) {
-    properties->append(INT_TO_JSID(i));
-  }
-}
-
-JSBool GetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousIndexedGetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->AnonymousIndexedGetter(index),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousIndexedGetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if(exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<uint32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->AnonymousIndexedSetter(index, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-class MozjsAnonymousIndexedGetterInterfaceHandler : public ProxyHandler {
- public:
-  MozjsAnonymousIndexedGetterInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsAnonymousIndexedGetterInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsAnonymousIndexedGetterInterfaceHandler::indexed_property_hooks = {
-  IsSupportedIndexProperty,
-  EnumerateSupportedIndexes,
-  GetIndexedProperty,
-  SetIndexedProperty,
-  NULL,
-};
-
-static base::LazyInstance<MozjsAnonymousIndexedGetterInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsAnonymousIndexedGetterInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "AnonymousIndexedGetterInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "AnonymousIndexedGetterInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "AnonymousIndexedGetterInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_length(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsAnonymousIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<AnonymousIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousIndexedGetterInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->length(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "length", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_length),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "AnonymousIndexedGetterInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsAnonymousIndexedGetterInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsAnonymousIndexedGetterInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsAnonymousIndexedGetterInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsAnonymousIndexedGetterInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_indexed_getter_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_indexed_getter_interface.h
deleted file mode 100644
index e00f429..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_indexed_getter_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsAnonymousIndexedGetterInterface_h
-#define MozjsAnonymousIndexedGetterInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/anonymous_indexed_getter_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsAnonymousIndexedGetterInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsAnonymousIndexedGetterInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_getter_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_getter_interface.cc
deleted file mode 100644
index a0d23a1..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_getter_interface.cc
+++ /dev/null
@@ -1,461 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_anonymous_named_getter_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::AnonymousNamedGetterInterface;
-using cobalt::bindings::testing::MozjsAnonymousNamedGetterInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-bool IsSupportedNamedProperty(JSContext* context, JS::HandleObject object,
-                              const std::string& property_name) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedGetterInterface>().get();
-  return impl->CanQueryNamedProperty(property_name);
-}
-
-void EnumerateSupportedNames(JSContext* context, JS::HandleObject object,
-                             JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedGetterInterface>().get();
-  MozjsPropertyEnumerator enumerator(context, properties);
-  impl->EnumerateNamedProperties(&enumerator);
-}
-
-JSBool GetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedGetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->AnonymousNamedGetter(property_name),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedGetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->AnonymousNamedSetter(property_name, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-class MozjsAnonymousNamedGetterInterfaceHandler : public ProxyHandler {
- public:
-  MozjsAnonymousNamedGetterInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsAnonymousNamedGetterInterfaceHandler::named_property_hooks = {
-  IsSupportedNamedProperty,
-  EnumerateSupportedNames,
-  GetNamedProperty,
-  SetNamedProperty,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsAnonymousNamedGetterInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsAnonymousNamedGetterInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsAnonymousNamedGetterInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "AnonymousNamedGetterInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "AnonymousNamedGetterInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "AnonymousNamedGetterInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "AnonymousNamedGetterInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsAnonymousNamedGetterInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsAnonymousNamedGetterInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsAnonymousNamedGetterInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsAnonymousNamedGetterInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_getter_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_getter_interface.h
deleted file mode 100644
index 4084d40..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_getter_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsAnonymousNamedGetterInterface_h
-#define MozjsAnonymousNamedGetterInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/anonymous_named_getter_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsAnonymousNamedGetterInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsAnonymousNamedGetterInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_indexed_getter_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_indexed_getter_interface.cc
deleted file mode 100644
index 717863b..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_indexed_getter_interface.cc
+++ /dev/null
@@ -1,599 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_anonymous_named_indexed_getter_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::AnonymousNamedIndexedGetterInterface;
-using cobalt::bindings::testing::MozjsAnonymousNamedIndexedGetterInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-bool IsSupportedNamedProperty(JSContext* context, JS::HandleObject object,
-                              const std::string& property_name) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedIndexedGetterInterface>().get();
-  return impl->CanQueryNamedProperty(property_name);
-}
-
-void EnumerateSupportedNames(JSContext* context, JS::HandleObject object,
-                             JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedIndexedGetterInterface>().get();
-  MozjsPropertyEnumerator enumerator(context, properties);
-  impl->EnumerateNamedProperties(&enumerator);
-}
-
-JSBool GetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedIndexedGetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->AnonymousNamedGetter(property_name),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedIndexedGetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->AnonymousNamedSetter(property_name, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-bool IsSupportedIndexProperty(JSContext* context, JS::HandleObject object,
-                              uint32_t index) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedIndexedGetterInterface>().get();
-  return index < impl->length();
-}
-
-void EnumerateSupportedIndexes(JSContext* context, JS::HandleObject object,
-                               JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedIndexedGetterInterface>().get();
-  const uint32_t kNumIndexedProperties = impl->length();
-  for (uint32_t i = 0; i < kNumIndexedProperties; ++i) {
-    properties->append(INT_TO_JSID(i));
-  }
-}
-
-JSBool GetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedIndexedGetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->AnonymousIndexedGetter(index),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedIndexedGetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if(exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<uint32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->AnonymousIndexedSetter(index, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-class MozjsAnonymousNamedIndexedGetterInterfaceHandler : public ProxyHandler {
- public:
-  MozjsAnonymousNamedIndexedGetterInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsAnonymousNamedIndexedGetterInterfaceHandler::named_property_hooks = {
-  IsSupportedNamedProperty,
-  EnumerateSupportedNames,
-  GetNamedProperty,
-  SetNamedProperty,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsAnonymousNamedIndexedGetterInterfaceHandler::indexed_property_hooks = {
-  IsSupportedIndexProperty,
-  EnumerateSupportedIndexes,
-  GetIndexedProperty,
-  SetIndexedProperty,
-  NULL,
-};
-
-static base::LazyInstance<MozjsAnonymousNamedIndexedGetterInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsAnonymousNamedIndexedGetterInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "AnonymousNamedIndexedGetterInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "AnonymousNamedIndexedGetterInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "AnonymousNamedIndexedGetterInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_length(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsAnonymousNamedIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<AnonymousNamedIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  AnonymousNamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<AnonymousNamedIndexedGetterInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->length(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "length", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_length),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "AnonymousNamedIndexedGetterInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsAnonymousNamedIndexedGetterInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsAnonymousNamedIndexedGetterInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsAnonymousNamedIndexedGetterInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsAnonymousNamedIndexedGetterInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_indexed_getter_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_indexed_getter_interface.h
deleted file mode 100644
index c615c45..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_anonymous_named_indexed_getter_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsAnonymousNamedIndexedGetterInterface_h
-#define MozjsAnonymousNamedIndexedGetterInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/anonymous_named_indexed_getter_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsAnonymousNamedIndexedGetterInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsAnonymousNamedIndexedGetterInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_arbitrary_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_arbitrary_interface.cc
deleted file mode 100644
index 9c7df9d..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_arbitrary_interface.cc
+++ /dev/null
@@ -1,535 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsArbitraryInterfaceHandler : public ProxyHandler {
- public:
-  MozjsArbitraryInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsArbitraryInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsArbitraryInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsArbitraryInterfaceHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsArbitraryInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "ArbitraryInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "ArbitraryInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "ArbitraryInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool get_arbitraryProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsArbitraryInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ArbitraryInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ArbitraryInterface* impl =
-      wrapper_private->wrappable<ArbitraryInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->arbitrary_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_arbitraryProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsArbitraryInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ArbitraryInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ArbitraryInterface* impl =
-      wrapper_private->wrappable<ArbitraryInterface>().get();
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_arbitrary_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_arbitraryFunction(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsArbitraryInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ArbitraryInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ArbitraryInterface* impl =
-      wrapper_private->wrappable<ArbitraryInterface>().get();
-
-  impl->ArbitraryFunction();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "arbitraryProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_arbitraryProperty),
-      JSOP_WRAPPER(&set_arbitraryProperty),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "arbitraryFunction",
-      JSOP_WRAPPER(&fcn_arbitraryFunction),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "ArbitraryInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsArbitraryInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsArbitraryInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsArbitraryInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsArbitraryInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<ArbitraryInterface> new_object =
-      new ArbitraryInterface();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_arbitrary_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_arbitrary_interface.h
deleted file mode 100644
index e88e87b..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_arbitrary_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsArbitraryInterface_h
-#define MozjsArbitraryInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsArbitraryInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsArbitraryInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_base_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_base_interface.cc
deleted file mode 100644
index a810666..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_base_interface.cc
+++ /dev/null
@@ -1,494 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_base_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::BaseInterface;
-using cobalt::bindings::testing::MozjsBaseInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsBaseInterfaceHandler : public ProxyHandler {
- public:
-  MozjsBaseInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsBaseInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsBaseInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsBaseInterfaceHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsBaseInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "BaseInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "BaseInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "BaseInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool get_baseAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsBaseInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<BaseInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  BaseInterface* impl =
-      wrapper_private->wrappable<BaseInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->base_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_baseOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsBaseInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<BaseInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  BaseInterface* impl =
-      wrapper_private->wrappable<BaseInterface>().get();
-
-  impl->BaseOperation();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "baseAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_baseAttribute),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "baseOperation",
-      JSOP_WRAPPER(&fcn_baseOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "BaseInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsBaseInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsBaseInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsBaseInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsBaseInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<BaseInterface> new_object =
-      new BaseInterface();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_base_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_base_interface.h
deleted file mode 100644
index 735658e..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_base_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsBaseInterface_h
-#define MozjsBaseInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/base_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsBaseInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsBaseInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_boolean_type_test_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_boolean_type_test_interface.cc
deleted file mode 100644
index a972552..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_boolean_type_test_interface.cc
+++ /dev/null
@@ -1,587 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_boolean_type_test_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::BooleanTypeTestInterface;
-using cobalt::bindings::testing::MozjsBooleanTypeTestInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsBooleanTypeTestInterfaceHandler : public ProxyHandler {
- public:
-  MozjsBooleanTypeTestInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsBooleanTypeTestInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsBooleanTypeTestInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsBooleanTypeTestInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsBooleanTypeTestInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "BooleanTypeTestInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "BooleanTypeTestInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "BooleanTypeTestInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_booleanProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsBooleanTypeTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<BooleanTypeTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  BooleanTypeTestInterface* impl =
-      wrapper_private->wrappable<BooleanTypeTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->boolean_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_booleanProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsBooleanTypeTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<BooleanTypeTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  BooleanTypeTestInterface* impl =
-      wrapper_private->wrappable<BooleanTypeTestInterface>().get();
-  TypeTraits<bool >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_boolean_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_booleanArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsBooleanTypeTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<BooleanTypeTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  BooleanTypeTestInterface* impl =
-      wrapper_private->wrappable<BooleanTypeTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<bool >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->BooleanArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_booleanReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsBooleanTypeTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<BooleanTypeTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  BooleanTypeTestInterface* impl =
-      wrapper_private->wrappable<BooleanTypeTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->BooleanReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "booleanProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_booleanProperty),
-      JSOP_WRAPPER(&set_booleanProperty),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "booleanArgumentOperation",
-      JSOP_WRAPPER(&fcn_booleanArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "booleanReturnOperation",
-      JSOP_WRAPPER(&fcn_booleanReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "BooleanTypeTestInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsBooleanTypeTestInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsBooleanTypeTestInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsBooleanTypeTestInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsBooleanTypeTestInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_boolean_type_test_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_boolean_type_test_interface.h
deleted file mode 100644
index 18e3077..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_boolean_type_test_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsBooleanTypeTestInterface_h
-#define MozjsBooleanTypeTestInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/boolean_type_test_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsBooleanTypeTestInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsBooleanTypeTestInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_function_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_function_interface.cc
deleted file mode 100644
index 5c0218b..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_function_interface.cc
+++ /dev/null
@@ -1,904 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_callback_function_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::CallbackFunctionInterface;
-using cobalt::bindings::testing::MozjsCallbackFunctionInterface;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsCallbackFunctionInterfaceHandler : public ProxyHandler {
- public:
-  MozjsCallbackFunctionInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsCallbackFunctionInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsCallbackFunctionInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsCallbackFunctionInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsCallbackFunctionInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "CallbackFunctionInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "CallbackFunctionInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "CallbackFunctionInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_callbackAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsCallbackFunctionInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackFunctionInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackFunctionInterface* impl =
-      wrapper_private->wrappable<CallbackFunctionInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->callback_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_callbackAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsCallbackFunctionInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackFunctionInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackFunctionInterface* impl =
-      wrapper_private->wrappable<CallbackFunctionInterface>().get();
-  TypeTraits<CallbackFunctionInterface::VoidFunction >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_callback_attribute(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_nullableCallbackAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsCallbackFunctionInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackFunctionInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackFunctionInterface* impl =
-      wrapper_private->wrappable<CallbackFunctionInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->nullable_callback_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_nullableCallbackAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsCallbackFunctionInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackFunctionInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackFunctionInterface* impl =
-      wrapper_private->wrappable<CallbackFunctionInterface>().get();
-  TypeTraits<CallbackFunctionInterface::VoidFunction >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_nullable_callback_attribute(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_takesFunctionThatReturnsString(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsCallbackFunctionInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackFunctionInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackFunctionInterface* impl =
-      wrapper_private->wrappable<CallbackFunctionInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<CallbackFunctionInterface::FunctionThatReturnsString >::ConversionType cb;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &cb);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->TakesFunctionThatReturnsString(cb);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_takesFunctionWithNullableParameters(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsCallbackFunctionInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackFunctionInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackFunctionInterface* impl =
-      wrapper_private->wrappable<CallbackFunctionInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<CallbackFunctionInterface::FunctionWithNullableParameters >::ConversionType cb;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &cb);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->TakesFunctionWithNullableParameters(cb);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_takesFunctionWithOneParameter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsCallbackFunctionInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackFunctionInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackFunctionInterface* impl =
-      wrapper_private->wrappable<CallbackFunctionInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<CallbackFunctionInterface::FunctionWithOneParameter >::ConversionType cb;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &cb);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->TakesFunctionWithOneParameter(cb);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_takesFunctionWithSeveralParameters(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsCallbackFunctionInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackFunctionInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackFunctionInterface* impl =
-      wrapper_private->wrappable<CallbackFunctionInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<CallbackFunctionInterface::FunctionWithSeveralParameters >::ConversionType cb;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &cb);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->TakesFunctionWithSeveralParameters(cb);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_takesVoidFunction(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsCallbackFunctionInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackFunctionInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackFunctionInterface* impl =
-      wrapper_private->wrappable<CallbackFunctionInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<CallbackFunctionInterface::VoidFunction >::ConversionType cb;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &cb);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->TakesVoidFunction(cb);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "callbackAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_callbackAttribute),
-      JSOP_WRAPPER(&set_callbackAttribute),
-  },
-  {  // Read/Write property
-      "nullableCallbackAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_nullableCallbackAttribute),
-      JSOP_WRAPPER(&set_nullableCallbackAttribute),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "takesFunctionThatReturnsString",
-      JSOP_WRAPPER(&fcn_takesFunctionThatReturnsString),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "takesFunctionWithNullableParameters",
-      JSOP_WRAPPER(&fcn_takesFunctionWithNullableParameters),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "takesFunctionWithOneParameter",
-      JSOP_WRAPPER(&fcn_takesFunctionWithOneParameter),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "takesFunctionWithSeveralParameters",
-      JSOP_WRAPPER(&fcn_takesFunctionWithSeveralParameters),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "takesVoidFunction",
-      JSOP_WRAPPER(&fcn_takesVoidFunction),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "CallbackFunctionInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsCallbackFunctionInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsCallbackFunctionInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsCallbackFunctionInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsCallbackFunctionInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_function_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_function_interface.h
deleted file mode 100644
index 8a34743..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_function_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsCallbackFunctionInterface_h
-#define MozjsCallbackFunctionInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/callback_function_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsCallbackFunctionInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsCallbackFunctionInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_interface_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_interface_interface.cc
deleted file mode 100644
index 045f8e2..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_interface_interface.cc
+++ /dev/null
@@ -1,585 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_callback_interface_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/mozjs_single_operation_interface.h"
-#include "cobalt/bindings/testing/single_operation_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::CallbackInterfaceInterface;
-using cobalt::bindings::testing::MozjsCallbackInterfaceInterface;
-using cobalt::bindings::testing::MozjsSingleOperationInterface;
-using cobalt::bindings::testing::SingleOperationInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsCallbackInterfaceInterfaceHandler : public ProxyHandler {
- public:
-  MozjsCallbackInterfaceInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsCallbackInterfaceInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsCallbackInterfaceInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsCallbackInterfaceInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsCallbackInterfaceInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "CallbackInterfaceInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "CallbackInterfaceInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "CallbackInterfaceInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_callbackAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsCallbackInterfaceInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackInterfaceInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackInterfaceInterface* impl =
-      wrapper_private->wrappable<CallbackInterfaceInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->callback_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_callbackAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsCallbackInterfaceInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackInterfaceInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackInterfaceInterface* impl =
-      wrapper_private->wrappable<CallbackInterfaceInterface>().get();
-  TypeTraits<::cobalt::script::CallbackInterfaceTraits<SingleOperationInterface > >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_callback_attribute(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_registerCallback(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsCallbackInterfaceInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackInterfaceInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackInterfaceInterface* impl =
-      wrapper_private->wrappable<CallbackInterfaceInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::CallbackInterfaceTraits<SingleOperationInterface > >::ConversionType callback_interface;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &callback_interface);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->RegisterCallback(callback_interface);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_someOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsCallbackInterfaceInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<CallbackInterfaceInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  CallbackInterfaceInterface* impl =
-      wrapper_private->wrappable<CallbackInterfaceInterface>().get();
-
-  impl->SomeOperation();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "callbackAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_callbackAttribute),
-      JSOP_WRAPPER(&set_callbackAttribute),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "registerCallback",
-      JSOP_WRAPPER(&fcn_registerCallback),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "someOperation",
-      JSOP_WRAPPER(&fcn_someOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "CallbackInterfaceInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsCallbackInterfaceInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsCallbackInterfaceInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsCallbackInterfaceInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsCallbackInterfaceInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_interface_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_interface_interface.h
deleted file mode 100644
index 98a8b45..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_callback_interface_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsCallbackInterfaceInterface_h
-#define MozjsCallbackInterfaceInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/callback_interface_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsCallbackInterfaceInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsCallbackInterfaceInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_conditional_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_conditional_interface.cc
deleted file mode 100644
index fc0d3f4..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_conditional_interface.cc
+++ /dev/null
@@ -1,670 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#if defined(ENABLE_CONDITIONAL_INTERFACE)
-
-#include "cobalt/bindings/testing/mozjs_conditional_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::ConditionalInterface;
-using cobalt::bindings::testing::MozjsConditionalInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsConditionalInterfaceHandler : public ProxyHandler {
- public:
-  MozjsConditionalInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsConditionalInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsConditionalInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsConditionalInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsConditionalInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "ConditionalInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "ConditionalInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "ConditionalInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-#if defined(ENABLE_CONDITIONAL_PROPERTY)
-JSBool get_enabledAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsConditionalInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ConditionalInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ConditionalInterface* impl =
-      wrapper_private->wrappable<ConditionalInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->enabled_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_enabledAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsConditionalInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ConditionalInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ConditionalInterface* impl =
-      wrapper_private->wrappable<ConditionalInterface>().get();
-  TypeTraits<int32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_enabled_attribute(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-#endif  // ENABLE_CONDITIONAL_PROPERTY
-#if defined(NO_ENABLE_CONDITIONAL_PROPERTY)
-JSBool get_disabledAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsConditionalInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ConditionalInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ConditionalInterface* impl =
-      wrapper_private->wrappable<ConditionalInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->disabled_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_disabledAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsConditionalInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ConditionalInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ConditionalInterface* impl =
-      wrapper_private->wrappable<ConditionalInterface>().get();
-  TypeTraits<int32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_disabled_attribute(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-#endif  // NO_ENABLE_CONDITIONAL_PROPERTY
-#if defined(NO_ENABLE_CONDITIONAL_PROPERTY)
-JSBool fcn_disabledOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsConditionalInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ConditionalInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ConditionalInterface* impl =
-      wrapper_private->wrappable<ConditionalInterface>().get();
-
-  impl->DisabledOperation();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-#endif  // NO_ENABLE_CONDITIONAL_PROPERTY
-#if defined(ENABLE_CONDITIONAL_PROPERTY)
-JSBool fcn_enabledOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsConditionalInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ConditionalInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ConditionalInterface* impl =
-      wrapper_private->wrappable<ConditionalInterface>().get();
-
-  impl->EnabledOperation();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-#endif  // ENABLE_CONDITIONAL_PROPERTY
-
-const JSPropertySpec prototype_properties[] = {
-#if defined(ENABLE_CONDITIONAL_PROPERTY)
-  {  // Read/Write property
-      "enabledAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_enabledAttribute),
-      JSOP_WRAPPER(&set_enabledAttribute),
-  },
-#endif  // ENABLE_CONDITIONAL_PROPERTY
-#if defined(NO_ENABLE_CONDITIONAL_PROPERTY)
-  {  // Read/Write property
-      "disabledAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_disabledAttribute),
-      JSOP_WRAPPER(&set_disabledAttribute),
-  },
-#endif  // NO_ENABLE_CONDITIONAL_PROPERTY
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-#if defined(NO_ENABLE_CONDITIONAL_PROPERTY)
-  {
-      "disabledOperation",
-      JSOP_WRAPPER(&fcn_disabledOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-#endif  // NO_ENABLE_CONDITIONAL_PROPERTY
-#if defined(ENABLE_CONDITIONAL_PROPERTY)
-  {
-      "enabledOperation",
-      JSOP_WRAPPER(&fcn_enabledOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-#endif  // ENABLE_CONDITIONAL_PROPERTY
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "ConditionalInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsConditionalInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsConditionalInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsConditionalInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsConditionalInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-#endif  // defined(ENABLE_CONDITIONAL_INTERFACE)
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_conditional_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_conditional_interface.h
deleted file mode 100644
index fd13293..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_conditional_interface.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsConditionalInterface_h
-#define MozjsConditionalInterface_h
-
-#if defined(ENABLE_CONDITIONAL_INTERFACE)
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/conditional_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsConditionalInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // defined(ENABLE_CONDITIONAL_INTERFACE)
-
-#endif  // MozjsConditionalInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constants_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constants_interface.cc
deleted file mode 100644
index 589bf2c..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constants_interface.cc
+++ /dev/null
@@ -1,422 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_constants_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::ConstantsInterface;
-using cobalt::bindings::testing::MozjsConstantsInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsConstantsInterfaceHandler : public ProxyHandler {
- public:
-  MozjsConstantsInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsConstantsInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsConstantsInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsConstantsInterfaceHandler>
-    proxy_handler;
-
-JSBool get_INTEGER_CONSTANT(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  COMPILE_ASSERT(ConstantsInterface::kIntegerConstant == 5,
-                 ValueForConstantsInterface_kIntegerConstantDoesNotMatchIDL);
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-  ToJSValue(context, 5, &result_value);
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_DOUBLE_CONSTANT(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  DCHECK_EQ(2.718, ConstantsInterface::kDoubleConstant) <<
-      "The value for ConstantsInterface::kDoubleConstant does not match "
-      "the value in the interface definition.";
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-  ToJSValue(context, 2.718, &result_value);
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsConstantsInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "ConstantsInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "ConstantsInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "ConstantsInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {
-      "INTEGER_CONSTANT", 0,
-      JSPROP_PERMANENT | JSPROP_READONLY | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_INTEGER_CONSTANT),
-      JSOP_NULLWRAPPER,
-  },
-  {
-      "DOUBLE_CONSTANT", 0,
-      JSPROP_PERMANENT | JSPROP_READONLY | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_DOUBLE_CONSTANT),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  {
-      "INTEGER_CONSTANT", 0,
-      JSPROP_PERMANENT | JSPROP_READONLY | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_INTEGER_CONSTANT),
-      JSOP_NULLWRAPPER,
-  },
-  {
-      "DOUBLE_CONSTANT", 0,
-      JSPROP_PERMANENT | JSPROP_READONLY | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_DOUBLE_CONSTANT),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "ConstantsInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsConstantsInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsConstantsInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsConstantsInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsConstantsInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constants_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constants_interface.h
deleted file mode 100644
index 7bc86ba..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constants_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsConstantsInterface_h
-#define MozjsConstantsInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/constants_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsConstantsInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsConstantsInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_interface.cc
deleted file mode 100644
index cbe05b6..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_interface.cc
+++ /dev/null
@@ -1,458 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_constructor_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::ConstructorInterface;
-using cobalt::bindings::testing::MozjsConstructorInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsConstructorInterfaceHandler : public ProxyHandler {
- public:
-  MozjsConstructorInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsConstructorInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsConstructorInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsConstructorInterfaceHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsConstructorInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "ConstructorInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "ConstructorInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "ConstructorInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "ConstructorInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsConstructorInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsConstructorInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsConstructorInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsConstructorInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor1(
-    JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<ConstructorInterface> new_object =
-      new ConstructorInterface();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-
-JSBool Constructor2(
-    JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<bool >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  scoped_refptr<ConstructorInterface> new_object =
-      new ConstructorInterface(arg);
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  switch(argc) {
-    case(0): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      if (true) {
-        return Constructor1(
-                  context, argc, vp);
-      }
-      break;
-    }
-    case(1): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      if (true) {
-        return Constructor2(
-                  context, argc, vp);
-      }
-      break;
-    }
-  }
-  // Invalid number of args
-  // http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-  // 4. If S is empty, then throw a TypeError.
-  MozjsExceptionState exception_state(context);
-  exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-  return false;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_interface.h
deleted file mode 100644
index 93f4a10..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsConstructorInterface_h
-#define MozjsConstructorInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/constructor_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsConstructorInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsConstructorInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_with_arguments_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_with_arguments_interface.cc
deleted file mode 100644
index 754e7d5..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_with_arguments_interface.cc
+++ /dev/null
@@ -1,581 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_constructor_with_arguments_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::ConstructorWithArgumentsInterface;
-using cobalt::bindings::testing::MozjsConstructorWithArgumentsInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsConstructorWithArgumentsInterfaceHandler : public ProxyHandler {
- public:
-  MozjsConstructorWithArgumentsInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsConstructorWithArgumentsInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsConstructorWithArgumentsInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsConstructorWithArgumentsInterfaceHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsConstructorWithArgumentsInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "ConstructorWithArgumentsInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "ConstructorWithArgumentsInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "ConstructorWithArgumentsInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool get_longArg(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsConstructorWithArgumentsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ConstructorWithArgumentsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ConstructorWithArgumentsInterface* impl =
-      wrapper_private->wrappable<ConstructorWithArgumentsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->long_arg(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_booleanArg(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsConstructorWithArgumentsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ConstructorWithArgumentsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ConstructorWithArgumentsInterface* impl =
-      wrapper_private->wrappable<ConstructorWithArgumentsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->boolean_arg(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_stringArg(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsConstructorWithArgumentsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ConstructorWithArgumentsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ConstructorWithArgumentsInterface* impl =
-      wrapper_private->wrappable<ConstructorWithArgumentsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->string_arg(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "longArg", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_longArg),
-      JSOP_NULLWRAPPER,
-  },
-  {  // Readonly attribute
-      "booleanArg", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_booleanArg),
-      JSOP_NULLWRAPPER,
-  },
-  {  // Readonly attribute
-      "stringArg", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_stringArg),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "ConstructorWithArgumentsInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(2);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsConstructorWithArgumentsInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsConstructorWithArgumentsInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsConstructorWithArgumentsInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsConstructorWithArgumentsInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  const size_t kMinArguments = 2;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg1;
-  TypeTraits<bool >::ConversionType arg2;
-  // Optional arguments with default values
-  TypeTraits<std::string >::ConversionType default_arg =
-      "default";
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &arg2);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-  size_t num_set_arguments = 3;
-  if (args.length() > 2) {
-    JS::RootedValue optional_value0(
-        context, args[2]);
-    FromJSValue(context,
-                optional_value0,
-                kNoConversionFlags,
-                &exception_state,
-                &default_arg);
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-  }
-
-  scoped_refptr<ConstructorWithArgumentsInterface> new_object =
-      new ConstructorWithArgumentsInterface(arg1, arg2, default_arg);
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_with_arguments_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_with_arguments_interface.h
deleted file mode 100644
index 058d6c4..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_constructor_with_arguments_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsConstructorWithArgumentsInterface_h
-#define MozjsConstructorWithArgumentsInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/constructor_with_arguments_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsConstructorWithArgumentsInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsConstructorWithArgumentsInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_dictionary.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_dictionary.cc
deleted file mode 100644
index 6c23574..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_dictionary.cc
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/dictionary-conversion.cc.template
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "cobalt/bindings/testing/derived_dictionary.h"
-
-#include "cobalt/script/exception_state.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "cobalt/bindings/testing/test_dictionary.h"
-
-using cobalt::bindings::testing::DerivedDictionary;
-using cobalt::bindings::testing::TestDictionary;
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-void ToJSValue(
-    JSContext* context,
-    const DerivedDictionary& in_dictionary,
-    JS::MutableHandleValue out_value) {
-  // Create a new object that will hold the dictionary values.
-  JS::RootedObject dictionary_object(
-      context, JS_NewObject(context, NULL, NULL, NULL));
-  const int kPropertyAttributes = JSPROP_ENUMERATE;
-  if (in_dictionary.has_additional_member()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.additional_member(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "additionalMember",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  out_value.set(OBJECT_TO_JSVAL(dictionary_object));
-}
-
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 DerivedDictionary* out_dictionary) {
-  DCHECK_EQ(0, conversion_flags) << "Unexpected conversion flags.";
-  FromJSValue(context, value, conversion_flags, exception_state,
-      static_cast<cobalt::bindings::testing::TestDictionary*>(out_dictionary));
-  // https://heycam.github.io/webidl/#es-dictionary
-
-  if (value.isUndefined() || value.isNull()) {
-    // The default constructor will assign appropriate values to dictionary
-    // members with default values and leave the others unset.
-    *out_dictionary = DerivedDictionary();
-    return;
-  }
-  if (!value.isObject()) {
-    // 1. If Type(V) is not Undefined, Null or Object, then throw a TypeError.
-    exception_state->SetSimpleException(kNotObjectType);
-    return;
-  }
-  JS::RootedObject dictionary_object(context, JSVAL_TO_OBJECT(value));
-  JS::RootedValue additional_member(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "additionalMember",
-                      additional_member.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!additional_member.isUndefined()) {
-    bool converted_value;
-    FromJSValue(context,
-                additional_member,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_additional_member(converted_value);
-  }
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_getter_setter_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_getter_setter_interface.cc
deleted file mode 100644
index ed56d9f..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_getter_setter_interface.cc
+++ /dev/null
@@ -1,904 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_derived_getter_setter_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/mozjs_named_indexed_getter_interface.h"
-#include "cobalt/bindings/testing/named_indexed_getter_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::DerivedGetterSetterInterface;
-using cobalt::bindings::testing::MozjsDerivedGetterSetterInterface;
-using cobalt::bindings::testing::MozjsNamedIndexedGetterInterface;
-using cobalt::bindings::testing::NamedIndexedGetterInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-bool IsSupportedNamedProperty(JSContext* context, JS::HandleObject object,
-                              const std::string& property_name) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  return impl->CanQueryNamedProperty(property_name);
-}
-
-void EnumerateSupportedNames(JSContext* context, JS::HandleObject object,
-                             JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  MozjsPropertyEnumerator enumerator(context, properties);
-  impl->EnumerateNamedProperties(&enumerator);
-}
-
-JSBool GetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->AnonymousNamedGetter(property_name),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->AnonymousNamedSetter(property_name, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-bool IsSupportedIndexProperty(JSContext* context, JS::HandleObject object,
-                              uint32_t index) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  return index < impl->length();
-}
-
-void EnumerateSupportedIndexes(JSContext* context, JS::HandleObject object,
-                               JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  const uint32_t kNumIndexedProperties = impl->length();
-  for (uint32_t i = 0; i < kNumIndexedProperties; ++i) {
-    properties->append(INT_TO_JSID(i));
-  }
-}
-
-JSBool GetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->DerivedIndexedGetter(index),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if(exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<uint32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->DerivedIndexedSetter(index, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-class MozjsDerivedGetterSetterInterfaceHandler : public ProxyHandler {
- public:
-  MozjsDerivedGetterSetterInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsDerivedGetterSetterInterfaceHandler::named_property_hooks = {
-  IsSupportedNamedProperty,
-  EnumerateSupportedNames,
-  GetNamedProperty,
-  SetNamedProperty,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsDerivedGetterSetterInterfaceHandler::indexed_property_hooks = {
-  IsSupportedIndexProperty,
-  EnumerateSupportedIndexes,
-  GetIndexedProperty,
-  SetIndexedProperty,
-  NULL,
-};
-
-static base::LazyInstance<MozjsDerivedGetterSetterInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsDerivedGetterSetterInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "DerivedGetterSetterInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "DerivedGetterSetterInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "DerivedGetterSetterInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_length(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDerivedGetterSetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DerivedGetterSetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->length(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_propertyOnDerivedClass(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDerivedGetterSetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DerivedGetterSetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->property_on_derived_class(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_propertyOnDerivedClass(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDerivedGetterSetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DerivedGetterSetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  TypeTraits<bool >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_property_on_derived_class(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_derivedIndexedGetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsDerivedGetterSetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DerivedGetterSetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint32_t >::ConversionType index;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->DerivedIndexedGetter(index),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_derivedIndexedSetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsDerivedGetterSetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DerivedGetterSetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-  const size_t kMinArguments = 2;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint32_t >::ConversionType index;
-  TypeTraits<uint32_t >::ConversionType value;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->DerivedIndexedSetter(index, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_operationOnDerivedClass(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsDerivedGetterSetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DerivedGetterSetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedGetterSetterInterface* impl =
-      wrapper_private->wrappable<DerivedGetterSetterInterface>().get();
-
-  impl->OperationOnDerivedClass();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "length", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_length),
-      JSOP_NULLWRAPPER,
-  },
-  {  // Read/Write property
-      "propertyOnDerivedClass", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_propertyOnDerivedClass),
-      JSOP_WRAPPER(&set_propertyOnDerivedClass),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "derivedIndexedGetter",
-      JSOP_WRAPPER(&fcn_derivedIndexedGetter),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "derivedIndexedSetter",
-      JSOP_WRAPPER(&fcn_derivedIndexedSetter),
-      2,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "operationOnDerivedClass",
-      JSOP_WRAPPER(&fcn_operationOnDerivedClass),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, MozjsNamedIndexedGetterInterface::GetPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "DerivedGetterSetterInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsDerivedGetterSetterInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsDerivedGetterSetterInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsDerivedGetterSetterInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsDerivedGetterSetterInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_getter_setter_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_getter_setter_interface.h
deleted file mode 100644
index 8d25c7a..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_getter_setter_interface.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsDerivedGetterSetterInterface_h
-#define MozjsDerivedGetterSetterInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/derived_getter_setter_interface.h"
-#include "cobalt/bindings/testing/mozjs_named_indexed_getter_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsDerivedGetterSetterInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsDerivedGetterSetterInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_interface.cc
deleted file mode 100644
index ca7f7ce..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_interface.cc
+++ /dev/null
@@ -1,498 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_derived_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/base_interface.h"
-#include "cobalt/bindings/testing/mozjs_base_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::DerivedInterface;
-using cobalt::bindings::testing::MozjsDerivedInterface;
-using cobalt::bindings::testing::BaseInterface;
-using cobalt::bindings::testing::MozjsBaseInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsDerivedInterfaceHandler : public ProxyHandler {
- public:
-  MozjsDerivedInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsDerivedInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsDerivedInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsDerivedInterfaceHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsDerivedInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "DerivedInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "DerivedInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "DerivedInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool get_derivedAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDerivedInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DerivedInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedInterface* impl =
-      wrapper_private->wrappable<DerivedInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->derived_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_derivedOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsDerivedInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DerivedInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DerivedInterface* impl =
-      wrapper_private->wrappable<DerivedInterface>().get();
-
-  impl->DerivedOperation();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "derivedAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_derivedAttribute),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "derivedOperation",
-      JSOP_WRAPPER(&fcn_derivedOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, MozjsBaseInterface::GetPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "DerivedInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsDerivedInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsDerivedInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsDerivedInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsDerivedInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<DerivedInterface> new_object =
-      new DerivedInterface();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_interface.h
deleted file mode 100644
index 0fd2ca4..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_derived_interface.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsDerivedInterface_h
-#define MozjsDerivedInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/derived_interface.h"
-#include "cobalt/bindings/testing/mozjs_base_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsDerivedInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsDerivedInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dictionary_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dictionary_interface.cc
deleted file mode 100644
index 1a32edc..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dictionary_interface.cc
+++ /dev/null
@@ -1,676 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_dictionary_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/derived_dictionary.h"
-#include "cobalt/bindings/testing/dictionary_with_dictionary_member.h"
-#include "cobalt/bindings/testing/test_dictionary.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::DictionaryInterface;
-using cobalt::bindings::testing::MozjsDictionaryInterface;
-using cobalt::bindings::testing::DerivedDictionary;
-using cobalt::bindings::testing::DictionaryWithDictionaryMember;
-using cobalt::bindings::testing::TestDictionary;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsDictionaryInterfaceHandler : public ProxyHandler {
- public:
-  MozjsDictionaryInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsDictionaryInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsDictionaryInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsDictionaryInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsDictionaryInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "DictionaryInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "DictionaryInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "DictionaryInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_dictionarySequence(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDictionaryInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DictionaryInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DictionaryInterface* impl =
-      wrapper_private->wrappable<DictionaryInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->dictionary_sequence(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_dictionarySequence(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDictionaryInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DictionaryInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DictionaryInterface* impl =
-      wrapper_private->wrappable<DictionaryInterface>().get();
-  TypeTraits<::cobalt::script::Sequence< TestDictionary > >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_dictionary_sequence(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_derivedDictionaryOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsDictionaryInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DictionaryInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DictionaryInterface* impl =
-      wrapper_private->wrappable<DictionaryInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<DerivedDictionary >::ConversionType dictionary;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &dictionary);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->DerivedDictionaryOperation(dictionary);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_dictionaryOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsDictionaryInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DictionaryInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DictionaryInterface* impl =
-      wrapper_private->wrappable<DictionaryInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<TestDictionary >::ConversionType dictionary;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &dictionary);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->DictionaryOperation(dictionary);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_testOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsDictionaryInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DictionaryInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DictionaryInterface* impl =
-      wrapper_private->wrappable<DictionaryInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<DictionaryWithDictionaryMember >::ConversionType dict;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &dict);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->TestOperation(dict);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "dictionarySequence", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_dictionarySequence),
-      JSOP_WRAPPER(&set_dictionarySequence),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "derivedDictionaryOperation",
-      JSOP_WRAPPER(&fcn_derivedDictionaryOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "dictionaryOperation",
-      JSOP_WRAPPER(&fcn_dictionaryOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "testOperation",
-      JSOP_WRAPPER(&fcn_testOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "DictionaryInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsDictionaryInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsDictionaryInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsDictionaryInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsDictionaryInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dictionary_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dictionary_interface.h
deleted file mode 100644
index 3fdd54b..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dictionary_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsDictionaryInterface_h
-#define MozjsDictionaryInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/dictionary_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsDictionaryInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsDictionaryInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dictionary_with_dictionary_member.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dictionary_with_dictionary_member.cc
deleted file mode 100644
index 50e5fde..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dictionary_with_dictionary_member.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/dictionary-conversion.cc.template
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "cobalt/bindings/testing/dictionary_with_dictionary_member.h"
-
-#include "cobalt/script/exception_state.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "cobalt/bindings/testing/test_dictionary.h"
-
-using cobalt::bindings::testing::DictionaryWithDictionaryMember;
-using cobalt::bindings::testing::TestDictionary;
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-void ToJSValue(
-    JSContext* context,
-    const DictionaryWithDictionaryMember& in_dictionary,
-    JS::MutableHandleValue out_value) {
-  // Create a new object that will hold the dictionary values.
-  JS::RootedObject dictionary_object(
-      context, JS_NewObject(context, NULL, NULL, NULL));
-  const int kPropertyAttributes = JSPROP_ENUMERATE;
-  if (in_dictionary.has_nested_dictionary()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.nested_dictionary(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "nestedDictionary",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  out_value.set(OBJECT_TO_JSVAL(dictionary_object));
-}
-
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 DictionaryWithDictionaryMember* out_dictionary) {
-  DCHECK_EQ(0, conversion_flags) << "Unexpected conversion flags.";
-  // https://heycam.github.io/webidl/#es-dictionary
-
-  if (value.isUndefined() || value.isNull()) {
-    // The default constructor will assign appropriate values to dictionary
-    // members with default values and leave the others unset.
-    *out_dictionary = DictionaryWithDictionaryMember();
-    return;
-  }
-  if (!value.isObject()) {
-    // 1. If Type(V) is not Undefined, Null or Object, then throw a TypeError.
-    exception_state->SetSimpleException(kNotObjectType);
-    return;
-  }
-  JS::RootedObject dictionary_object(context, JSVAL_TO_OBJECT(value));
-  JS::RootedValue nested_dictionary(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "nestedDictionary",
-                      nested_dictionary.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!nested_dictionary.isUndefined()) {
-    TestDictionary converted_value;
-    FromJSValue(context,
-                nested_dictionary,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_nested_dictionary(converted_value);
-  }
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_disabled_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_disabled_interface.cc
deleted file mode 100644
index c3cbbef..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_disabled_interface.cc
+++ /dev/null
@@ -1,513 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#if defined(NO_ENABLE_CONDITIONAL_INTERFACE)
-
-#include "cobalt/bindings/testing/mozjs_disabled_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::DisabledInterface;
-using cobalt::bindings::testing::MozjsDisabledInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsDisabledInterfaceHandler : public ProxyHandler {
- public:
-  MozjsDisabledInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsDisabledInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsDisabledInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsDisabledInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsDisabledInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "DisabledInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "DisabledInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "DisabledInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_disabledProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDisabledInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DisabledInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DisabledInterface* impl =
-      wrapper_private->wrappable<DisabledInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->disabled_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_disabledProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDisabledInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DisabledInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DisabledInterface* impl =
-      wrapper_private->wrappable<DisabledInterface>().get();
-  TypeTraits<int32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_disabled_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_disabledFunction(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsDisabledInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DisabledInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DisabledInterface* impl =
-      wrapper_private->wrappable<DisabledInterface>().get();
-
-  impl->DisabledFunction();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "disabledProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_disabledProperty),
-      JSOP_WRAPPER(&set_disabledProperty),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "disabledFunction",
-      JSOP_WRAPPER(&fcn_disabledFunction),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "DisabledInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsDisabledInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsDisabledInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsDisabledInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsDisabledInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-#endif  // defined(NO_ENABLE_CONDITIONAL_INTERFACE)
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_disabled_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_disabled_interface.h
deleted file mode 100644
index 70574a4..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_disabled_interface.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsDisabledInterface_h
-#define MozjsDisabledInterface_h
-
-#if defined(NO_ENABLE_CONDITIONAL_INTERFACE)
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/disabled_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsDisabledInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // defined(NO_ENABLE_CONDITIONAL_INTERFACE)
-
-#endif  // MozjsDisabledInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dom_string_test_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dom_string_test_interface.cc
deleted file mode 100644
index 68fa836..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dom_string_test_interface.cc
+++ /dev/null
@@ -1,815 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_dom_string_test_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::DOMStringTestInterface;
-using cobalt::bindings::testing::MozjsDOMStringTestInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsDOMStringTestInterfaceHandler : public ProxyHandler {
- public:
-  MozjsDOMStringTestInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsDOMStringTestInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsDOMStringTestInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsDOMStringTestInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsDOMStringTestInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "DOMStringTestInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "DOMStringTestInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "DOMStringTestInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_property(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_property(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_readOnlyProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->read_only_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_readOnlyTokenProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->read_only_token_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_nullIsEmptyProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->null_is_empty_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_nullIsEmptyProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagTreatNullAsEmptyString), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_null_is_empty_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_undefinedIsEmptyProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->undefined_is_empty_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_undefinedIsEmptyProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagTreatUndefinedAsEmptyString), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_undefined_is_empty_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_nullableUndefinedIsEmptyProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->nullable_undefined_is_empty_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_nullableUndefinedIsEmptyProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsDOMStringTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<DOMStringTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  DOMStringTestInterface* impl =
-      wrapper_private->wrappable<DOMStringTestInterface>().get();
-  TypeTraits<base::optional<std::string > >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable | kConversionFlagTreatUndefinedAsEmptyString), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_nullable_undefined_is_empty_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "property", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_property),
-      JSOP_WRAPPER(&set_property),
-  },
-  {  // Readonly attribute
-      "readOnlyProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_readOnlyProperty),
-      JSOP_NULLWRAPPER,
-  },
-  {  // Readonly attribute
-      "readOnlyTokenProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_readOnlyTokenProperty),
-      JSOP_NULLWRAPPER,
-  },
-  {  // Read/Write property
-      "nullIsEmptyProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_nullIsEmptyProperty),
-      JSOP_WRAPPER(&set_nullIsEmptyProperty),
-  },
-  {  // Read/Write property
-      "undefinedIsEmptyProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_undefinedIsEmptyProperty),
-      JSOP_WRAPPER(&set_undefinedIsEmptyProperty),
-  },
-  {  // Read/Write property
-      "nullableUndefinedIsEmptyProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_nullableUndefinedIsEmptyProperty),
-      JSOP_WRAPPER(&set_nullableUndefinedIsEmptyProperty),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "DOMStringTestInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsDOMStringTestInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsDOMStringTestInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsDOMStringTestInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsDOMStringTestInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dom_string_test_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dom_string_test_interface.h
deleted file mode 100644
index 8145570..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_dom_string_test_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsDOMStringTestInterface_h
-#define MozjsDOMStringTestInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/dom_string_test_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsDOMStringTestInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsDOMStringTestInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_enumeration_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_enumeration_interface.cc
deleted file mode 100644
index 17e8569..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_enumeration_interface.cc
+++ /dev/null
@@ -1,553 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_enumeration_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/test_enum.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::EnumerationInterface;
-using cobalt::bindings::testing::MozjsEnumerationInterface;
-using cobalt::bindings::testing::TestEnum;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsEnumerationInterfaceHandler : public ProxyHandler {
- public:
-  MozjsEnumerationInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsEnumerationInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsEnumerationInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsEnumerationInterfaceHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsEnumerationInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "EnumerationInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "EnumerationInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "EnumerationInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool get_enumProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsEnumerationInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<EnumerationInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  EnumerationInterface* impl =
-      wrapper_private->wrappable<EnumerationInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->enum_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_enumProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsEnumerationInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<EnumerationInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  EnumerationInterface* impl =
-      wrapper_private->wrappable<EnumerationInterface>().get();
-  TypeTraits<TestEnum >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_enum_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_optionalEnumWithDefault(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsEnumerationInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<EnumerationInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  EnumerationInterface* impl =
-      wrapper_private->wrappable<EnumerationInterface>().get();
-  // Optional arguments with default values
-  TypeTraits<TestEnum >::ConversionType value =
-      kTestEnumBeta;
-  size_t num_set_arguments = 1;
-  if (args.length() > 0) {
-    JS::RootedValue optional_value0(
-        context, args[0]);
-    FromJSValue(context,
-                optional_value0,
-                kNoConversionFlags,
-                &exception_state,
-                &value);
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-  }
-
-  impl->OptionalEnumWithDefault(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "enumProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_enumProperty),
-      JSOP_WRAPPER(&set_enumProperty),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "optionalEnumWithDefault",
-      JSOP_WRAPPER(&fcn_optionalEnumWithDefault),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "EnumerationInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsEnumerationInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsEnumerationInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsEnumerationInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsEnumerationInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<EnumerationInterface> new_object =
-      new EnumerationInterface();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_enumeration_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_enumeration_interface.h
deleted file mode 100644
index b30fe69..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_enumeration_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsEnumerationInterface_h
-#define MozjsEnumerationInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/enumeration_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsEnumerationInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsEnumerationInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exception_object_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exception_object_interface.cc
deleted file mode 100644
index 9b4ff43..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exception_object_interface.cc
+++ /dev/null
@@ -1,467 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_exception_object_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsexn.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::ExceptionObjectInterface;
-using cobalt::bindings::testing::MozjsExceptionObjectInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsExceptionObjectInterfaceHandler : public ProxyHandler {
- public:
-  MozjsExceptionObjectInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsExceptionObjectInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsExceptionObjectInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsExceptionObjectInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsExceptionObjectInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "ExceptionObjectInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "ExceptionObjectInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "ExceptionObjectInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_error(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsExceptionObjectInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ExceptionObjectInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ExceptionObjectInterface* impl =
-      wrapper_private->wrappable<ExceptionObjectInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->error(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_message(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsExceptionObjectInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ExceptionObjectInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ExceptionObjectInterface* impl =
-      wrapper_private->wrappable<ExceptionObjectInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->message(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "error", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_error),
-      JSOP_NULLWRAPPER,
-  },
-  {  // Readonly attribute
-      "message", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_message),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  // Get Error prototype.
-  JS::RootedObject parent_prototype(context);
-  bool success_check = js_GetClassPrototype(
-      context, GetExceptionProtoKey(JSEXN_ERR), &parent_prototype);
-  DCHECK(success_check);
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "ExceptionObjectInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsExceptionObjectInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsExceptionObjectInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsExceptionObjectInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsExceptionObjectInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exception_object_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exception_object_interface.h
deleted file mode 100644
index 9f38fbe..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exception_object_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsExceptionObjectInterface_h
-#define MozjsExceptionObjectInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/exception_object_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsExceptionObjectInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsExceptionObjectInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exceptions_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exceptions_interface.cc
deleted file mode 100644
index f4b2722..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exceptions_interface.cc
+++ /dev/null
@@ -1,539 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_exceptions_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::ExceptionsInterface;
-using cobalt::bindings::testing::MozjsExceptionsInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsExceptionsInterfaceHandler : public ProxyHandler {
- public:
-  MozjsExceptionsInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsExceptionsInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsExceptionsInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsExceptionsInterfaceHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsExceptionsInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "ExceptionsInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "ExceptionsInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "ExceptionsInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool get_attributeThrowsException(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsExceptionsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ExceptionsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ExceptionsInterface* impl =
-      wrapper_private->wrappable<ExceptionsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->attribute_throws_exception(&exception_state),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_attributeThrowsException(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsExceptionsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ExceptionsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ExceptionsInterface* impl =
-      wrapper_private->wrappable<ExceptionsInterface>().get();
-  TypeTraits<bool >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_attribute_throws_exception(value, &exception_state);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_functionThrowsException(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsExceptionsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ExceptionsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ExceptionsInterface* impl =
-      wrapper_private->wrappable<ExceptionsInterface>().get();
-
-  impl->FunctionThrowsException(&exception_state);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "attributeThrowsException", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_attributeThrowsException),
-      JSOP_WRAPPER(&set_attributeThrowsException),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "functionThrowsException",
-      JSOP_WRAPPER(&fcn_functionThrowsException),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "ExceptionsInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsExceptionsInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsExceptionsInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsExceptionsInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsExceptionsInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<ExceptionsInterface> new_object =
-      new ExceptionsInterface(&exception_state);
-  // In case that an exception is thrown from constructor.
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exceptions_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exceptions_interface.h
deleted file mode 100644
index 49f9a24..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_exceptions_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsExceptionsInterface_h
-#define MozjsExceptionsInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/exceptions_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsExceptionsInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsExceptionsInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_extended_idl_attributes_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_extended_idl_attributes_interface.cc
deleted file mode 100644
index 1ff02f5..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_extended_idl_attributes_interface.cc
+++ /dev/null
@@ -1,583 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_extended_idl_attributes_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::ExtendedIDLAttributesInterface;
-using cobalt::bindings::testing::MozjsExtendedIDLAttributesInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsExtendedIDLAttributesInterfaceHandler : public ProxyHandler {
- public:
-  MozjsExtendedIDLAttributesInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsExtendedIDLAttributesInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsExtendedIDLAttributesInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsExtendedIDLAttributesInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsExtendedIDLAttributesInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "ExtendedIDLAttributesInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "ExtendedIDLAttributesInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "ExtendedIDLAttributesInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_default(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsExtendedIDLAttributesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ExtendedIDLAttributesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ExtendedIDLAttributesInterface* impl =
-      wrapper_private->wrappable<ExtendedIDLAttributesInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->attribute_default(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_default(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsExtendedIDLAttributesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ExtendedIDLAttributesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ExtendedIDLAttributesInterface* impl =
-      wrapper_private->wrappable<ExtendedIDLAttributesInterface>().get();
-  TypeTraits<bool >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_attribute_default(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_callWithSettings(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsExtendedIDLAttributesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ExtendedIDLAttributesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ExtendedIDLAttributesInterface* impl =
-      wrapper_private->wrappable<ExtendedIDLAttributesInterface>().get();
-  MozjsGlobalEnvironment* callwith_global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-
-  impl->CallWithSettings(callwith_global_environment->GetEnvironmentSettings());
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_clampArgument(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsExtendedIDLAttributesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ExtendedIDLAttributesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ExtendedIDLAttributesInterface* impl =
-      wrapper_private->wrappable<ExtendedIDLAttributesInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint16_t >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              (kConversionFlagClamped),
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->ClampArgument(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "default", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_default),
-      JSOP_WRAPPER(&set_default),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "callWithSettings",
-      JSOP_WRAPPER(&fcn_callWithSettings),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "clampArgument",
-      JSOP_WRAPPER(&fcn_clampArgument),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "ExtendedIDLAttributesInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsExtendedIDLAttributesInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsExtendedIDLAttributesInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsExtendedIDLAttributesInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsExtendedIDLAttributesInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_extended_idl_attributes_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_extended_idl_attributes_interface.h
deleted file mode 100644
index 6d676fb..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_extended_idl_attributes_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsExtendedIDLAttributesInterface_h
-#define MozjsExtendedIDLAttributesInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/extended_idl_attributes_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsExtendedIDLAttributesInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsExtendedIDLAttributesInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_garbage_collection_test_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_garbage_collection_test_interface.cc
deleted file mode 100644
index eb0a945..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_garbage_collection_test_interface.cc
+++ /dev/null
@@ -1,574 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_garbage_collection_test_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/garbage_collection_test_interface.h"
-#include "cobalt/bindings/testing/mozjs_garbage_collection_test_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::GarbageCollectionTestInterface;
-using cobalt::bindings::testing::MozjsGarbageCollectionTestInterface;
-using cobalt::bindings::testing::GarbageCollectionTestInterface;
-using cobalt::bindings::testing::MozjsGarbageCollectionTestInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsGarbageCollectionTestInterfaceHandler : public ProxyHandler {
- public:
-  MozjsGarbageCollectionTestInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsGarbageCollectionTestInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsGarbageCollectionTestInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsGarbageCollectionTestInterfaceHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsGarbageCollectionTestInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "GarbageCollectionTestInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "GarbageCollectionTestInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "GarbageCollectionTestInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool get_previous(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsGarbageCollectionTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<GarbageCollectionTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  GarbageCollectionTestInterface* impl =
-      wrapper_private->wrappable<GarbageCollectionTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->previous(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_previous(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsGarbageCollectionTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<GarbageCollectionTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  GarbageCollectionTestInterface* impl =
-      wrapper_private->wrappable<GarbageCollectionTestInterface>().get();
-  TypeTraits<scoped_refptr<GarbageCollectionTestInterface> >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_previous(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_next(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsGarbageCollectionTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<GarbageCollectionTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  GarbageCollectionTestInterface* impl =
-      wrapper_private->wrappable<GarbageCollectionTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->next(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_next(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsGarbageCollectionTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<GarbageCollectionTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  GarbageCollectionTestInterface* impl =
-      wrapper_private->wrappable<GarbageCollectionTestInterface>().get();
-  TypeTraits<scoped_refptr<GarbageCollectionTestInterface> >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_next(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "previous", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_previous),
-      JSOP_WRAPPER(&set_previous),
-  },
-  {  // Read/Write property
-      "next", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_next),
-      JSOP_WRAPPER(&set_next),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "GarbageCollectionTestInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsGarbageCollectionTestInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsGarbageCollectionTestInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsGarbageCollectionTestInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsGarbageCollectionTestInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<GarbageCollectionTestInterface> new_object =
-      new GarbageCollectionTestInterface();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_garbage_collection_test_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_garbage_collection_test_interface.h
deleted file mode 100644
index 3dec722..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_garbage_collection_test_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsGarbageCollectionTestInterface_h
-#define MozjsGarbageCollectionTestInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/garbage_collection_test_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsGarbageCollectionTestInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsGarbageCollectionTestInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_global_interface_parent.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_global_interface_parent.cc
deleted file mode 100644
index acafd45..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_global_interface_parent.cc
+++ /dev/null
@@ -1,422 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_global_interface_parent.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::GlobalInterfaceParent;
-using cobalt::bindings::testing::MozjsGlobalInterfaceParent;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsGlobalInterfaceParentHandler : public ProxyHandler {
- public:
-  MozjsGlobalInterfaceParentHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsGlobalInterfaceParentHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsGlobalInterfaceParentHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsGlobalInterfaceParentHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsGlobalInterfaceParent::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "GlobalInterfaceParent";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "GlobalInterfaceParentPrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "GlobalInterfaceParentConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool fcn_parentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsGlobalInterfaceParent::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<GlobalInterfaceParent>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  GlobalInterfaceParent* impl =
-      wrapper_private->wrappable<GlobalInterfaceParent>().get();
-
-  impl->ParentOperation();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "parentOperation",
-      JSOP_WRAPPER(&fcn_parentOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "GlobalInterfaceParent";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsGlobalInterfaceParent::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsGlobalInterfaceParent::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsGlobalInterfaceParent::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsGlobalInterfaceParent::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_global_interface_parent.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_global_interface_parent.h
deleted file mode 100644
index 106063b..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_global_interface_parent.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsGlobalInterfaceParent_h
-#define MozjsGlobalInterfaceParent_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/global_interface_parent.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsGlobalInterfaceParent {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsGlobalInterfaceParent_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_indexed_getter_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_indexed_getter_interface.cc
deleted file mode 100644
index a884585..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_indexed_getter_interface.cc
+++ /dev/null
@@ -1,753 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_indexed_getter_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::IndexedGetterInterface;
-using cobalt::bindings::testing::MozjsIndexedGetterInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-bool IsSupportedIndexProperty(JSContext* context, JS::HandleObject object,
-                              uint32_t index) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  IndexedGetterInterface* impl =
-      wrapper_private->wrappable<IndexedGetterInterface>().get();
-  return index < impl->length();
-}
-
-void EnumerateSupportedIndexes(JSContext* context, JS::HandleObject object,
-                               JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  IndexedGetterInterface* impl =
-      wrapper_private->wrappable<IndexedGetterInterface>().get();
-  const uint32_t kNumIndexedProperties = impl->length();
-  for (uint32_t i = 0; i < kNumIndexedProperties; ++i) {
-    properties->append(INT_TO_JSID(i));
-  }
-}
-
-JSBool GetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  IndexedGetterInterface* impl =
-      wrapper_private->wrappable<IndexedGetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->IndexedGetter(index),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  IndexedGetterInterface* impl =
-      wrapper_private->wrappable<IndexedGetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if(exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<uint32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->IndexedSetter(index, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-bool DeleteIndexedProperty(
-    JSContext* context, JS::HandleObject object, uint32_t index) {
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  IndexedGetterInterface* impl =
-      wrapper_private->wrappable<IndexedGetterInterface>().get();
-
-  impl->IndexedDeleter(index);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-class MozjsIndexedGetterInterfaceHandler : public ProxyHandler {
- public:
-  MozjsIndexedGetterInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsIndexedGetterInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsIndexedGetterInterfaceHandler::indexed_property_hooks = {
-  IsSupportedIndexProperty,
-  EnumerateSupportedIndexes,
-  GetIndexedProperty,
-  SetIndexedProperty,
-  DeleteIndexedProperty,
-};
-
-static base::LazyInstance<MozjsIndexedGetterInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsIndexedGetterInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "IndexedGetterInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "IndexedGetterInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "IndexedGetterInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_length(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<IndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  IndexedGetterInterface* impl =
-      wrapper_private->wrappable<IndexedGetterInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->length(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_indexedDeleter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<IndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  IndexedGetterInterface* impl =
-      wrapper_private->wrappable<IndexedGetterInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint32_t >::ConversionType index;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->IndexedDeleter(index);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_indexedGetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<IndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  IndexedGetterInterface* impl =
-      wrapper_private->wrappable<IndexedGetterInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint32_t >::ConversionType index;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->IndexedGetter(index),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_indexedSetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<IndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  IndexedGetterInterface* impl =
-      wrapper_private->wrappable<IndexedGetterInterface>().get();
-  const size_t kMinArguments = 2;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint32_t >::ConversionType index;
-  TypeTraits<uint32_t >::ConversionType value;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->IndexedSetter(index, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "length", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_length),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "indexedDeleter",
-      JSOP_WRAPPER(&fcn_indexedDeleter),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "indexedGetter",
-      JSOP_WRAPPER(&fcn_indexedGetter),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "indexedSetter",
-      JSOP_WRAPPER(&fcn_indexedSetter),
-      2,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "IndexedGetterInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsIndexedGetterInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsIndexedGetterInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsIndexedGetterInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsIndexedGetterInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_indexed_getter_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_indexed_getter_interface.h
deleted file mode 100644
index 37311fe..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_indexed_getter_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsIndexedGetterInterface_h
-#define MozjsIndexedGetterInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/indexed_getter_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsIndexedGetterInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsIndexedGetterInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any.cc
deleted file mode 100644
index e5b69e4..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any.cc
+++ /dev/null
@@ -1,524 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_interface_with_any.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::InterfaceWithAny;
-using cobalt::bindings::testing::MozjsInterfaceWithAny;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsInterfaceWithAnyHandler : public ProxyHandler {
- public:
-  MozjsInterfaceWithAnyHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsInterfaceWithAnyHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsInterfaceWithAnyHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsInterfaceWithAnyHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsInterfaceWithAny::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "InterfaceWithAny";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "InterfaceWithAnyPrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "InterfaceWithAnyConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool fcn_getAny(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsInterfaceWithAny::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<InterfaceWithAny>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  InterfaceWithAny* impl =
-      wrapper_private->wrappable<InterfaceWithAny>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetAny(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setAny(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsInterfaceWithAny::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<InterfaceWithAny>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  InterfaceWithAny* impl =
-      wrapper_private->wrappable<InterfaceWithAny>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::ValueHandle >::ConversionType value;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->SetAny(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "getAny",
-      JSOP_WRAPPER(&fcn_getAny),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setAny",
-      JSOP_WRAPPER(&fcn_setAny),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "InterfaceWithAny";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsInterfaceWithAny::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsInterfaceWithAny::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsInterfaceWithAny::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsInterfaceWithAny::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<InterfaceWithAny> new_object =
-      new InterfaceWithAny();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any.h
deleted file mode 100644
index 88c1219..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsInterfaceWithAny_h
-#define MozjsInterfaceWithAny_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/interface_with_any.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsInterfaceWithAny {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsInterfaceWithAny_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any_dictionary.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any_dictionary.cc
deleted file mode 100644
index 3fce4bc..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any_dictionary.cc
+++ /dev/null
@@ -1,642 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_interface_with_any_dictionary.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::InterfaceWithAnyDictionary;
-using cobalt::bindings::testing::MozjsInterfaceWithAnyDictionary;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsInterfaceWithAnyDictionaryHandler : public ProxyHandler {
- public:
-  MozjsInterfaceWithAnyDictionaryHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsInterfaceWithAnyDictionaryHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsInterfaceWithAnyDictionaryHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsInterfaceWithAnyDictionaryHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsInterfaceWithAnyDictionary::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "InterfaceWithAnyDictionary";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "InterfaceWithAnyDictionaryPrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "InterfaceWithAnyDictionaryConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool fcn_getAny(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsInterfaceWithAnyDictionary::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<InterfaceWithAnyDictionary>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  InterfaceWithAnyDictionary* impl =
-      wrapper_private->wrappable<InterfaceWithAnyDictionary>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetAny(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_hasAny(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsInterfaceWithAnyDictionary::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<InterfaceWithAnyDictionary>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  InterfaceWithAnyDictionary* impl =
-      wrapper_private->wrappable<InterfaceWithAnyDictionary>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->HasAny(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_hasAnyDefault(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsInterfaceWithAnyDictionary::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<InterfaceWithAnyDictionary>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  InterfaceWithAnyDictionary* impl =
-      wrapper_private->wrappable<InterfaceWithAnyDictionary>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->HasAnyDefault(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setAny(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsInterfaceWithAnyDictionary::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<InterfaceWithAnyDictionary>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  InterfaceWithAnyDictionary* impl =
-      wrapper_private->wrappable<InterfaceWithAnyDictionary>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::ValueHandle >::ConversionType value;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->SetAny(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "getAny",
-      JSOP_WRAPPER(&fcn_getAny),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "hasAny",
-      JSOP_WRAPPER(&fcn_hasAny),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "hasAnyDefault",
-      JSOP_WRAPPER(&fcn_hasAnyDefault),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setAny",
-      JSOP_WRAPPER(&fcn_setAny),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "InterfaceWithAnyDictionary";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsInterfaceWithAnyDictionary::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsInterfaceWithAnyDictionary::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsInterfaceWithAnyDictionary::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsInterfaceWithAnyDictionary::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<InterfaceWithAnyDictionary> new_object =
-      new InterfaceWithAnyDictionary();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any_dictionary.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any_dictionary.h
deleted file mode 100644
index 185dcbc..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_any_dictionary.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsInterfaceWithAnyDictionary_h
-#define MozjsInterfaceWithAnyDictionary_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/interface_with_any_dictionary.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsInterfaceWithAnyDictionary {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsInterfaceWithAnyDictionary_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_unsupported_properties.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_unsupported_properties.cc
deleted file mode 100644
index 2f323de..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_unsupported_properties.cc
+++ /dev/null
@@ -1,416 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_interface_with_unsupported_properties.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::InterfaceWithUnsupportedProperties;
-using cobalt::bindings::testing::MozjsInterfaceWithUnsupportedProperties;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsInterfaceWithUnsupportedPropertiesHandler : public ProxyHandler {
- public:
-  MozjsInterfaceWithUnsupportedPropertiesHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsInterfaceWithUnsupportedPropertiesHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsInterfaceWithUnsupportedPropertiesHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsInterfaceWithUnsupportedPropertiesHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsInterfaceWithUnsupportedProperties::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "InterfaceWithUnsupportedProperties";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "InterfaceWithUnsupportedPropertiesPrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "InterfaceWithUnsupportedPropertiesConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_supportedAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsInterfaceWithUnsupportedProperties::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<InterfaceWithUnsupportedProperties>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  InterfaceWithUnsupportedProperties* impl =
-      wrapper_private->wrappable<InterfaceWithUnsupportedProperties>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->supported_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "supportedAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_supportedAttribute),
-      JSOP_NULLWRAPPER,
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "InterfaceWithUnsupportedProperties";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsInterfaceWithUnsupportedProperties::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsInterfaceWithUnsupportedProperties::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsInterfaceWithUnsupportedProperties::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsInterfaceWithUnsupportedProperties::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_unsupported_properties.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_unsupported_properties.h
deleted file mode 100644
index 922145a..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_interface_with_unsupported_properties.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsInterfaceWithUnsupportedProperties_h
-#define MozjsInterfaceWithUnsupportedProperties_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/interface_with_unsupported_properties.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsInterfaceWithUnsupportedProperties {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsInterfaceWithUnsupportedProperties_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_constructor_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_constructor_interface.cc
deleted file mode 100644
index 052f2186..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_constructor_interface.cc
+++ /dev/null
@@ -1,394 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_named_constructor_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::NamedConstructorInterface;
-using cobalt::bindings::testing::MozjsNamedConstructorInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsNamedConstructorInterfaceHandler : public ProxyHandler {
- public:
-  MozjsNamedConstructorInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsNamedConstructorInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsNamedConstructorInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsNamedConstructorInterfaceHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsNamedConstructorInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "NamedConstructorInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "NamedConstructorInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "NamedConstructorInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "SomeNamedConstructor";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsNamedConstructorInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsNamedConstructorInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsNamedConstructorInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsNamedConstructorInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<NamedConstructorInterface> new_object =
-      new NamedConstructorInterface();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_constructor_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_constructor_interface.h
deleted file mode 100644
index d2a5804..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_constructor_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsNamedConstructorInterface_h
-#define MozjsNamedConstructorInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/named_constructor_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsNamedConstructorInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsNamedConstructorInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_getter_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_getter_interface.cc
deleted file mode 100644
index 81ab465..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_getter_interface.cc
+++ /dev/null
@@ -1,707 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_named_getter_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::NamedGetterInterface;
-using cobalt::bindings::testing::MozjsNamedGetterInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-bool IsSupportedNamedProperty(JSContext* context, JS::HandleObject object,
-                              const std::string& property_name) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedGetterInterface* impl =
-      wrapper_private->wrappable<NamedGetterInterface>().get();
-  return impl->CanQueryNamedProperty(property_name);
-}
-
-void EnumerateSupportedNames(JSContext* context, JS::HandleObject object,
-                             JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedGetterInterface* impl =
-      wrapper_private->wrappable<NamedGetterInterface>().get();
-  MozjsPropertyEnumerator enumerator(context, properties);
-  impl->EnumerateNamedProperties(&enumerator);
-}
-
-JSBool GetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedGetterInterface* impl =
-      wrapper_private->wrappable<NamedGetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->NamedGetter(property_name),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedGetterInterface* impl =
-      wrapper_private->wrappable<NamedGetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->NamedSetter(property_name, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-bool DeleteNamedProperty(JSContext* context, JS::HandleObject object,
-                         const std::string& property_name) {
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedGetterInterface* impl =
-      wrapper_private->wrappable<NamedGetterInterface>().get();
-
-  impl->NamedDeleter(property_name);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-class MozjsNamedGetterInterfaceHandler : public ProxyHandler {
- public:
-  MozjsNamedGetterInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsNamedGetterInterfaceHandler::named_property_hooks = {
-  IsSupportedNamedProperty,
-  EnumerateSupportedNames,
-  GetNamedProperty,
-  SetNamedProperty,
-  DeleteNamedProperty,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsNamedGetterInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsNamedGetterInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsNamedGetterInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "NamedGetterInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "NamedGetterInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "NamedGetterInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool fcn_namedDeleter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNamedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedGetterInterface* impl =
-      wrapper_private->wrappable<NamedGetterInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<std::string >::ConversionType name;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &name);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->NamedDeleter(name);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_namedGetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNamedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedGetterInterface* impl =
-      wrapper_private->wrappable<NamedGetterInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<std::string >::ConversionType name;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &name);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->NamedGetter(name),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_namedSetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNamedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedGetterInterface* impl =
-      wrapper_private->wrappable<NamedGetterInterface>().get();
-  const size_t kMinArguments = 2;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<std::string >::ConversionType name;
-  TypeTraits<std::string >::ConversionType value;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &name);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->NamedSetter(name, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "namedDeleter",
-      JSOP_WRAPPER(&fcn_namedDeleter),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "namedGetter",
-      JSOP_WRAPPER(&fcn_namedGetter),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "namedSetter",
-      JSOP_WRAPPER(&fcn_namedSetter),
-      2,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "NamedGetterInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsNamedGetterInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsNamedGetterInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsNamedGetterInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsNamedGetterInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_getter_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_getter_interface.h
deleted file mode 100644
index a89d5de..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_getter_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsNamedGetterInterface_h
-#define MozjsNamedGetterInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/named_getter_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsNamedGetterInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsNamedGetterInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_indexed_getter_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_indexed_getter_interface.cc
deleted file mode 100644
index e242258..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_indexed_getter_interface.cc
+++ /dev/null
@@ -1,1060 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_named_indexed_getter_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::NamedIndexedGetterInterface;
-using cobalt::bindings::testing::MozjsNamedIndexedGetterInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-bool IsSupportedNamedProperty(JSContext* context, JS::HandleObject object,
-                              const std::string& property_name) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  return impl->CanQueryNamedProperty(property_name);
-}
-
-void EnumerateSupportedNames(JSContext* context, JS::HandleObject object,
-                             JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  MozjsPropertyEnumerator enumerator(context, properties);
-  impl->EnumerateNamedProperties(&enumerator);
-}
-
-JSBool GetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->NamedGetter(property_name),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->NamedSetter(property_name, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-bool IsSupportedIndexProperty(JSContext* context, JS::HandleObject object,
-                              uint32_t index) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  return index < impl->length();
-}
-
-void EnumerateSupportedIndexes(JSContext* context, JS::HandleObject object,
-                               JS::AutoIdVector* properties) {
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  const uint32_t kNumIndexedProperties = impl->length();
-  for (uint32_t i = 0; i < kNumIndexedProperties; ++i) {
-    properties->append(INT_TO_JSID(i));
-  }
-}
-
-JSBool GetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->IndexedGetter(index),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool SetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if(exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<uint32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->IndexedSetter(index, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-class MozjsNamedIndexedGetterInterfaceHandler : public ProxyHandler {
- public:
-  MozjsNamedIndexedGetterInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsNamedIndexedGetterInterfaceHandler::named_property_hooks = {
-  IsSupportedNamedProperty,
-  EnumerateSupportedNames,
-  GetNamedProperty,
-  SetNamedProperty,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsNamedIndexedGetterInterfaceHandler::indexed_property_hooks = {
-  IsSupportedIndexProperty,
-  EnumerateSupportedIndexes,
-  GetIndexedProperty,
-  SetIndexedProperty,
-  NULL,
-};
-
-static base::LazyInstance<MozjsNamedIndexedGetterInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsNamedIndexedGetterInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "NamedIndexedGetterInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "NamedIndexedGetterInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "NamedIndexedGetterInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_length(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNamedIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->length(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_propertyOnBaseClass(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNamedIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->property_on_base_class(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_propertyOnBaseClass(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNamedIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  TypeTraits<bool >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_property_on_base_class(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_indexedGetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNamedIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint32_t >::ConversionType index;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->IndexedGetter(index),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_indexedSetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNamedIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  const size_t kMinArguments = 2;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint32_t >::ConversionType index;
-  TypeTraits<uint32_t >::ConversionType value;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->IndexedSetter(index, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_namedGetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNamedIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<std::string >::ConversionType name;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &name);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->NamedGetter(name),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_namedSetter(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNamedIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-  const size_t kMinArguments = 2;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<std::string >::ConversionType name;
-  TypeTraits<std::string >::ConversionType value;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &name);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->NamedSetter(name, value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_operationOnBaseClass(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNamedIndexedGetterInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NamedIndexedGetterInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NamedIndexedGetterInterface* impl =
-      wrapper_private->wrappable<NamedIndexedGetterInterface>().get();
-
-  impl->OperationOnBaseClass();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Readonly attribute
-      "length", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_length),
-      JSOP_NULLWRAPPER,
-  },
-  {  // Read/Write property
-      "propertyOnBaseClass", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_propertyOnBaseClass),
-      JSOP_WRAPPER(&set_propertyOnBaseClass),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "indexedGetter",
-      JSOP_WRAPPER(&fcn_indexedGetter),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "indexedSetter",
-      JSOP_WRAPPER(&fcn_indexedSetter),
-      2,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "namedGetter",
-      JSOP_WRAPPER(&fcn_namedGetter),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "namedSetter",
-      JSOP_WRAPPER(&fcn_namedSetter),
-      2,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "operationOnBaseClass",
-      JSOP_WRAPPER(&fcn_operationOnBaseClass),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "NamedIndexedGetterInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsNamedIndexedGetterInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsNamedIndexedGetterInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsNamedIndexedGetterInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsNamedIndexedGetterInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_indexed_getter_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_indexed_getter_interface.h
deleted file mode 100644
index 8f2793d..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_named_indexed_getter_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsNamedIndexedGetterInterface_h
-#define MozjsNamedIndexedGetterInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/named_indexed_getter_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsNamedIndexedGetterInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsNamedIndexedGetterInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nested_put_forwards_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nested_put_forwards_interface.cc
deleted file mode 100644
index 6ba2f03..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nested_put_forwards_interface.cc
+++ /dev/null
@@ -1,483 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_nested_put_forwards_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/mozjs_put_forwards_interface.h"
-#include "cobalt/bindings/testing/put_forwards_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::NestedPutForwardsInterface;
-using cobalt::bindings::testing::MozjsNestedPutForwardsInterface;
-using cobalt::bindings::testing::MozjsPutForwardsInterface;
-using cobalt::bindings::testing::PutForwardsInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsNestedPutForwardsInterfaceHandler : public ProxyHandler {
- public:
-  MozjsNestedPutForwardsInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsNestedPutForwardsInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsNestedPutForwardsInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsNestedPutForwardsInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsNestedPutForwardsInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "NestedPutForwardsInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "NestedPutForwardsInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "NestedPutForwardsInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_nestedForwardingAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNestedPutForwardsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NestedPutForwardsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NestedPutForwardsInterface* impl =
-      wrapper_private->wrappable<NestedPutForwardsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->nested_forwarding_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_nestedForwardingAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNestedPutForwardsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NestedPutForwardsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NestedPutForwardsInterface* impl =
-      wrapper_private->wrappable<NestedPutForwardsInterface>().get();
-  { // Begin scope of scoped_refptr<PutForwardsInterface> forwarded_impl.
-    scoped_refptr<PutForwardsInterface> forwarded_impl =
-       impl->nested_forwarding_attribute();
-    if (!forwarded_impl) {
-      NOTREACHED();
-      return false;
-    }
-    if (!exception_state.is_exception_set()) {
-  { // Begin scope of scoped_refptr<ArbitraryInterface> forwarded_forwarded_impl.
-    scoped_refptr<ArbitraryInterface> forwarded_forwarded_impl =
-       forwarded_impl->forwarding_attribute();
-    if (!forwarded_forwarded_impl) {
-      NOTREACHED();
-      return false;
-    }
-    if (!exception_state.is_exception_set()) {
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  forwarded_forwarded_impl->set_arbitrary_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-    return !exception_state.is_exception_set();
-  } // End scope of scoped_refptr<ArbitraryInterface> forwarded_forwarded_impl.
-}
-    return !exception_state.is_exception_set();
-  } // End scope of scoped_refptr<PutForwardsInterface> forwarded_impl.
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "nestedForwardingAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_nestedForwardingAttribute),
-      JSOP_WRAPPER(&set_nestedForwardingAttribute),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "NestedPutForwardsInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsNestedPutForwardsInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsNestedPutForwardsInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsNestedPutForwardsInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsNestedPutForwardsInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nested_put_forwards_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nested_put_forwards_interface.h
deleted file mode 100644
index 6eeb237..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nested_put_forwards_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsNestedPutForwardsInterface_h
-#define MozjsNestedPutForwardsInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/nested_put_forwards_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsNestedPutForwardsInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsNestedPutForwardsInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_constructor_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_constructor_interface.cc
deleted file mode 100644
index a3ca932..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_constructor_interface.cc
+++ /dev/null
@@ -1,369 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_no_constructor_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::NoConstructorInterface;
-using cobalt::bindings::testing::MozjsNoConstructorInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsNoConstructorInterfaceHandler : public ProxyHandler {
- public:
-  MozjsNoConstructorInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsNoConstructorInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsNoConstructorInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsNoConstructorInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsNoConstructorInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "NoConstructorInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "NoConstructorInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "NoConstructorInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "NoConstructorInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsNoConstructorInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsNoConstructorInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsNoConstructorInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsNoConstructorInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_constructor_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_constructor_interface.h
deleted file mode 100644
index 776bbfc..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_constructor_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsNoConstructorInterface_h
-#define MozjsNoConstructorInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/no_constructor_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsNoConstructorInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsNoConstructorInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_interface_object_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_interface_object_interface.cc
deleted file mode 100644
index 23a7a5d..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_interface_object_interface.cc
+++ /dev/null
@@ -1,315 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_no_interface_object_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::NoInterfaceObjectInterface;
-using cobalt::bindings::testing::MozjsNoInterfaceObjectInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsNoInterfaceObjectInterfaceHandler : public ProxyHandler {
- public:
-  MozjsNoInterfaceObjectInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsNoInterfaceObjectInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsNoInterfaceObjectInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsNoInterfaceObjectInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsNoInterfaceObjectInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "NoInterfaceObjectInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "NoInterfaceObjectInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "NoInterfaceObjectInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsNoInterfaceObjectInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsNoInterfaceObjectInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsNoInterfaceObjectInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_interface_object_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_interface_object_interface.h
deleted file mode 100644
index 3fcf40c..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_no_interface_object_interface.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsNoInterfaceObjectInterface_h
-#define MozjsNoInterfaceObjectInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/no_interface_object_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsNoInterfaceObjectInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsNoInterfaceObjectInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nullable_types_test_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nullable_types_test_interface.cc
deleted file mode 100644
index b9144d2..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nullable_types_test_interface.cc
+++ /dev/null
@@ -1,1245 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_nullable_types_test_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::NullableTypesTestInterface;
-using cobalt::bindings::testing::MozjsNullableTypesTestInterface;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsNullableTypesTestInterfaceHandler : public ProxyHandler {
- public:
-  MozjsNullableTypesTestInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsNullableTypesTestInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsNullableTypesTestInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsNullableTypesTestInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsNullableTypesTestInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "NullableTypesTestInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "NullableTypesTestInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "NullableTypesTestInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_nullableBooleanProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->nullable_boolean_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_nullableBooleanProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-  TypeTraits<base::optional<bool > >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_nullable_boolean_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_nullableNumericProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->nullable_numeric_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_nullableNumericProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-  TypeTraits<base::optional<int32_t > >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_nullable_numeric_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_nullableStringProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->nullable_string_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_nullableStringProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-  TypeTraits<base::optional<std::string > >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_nullable_string_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_nullableObjectProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->nullable_object_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_nullableObjectProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-  TypeTraits<scoped_refptr<ArbitraryInterface> >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_nullable_object_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_nullableBooleanArgument(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<base::optional<bool > >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              (kConversionFlagNullable),
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->NullableBooleanArgument(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_nullableBooleanOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->NullableBooleanOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_nullableNumericArgument(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<base::optional<int32_t > >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              (kConversionFlagNullable),
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->NullableNumericArgument(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_nullableNumericOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->NullableNumericOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_nullableObjectArgument(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<scoped_refptr<ArbitraryInterface> >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              (kConversionFlagNullable),
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->NullableObjectArgument(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_nullableObjectOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->NullableObjectOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_nullableStringArgument(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<base::optional<std::string > >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              (kConversionFlagNullable),
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->NullableStringArgument(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_nullableStringOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNullableTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NullableTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NullableTypesTestInterface* impl =
-      wrapper_private->wrappable<NullableTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->NullableStringOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "nullableBooleanProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_nullableBooleanProperty),
-      JSOP_WRAPPER(&set_nullableBooleanProperty),
-  },
-  {  // Read/Write property
-      "nullableNumericProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_nullableNumericProperty),
-      JSOP_WRAPPER(&set_nullableNumericProperty),
-  },
-  {  // Read/Write property
-      "nullableStringProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_nullableStringProperty),
-      JSOP_WRAPPER(&set_nullableStringProperty),
-  },
-  {  // Read/Write property
-      "nullableObjectProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_nullableObjectProperty),
-      JSOP_WRAPPER(&set_nullableObjectProperty),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "nullableBooleanArgument",
-      JSOP_WRAPPER(&fcn_nullableBooleanArgument),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "nullableBooleanOperation",
-      JSOP_WRAPPER(&fcn_nullableBooleanOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "nullableNumericArgument",
-      JSOP_WRAPPER(&fcn_nullableNumericArgument),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "nullableNumericOperation",
-      JSOP_WRAPPER(&fcn_nullableNumericOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "nullableObjectArgument",
-      JSOP_WRAPPER(&fcn_nullableObjectArgument),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "nullableObjectOperation",
-      JSOP_WRAPPER(&fcn_nullableObjectOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "nullableStringArgument",
-      JSOP_WRAPPER(&fcn_nullableStringArgument),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "nullableStringOperation",
-      JSOP_WRAPPER(&fcn_nullableStringOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "NullableTypesTestInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsNullableTypesTestInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsNullableTypesTestInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsNullableTypesTestInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsNullableTypesTestInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nullable_types_test_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nullable_types_test_interface.h
deleted file mode 100644
index bac50bf..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_nullable_types_test_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsNullableTypesTestInterface_h
-#define MozjsNullableTypesTestInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/nullable_types_test_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsNullableTypesTestInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsNullableTypesTestInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_numeric_types_test_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_numeric_types_test_interface.cc
deleted file mode 100644
index 5a27ac4..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_numeric_types_test_interface.cc
+++ /dev/null
@@ -1,3253 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_numeric_types_test_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::NumericTypesTestInterface;
-using cobalt::bindings::testing::MozjsNumericTypesTestInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsNumericTypesTestInterfaceHandler : public ProxyHandler {
- public:
-  MozjsNumericTypesTestInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsNumericTypesTestInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsNumericTypesTestInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsNumericTypesTestInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsNumericTypesTestInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "NumericTypesTestInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "NumericTypesTestInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "NumericTypesTestInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_byteProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->byte_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_byteProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<int8_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_byte_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_byteClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->byte_clamp_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_byteClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<int8_t >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagClamped), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_byte_clamp_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_octetProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->octet_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_octetProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<uint8_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_octet_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_octetClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->octet_clamp_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_octetClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<uint8_t >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagClamped), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_octet_clamp_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_shortProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->short_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_shortProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<int16_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_short_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_shortClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->short_clamp_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_shortClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<int16_t >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagClamped), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_short_clamp_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_unsignedShortProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->unsigned_short_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unsignedShortProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<uint16_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_unsigned_short_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_unsignedShortClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->unsigned_short_clamp_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unsignedShortClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<uint16_t >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagClamped), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_unsigned_short_clamp_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_longProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->long_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_longProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<int32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_long_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_longClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->long_clamp_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_longClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<int32_t >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagClamped), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_long_clamp_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_unsignedLongProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->unsigned_long_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unsignedLongProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<uint32_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_unsigned_long_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_unsignedLongClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->unsigned_long_clamp_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unsignedLongClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<uint32_t >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagClamped), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_unsigned_long_clamp_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_longLongProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->long_long_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_longLongProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<int64_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_long_long_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_longLongClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->long_long_clamp_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_longLongClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<int64_t >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagClamped), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_long_long_clamp_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_unsignedLongLongProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->unsigned_long_long_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unsignedLongLongProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<uint64_t >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_unsigned_long_long_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_unsignedLongLongClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->unsigned_long_long_clamp_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unsignedLongLongClampProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<uint64_t >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagClamped), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_unsigned_long_long_clamp_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_doubleProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->double_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_doubleProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<double >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagRestricted), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_double_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_unrestrictedDoubleProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->unrestricted_double_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unrestrictedDoubleProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  TypeTraits<double >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_unrestricted_double_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_byteArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int8_t >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->ByteArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_byteReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->ByteReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_doubleArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<double >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              (kConversionFlagRestricted),
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->DoubleArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_doubleReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->DoubleReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_longArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->LongArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_longLongArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int64_t >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->LongLongArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_longLongReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->LongLongReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_longReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->LongReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_octetArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint8_t >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->OctetArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_octetReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->OctetReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_shortArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int16_t >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->ShortArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_shortReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->ShortReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_unrestrictedDoubleArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<double >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->UnrestrictedDoubleArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_unrestrictedDoubleReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->UnrestrictedDoubleReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_unsignedLongArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint32_t >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->UnsignedLongArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_unsignedLongLongArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint64_t >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->UnsignedLongLongArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_unsignedLongLongReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->UnsignedLongLongReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_unsignedLongReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->UnsignedLongReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_unsignedShortArgumentOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<uint16_t >::ConversionType arg1;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->UnsignedShortArgumentOperation(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_unsignedShortReturnOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsNumericTypesTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<NumericTypesTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  NumericTypesTestInterface* impl =
-      wrapper_private->wrappable<NumericTypesTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->UnsignedShortReturnOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "byteProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_byteProperty),
-      JSOP_WRAPPER(&set_byteProperty),
-  },
-  {  // Read/Write property
-      "byteClampProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_byteClampProperty),
-      JSOP_WRAPPER(&set_byteClampProperty),
-  },
-  {  // Read/Write property
-      "octetProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_octetProperty),
-      JSOP_WRAPPER(&set_octetProperty),
-  },
-  {  // Read/Write property
-      "octetClampProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_octetClampProperty),
-      JSOP_WRAPPER(&set_octetClampProperty),
-  },
-  {  // Read/Write property
-      "shortProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_shortProperty),
-      JSOP_WRAPPER(&set_shortProperty),
-  },
-  {  // Read/Write property
-      "shortClampProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_shortClampProperty),
-      JSOP_WRAPPER(&set_shortClampProperty),
-  },
-  {  // Read/Write property
-      "unsignedShortProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unsignedShortProperty),
-      JSOP_WRAPPER(&set_unsignedShortProperty),
-  },
-  {  // Read/Write property
-      "unsignedShortClampProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unsignedShortClampProperty),
-      JSOP_WRAPPER(&set_unsignedShortClampProperty),
-  },
-  {  // Read/Write property
-      "longProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_longProperty),
-      JSOP_WRAPPER(&set_longProperty),
-  },
-  {  // Read/Write property
-      "longClampProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_longClampProperty),
-      JSOP_WRAPPER(&set_longClampProperty),
-  },
-  {  // Read/Write property
-      "unsignedLongProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unsignedLongProperty),
-      JSOP_WRAPPER(&set_unsignedLongProperty),
-  },
-  {  // Read/Write property
-      "unsignedLongClampProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unsignedLongClampProperty),
-      JSOP_WRAPPER(&set_unsignedLongClampProperty),
-  },
-  {  // Read/Write property
-      "longLongProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_longLongProperty),
-      JSOP_WRAPPER(&set_longLongProperty),
-  },
-  {  // Read/Write property
-      "longLongClampProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_longLongClampProperty),
-      JSOP_WRAPPER(&set_longLongClampProperty),
-  },
-  {  // Read/Write property
-      "unsignedLongLongProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unsignedLongLongProperty),
-      JSOP_WRAPPER(&set_unsignedLongLongProperty),
-  },
-  {  // Read/Write property
-      "unsignedLongLongClampProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unsignedLongLongClampProperty),
-      JSOP_WRAPPER(&set_unsignedLongLongClampProperty),
-  },
-  {  // Read/Write property
-      "doubleProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_doubleProperty),
-      JSOP_WRAPPER(&set_doubleProperty),
-  },
-  {  // Read/Write property
-      "unrestrictedDoubleProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unrestrictedDoubleProperty),
-      JSOP_WRAPPER(&set_unrestrictedDoubleProperty),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "byteArgumentOperation",
-      JSOP_WRAPPER(&fcn_byteArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "byteReturnOperation",
-      JSOP_WRAPPER(&fcn_byteReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "doubleArgumentOperation",
-      JSOP_WRAPPER(&fcn_doubleArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "doubleReturnOperation",
-      JSOP_WRAPPER(&fcn_doubleReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "longArgumentOperation",
-      JSOP_WRAPPER(&fcn_longArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "longLongArgumentOperation",
-      JSOP_WRAPPER(&fcn_longLongArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "longLongReturnOperation",
-      JSOP_WRAPPER(&fcn_longLongReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "longReturnOperation",
-      JSOP_WRAPPER(&fcn_longReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "octetArgumentOperation",
-      JSOP_WRAPPER(&fcn_octetArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "octetReturnOperation",
-      JSOP_WRAPPER(&fcn_octetReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "shortArgumentOperation",
-      JSOP_WRAPPER(&fcn_shortArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "shortReturnOperation",
-      JSOP_WRAPPER(&fcn_shortReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "unrestrictedDoubleArgumentOperation",
-      JSOP_WRAPPER(&fcn_unrestrictedDoubleArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "unrestrictedDoubleReturnOperation",
-      JSOP_WRAPPER(&fcn_unrestrictedDoubleReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "unsignedLongArgumentOperation",
-      JSOP_WRAPPER(&fcn_unsignedLongArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "unsignedLongLongArgumentOperation",
-      JSOP_WRAPPER(&fcn_unsignedLongLongArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "unsignedLongLongReturnOperation",
-      JSOP_WRAPPER(&fcn_unsignedLongLongReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "unsignedLongReturnOperation",
-      JSOP_WRAPPER(&fcn_unsignedLongReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "unsignedShortArgumentOperation",
-      JSOP_WRAPPER(&fcn_unsignedShortArgumentOperation),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "unsignedShortReturnOperation",
-      JSOP_WRAPPER(&fcn_unsignedShortReturnOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "NumericTypesTestInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsNumericTypesTestInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsNumericTypesTestInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsNumericTypesTestInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsNumericTypesTestInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_numeric_types_test_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_numeric_types_test_interface.h
deleted file mode 100644
index 0fdabbe..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_numeric_types_test_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsNumericTypesTestInterface_h
-#define MozjsNumericTypesTestInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/numeric_types_test_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsNumericTypesTestInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsNumericTypesTestInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_object_type_bindings_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_object_type_bindings_interface.cc
deleted file mode 100644
index 7541b5b..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_object_type_bindings_interface.cc
+++ /dev/null
@@ -1,692 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_object_type_bindings_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/base_interface.h"
-#include "cobalt/bindings/testing/derived_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_base_interface.h"
-#include "cobalt/bindings/testing/mozjs_derived_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::ObjectTypeBindingsInterface;
-using cobalt::bindings::testing::MozjsObjectTypeBindingsInterface;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::BaseInterface;
-using cobalt::bindings::testing::DerivedInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::bindings::testing::MozjsBaseInterface;
-using cobalt::bindings::testing::MozjsDerivedInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsObjectTypeBindingsInterfaceHandler : public ProxyHandler {
- public:
-  MozjsObjectTypeBindingsInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsObjectTypeBindingsInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsObjectTypeBindingsInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsObjectTypeBindingsInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsObjectTypeBindingsInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "ObjectTypeBindingsInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "ObjectTypeBindingsInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "ObjectTypeBindingsInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_arbitraryObject(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsObjectTypeBindingsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ObjectTypeBindingsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ObjectTypeBindingsInterface* impl =
-      wrapper_private->wrappable<ObjectTypeBindingsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->arbitrary_object(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_arbitraryObject(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsObjectTypeBindingsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ObjectTypeBindingsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ObjectTypeBindingsInterface* impl =
-      wrapper_private->wrappable<ObjectTypeBindingsInterface>().get();
-  TypeTraits<scoped_refptr<ArbitraryInterface> >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_arbitrary_object(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_baseInterface(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsObjectTypeBindingsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ObjectTypeBindingsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ObjectTypeBindingsInterface* impl =
-      wrapper_private->wrappable<ObjectTypeBindingsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->base_interface(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_derivedInterface(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsObjectTypeBindingsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ObjectTypeBindingsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ObjectTypeBindingsInterface* impl =
-      wrapper_private->wrappable<ObjectTypeBindingsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->derived_interface(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_derivedInterface(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsObjectTypeBindingsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ObjectTypeBindingsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ObjectTypeBindingsInterface* impl =
-      wrapper_private->wrappable<ObjectTypeBindingsInterface>().get();
-  TypeTraits<scoped_refptr<DerivedInterface> >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_derived_interface(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_objectProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsObjectTypeBindingsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ObjectTypeBindingsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ObjectTypeBindingsInterface* impl =
-      wrapper_private->wrappable<ObjectTypeBindingsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->object_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_objectProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsObjectTypeBindingsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<ObjectTypeBindingsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  ObjectTypeBindingsInterface* impl =
-      wrapper_private->wrappable<ObjectTypeBindingsInterface>().get();
-  TypeTraits<::cobalt::script::OpaqueHandle >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_object_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "arbitraryObject", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_arbitraryObject),
-      JSOP_WRAPPER(&set_arbitraryObject),
-  },
-  {  // Readonly attribute
-      "baseInterface", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_baseInterface),
-      JSOP_NULLWRAPPER,
-  },
-  {  // Read/Write property
-      "derivedInterface", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_derivedInterface),
-      JSOP_WRAPPER(&set_derivedInterface),
-  },
-  {  // Read/Write property
-      "objectProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_objectProperty),
-      JSOP_WRAPPER(&set_objectProperty),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "ObjectTypeBindingsInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsObjectTypeBindingsInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsObjectTypeBindingsInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsObjectTypeBindingsInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsObjectTypeBindingsInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_object_type_bindings_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_object_type_bindings_interface.h
deleted file mode 100644
index 45475b4..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_object_type_bindings_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsObjectTypeBindingsInterface_h
-#define MozjsObjectTypeBindingsInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/object_type_bindings_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsObjectTypeBindingsInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsObjectTypeBindingsInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_operations_test_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_operations_test_interface.cc
deleted file mode 100644
index 838dd0b..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_operations_test_interface.cc
+++ /dev/null
@@ -1,1981 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_operations_test_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::OperationsTestInterface;
-using cobalt::bindings::testing::MozjsOperationsTestInterface;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsOperationsTestInterfaceHandler : public ProxyHandler {
- public:
-  MozjsOperationsTestInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsOperationsTestInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsOperationsTestInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsOperationsTestInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsOperationsTestInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "OperationsTestInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "OperationsTestInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "OperationsTestInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool fcn_longFunctionNoArgs(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->LongFunctionNoArgs(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_objectFunctionNoArgs(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->ObjectFunctionNoArgs(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_optionalArgumentWithDefault(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  // Optional arguments with default values
-  TypeTraits<double >::ConversionType arg1 =
-      2.718;
-  size_t num_set_arguments = 1;
-  if (args.length() > 0) {
-    JS::RootedValue optional_value0(
-        context, args[0]);
-    FromJSValue(context,
-                optional_value0,
-                (kConversionFlagRestricted),
-                &exception_state,
-                &arg1);
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-  }
-
-  impl->OptionalArgumentWithDefault(arg1);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_optionalArguments(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg1;
-  // Optional arguments
-  TypeTraits<int32_t >::ConversionType arg2;
-  TypeTraits<int32_t >::ConversionType arg3;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-  size_t num_set_arguments = 1;
-  if (args.length() > 1) {
-    JS::RootedValue optional_value0(
-        context, args[1]);
-    FromJSValue(context,
-                optional_value0,
-                kNoConversionFlags,
-                &exception_state,
-                &arg2);
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-    ++num_set_arguments;
-  }
-  if (args.length() > 2) {
-    JS::RootedValue optional_value1(
-        context, args[2]);
-    FromJSValue(context,
-                optional_value1,
-                kNoConversionFlags,
-                &exception_state,
-                &arg3);
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-    ++num_set_arguments;
-  }
-  switch (num_set_arguments) {
-    case 1:
-      {
-          impl->OptionalArguments(arg1);
-          result_value.set(JS::UndefinedHandleValue);
-          return !exception_state.is_exception_set();
-      }
-      break;
-    case 2:
-      {
-          impl->OptionalArguments(arg1, arg2);
-          result_value.set(JS::UndefinedHandleValue);
-          return !exception_state.is_exception_set();
-      }
-      break;
-    case 3:
-      {
-          impl->OptionalArguments(arg1, arg2, arg3);
-          result_value.set(JS::UndefinedHandleValue);
-          return !exception_state.is_exception_set();
-      }
-      break;
-    default:
-      NOTREACHED();
-      return false;
-  }
-}
-
-JSBool fcn_optionalNullableArgumentsWithDefaults(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  // Optional arguments with default values
-  TypeTraits<base::optional<bool > >::ConversionType arg1 =
-      base::nullopt;
-  TypeTraits<scoped_refptr<ArbitraryInterface> >::ConversionType arg2 =
-      NULL;
-  size_t num_set_arguments = 2;
-  if (args.length() > 0) {
-    JS::RootedValue optional_value0(
-        context, args[0]);
-    FromJSValue(context,
-                optional_value0,
-                (kConversionFlagNullable),
-                &exception_state,
-                &arg1);
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-  }
-  if (args.length() > 1) {
-    JS::RootedValue optional_value1(
-        context, args[1]);
-    FromJSValue(context,
-                optional_value1,
-                (kConversionFlagNullable),
-                &exception_state,
-                &arg2);
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-  }
-
-  impl->OptionalNullableArgumentsWithDefaults(arg1, arg2);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_overloadedFunction1(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-
-  impl->OverloadedFunction();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_overloadedFunction2(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->OverloadedFunction(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_overloadedFunction3(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<std::string >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->OverloadedFunction(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_overloadedFunction4(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 3;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg1;
-  TypeTraits<int32_t >::ConversionType arg2;
-  TypeTraits<int32_t >::ConversionType arg3;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &arg2);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(2, args.length());
-  JS::RootedValue non_optional_value2(
-      context, args[2]);
-  FromJSValue(context,
-              non_optional_value2,
-              kNoConversionFlags,
-              &exception_state, &arg3);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->OverloadedFunction(arg1, arg2, arg3);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_overloadedFunction5(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 3;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg1;
-  TypeTraits<int32_t >::ConversionType arg2;
-  TypeTraits<scoped_refptr<ArbitraryInterface> >::ConversionType arg3;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &arg2);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(2, args.length());
-  JS::RootedValue non_optional_value2(
-      context, args[2]);
-  FromJSValue(context,
-              non_optional_value2,
-              kNoConversionFlags,
-              &exception_state, &arg3);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->OverloadedFunction(arg1, arg2, arg3);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_overloadedFunction(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  switch(argc) {
-    case(0): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      if (true) {
-        return fcn_overloadedFunction1(
-                  context, argc, vp);
-      }
-      break;
-    }
-    case(1): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      JS::RootedValue arg(context, args[0]);
-      MozjsGlobalEnvironment* global_environment =
-          static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-      WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-      JS::RootedObject object(context);
-      if (arg.isObject()) {
-        object = JSVAL_TO_OBJECT(arg);
-      }
-      if (arg.isNumber()) {
-        return fcn_overloadedFunction2(
-                  context, argc, vp);
-      }
-      if (true) {
-        return fcn_overloadedFunction3(
-                  context, argc, vp);
-      }
-      if (true) {
-        return fcn_overloadedFunction2(
-                  context, argc, vp);
-      }
-      break;
-    }
-    case(3): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      JS::RootedValue arg(context, args[2]);
-      MozjsGlobalEnvironment* global_environment =
-          static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-      WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-      JS::RootedObject object(context);
-      if (arg.isObject()) {
-        object = JSVAL_TO_OBJECT(arg);
-      }
-      if (arg.isObject() ? wrapper_factory->DoesObjectImplementInterface(
-              object, base::GetTypeId<ArbitraryInterface>()) :
-              false) {
-        return fcn_overloadedFunction5(
-                  context, argc, vp);
-      }
-      if (true) {
-        return fcn_overloadedFunction4(
-                  context, argc, vp);
-      }
-      break;
-    }
-  }
-  // Invalid number of args
-  // http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-  // 4. If S is empty, then throw a TypeError.
-  MozjsExceptionState exception_state(context);
-  exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-  return false;
-}
-
-JSBool fcn_overloadedNullable1(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->OverloadedNullable(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_overloadedNullable2(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<base::optional<bool > >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              (kConversionFlagNullable),
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->OverloadedNullable(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_overloadedNullable(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  switch(argc) {
-    case(1): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      JS::RootedValue arg(context, args[0]);
-      MozjsGlobalEnvironment* global_environment =
-          static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-      WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-      JS::RootedObject object(context);
-      if (arg.isObject()) {
-        object = JSVAL_TO_OBJECT(arg);
-      }
-      if (arg.isNullOrUndefined()) {
-        return fcn_overloadedNullable2(
-                  context, argc, vp);
-      }
-      if (true) {
-        return fcn_overloadedNullable1(
-                  context, argc, vp);
-      }
-      break;
-    }
-  }
-  // Invalid number of args
-  // http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-  // 4. If S is empty, then throw a TypeError.
-  MozjsExceptionState exception_state(context);
-  exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-  return false;
-}
-
-JSBool fcn_stringFunctionNoArgs(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->StringFunctionNoArgs(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_variadicPrimitiveArguments(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  // Variadic argument
-  TypeTraits<std::vector<int32_t> >::ConversionType bools;
-
-  // Get variadic arguments.
-  const size_t kFirstVariadicArgIndex = 0;
-  if (args.length() > kFirstVariadicArgIndex) {
-    bools.resize(args.length() - kFirstVariadicArgIndex);
-    for (int i = 0; i + kFirstVariadicArgIndex < args.length(); ++i) {
-      JS::RootedValue variadic_argument_value(
-          context, args[i + kFirstVariadicArgIndex]);
-      FromJSValue(context,
-                  variadic_argument_value,
-                  kNoConversionFlags,
-                  &exception_state,
-                  &bools[i]);
-      if (exception_state.is_exception_set()) {
-        return false;
-      }
-    }
-  }
-
-  impl->VariadicPrimitiveArguments(bools);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_variadicStringArgumentsAfterOptionalArgument(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  // Optional arguments
-  TypeTraits<bool >::ConversionType optional_arg;
-  // Variadic argument
-  TypeTraits<std::vector<std::string> >::ConversionType strings;
-  size_t num_set_arguments = 0;
-  if (args.length() > 0) {
-    JS::RootedValue optional_value0(
-        context, args[0]);
-    FromJSValue(context,
-                optional_value0,
-                kNoConversionFlags,
-                &exception_state,
-                &optional_arg);
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-    ++num_set_arguments;
-  }
-
-  // Get variadic arguments.
-  const size_t kLastOptionalArgIndex = 1;
-  if (num_set_arguments == kLastOptionalArgIndex) {
-    // If the last optional argument has been set, we will call the overload
-    // that takes the variadic argument, possibly with an empty vector in the
-    // case that there are no more arguments left.
-    ++num_set_arguments;
-  }
-  const size_t kFirstVariadicArgIndex = 1;
-  if (args.length() > kFirstVariadicArgIndex) {
-    strings.resize(args.length() - kFirstVariadicArgIndex);
-    for (int i = 0; i + kFirstVariadicArgIndex < args.length(); ++i) {
-      JS::RootedValue variadic_argument_value(
-          context, args[i + kFirstVariadicArgIndex]);
-      FromJSValue(context,
-                  variadic_argument_value,
-                  kNoConversionFlags,
-                  &exception_state,
-                  &strings[i]);
-      if (exception_state.is_exception_set()) {
-        return false;
-      }
-    }
-  }
-  switch (num_set_arguments) {
-    case 0:
-      {
-          impl->VariadicStringArgumentsAfterOptionalArgument();
-          result_value.set(JS::UndefinedHandleValue);
-          return !exception_state.is_exception_set();
-      }
-      break;
-    case 2:
-      {
-          impl->VariadicStringArgumentsAfterOptionalArgument(optional_arg, strings);
-          result_value.set(JS::UndefinedHandleValue);
-          return !exception_state.is_exception_set();
-      }
-      break;
-    default:
-      NOTREACHED();
-      return false;
-  }
-}
-
-JSBool fcn_voidFunctionLongArg(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->VoidFunctionLongArg(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_voidFunctionNoArgs(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-
-  impl->VoidFunctionNoArgs();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_voidFunctionObjectArg(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<scoped_refptr<ArbitraryInterface> >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->VoidFunctionObjectArg(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_voidFunctionStringArg(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsOperationsTestInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<OperationsTestInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  OperationsTestInterface* impl =
-      wrapper_private->wrappable<OperationsTestInterface>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<std::string >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->VoidFunctionStringArg(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticfcn_overloadedFunction1(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<double >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              (kConversionFlagRestricted),
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  OperationsTestInterface::OverloadedFunction(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticfcn_overloadedFunction2(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  const size_t kMinArguments = 2;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<double >::ConversionType arg1;
-  TypeTraits<double >::ConversionType arg2;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              (kConversionFlagRestricted),
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              (kConversionFlagRestricted),
-              &exception_state, &arg2);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  OperationsTestInterface::OverloadedFunction(arg1, arg2);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticfcn_overloadedFunction(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  switch(argc) {
-    case(1): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      if (true) {
-        return staticfcn_overloadedFunction1(
-                  context, argc, vp);
-      }
-      break;
-    }
-    case(2): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      if (true) {
-        return staticfcn_overloadedFunction2(
-                  context, argc, vp);
-      }
-      break;
-    }
-  }
-  // Invalid number of args
-  // http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-  // 4. If S is empty, then throw a TypeError.
-  MozjsExceptionState exception_state(context);
-  exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-  return false;
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "longFunctionNoArgs",
-      JSOP_WRAPPER(&fcn_longFunctionNoArgs),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "objectFunctionNoArgs",
-      JSOP_WRAPPER(&fcn_objectFunctionNoArgs),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "optionalArgumentWithDefault",
-      JSOP_WRAPPER(&fcn_optionalArgumentWithDefault),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "optionalArguments",
-      JSOP_WRAPPER(&fcn_optionalArguments),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "optionalNullableArgumentsWithDefaults",
-      JSOP_WRAPPER(&fcn_optionalNullableArgumentsWithDefaults),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "overloadedFunction",
-      JSOP_WRAPPER(&fcn_overloadedFunction),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "overloadedNullable",
-      JSOP_WRAPPER(&fcn_overloadedNullable),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "stringFunctionNoArgs",
-      JSOP_WRAPPER(&fcn_stringFunctionNoArgs),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "variadicPrimitiveArguments",
-      JSOP_WRAPPER(&fcn_variadicPrimitiveArguments),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "variadicStringArgumentsAfterOptionalArgument",
-      JSOP_WRAPPER(&fcn_variadicStringArgumentsAfterOptionalArgument),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "voidFunctionLongArg",
-      JSOP_WRAPPER(&fcn_voidFunctionLongArg),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "voidFunctionNoArgs",
-      JSOP_WRAPPER(&fcn_voidFunctionNoArgs),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "voidFunctionObjectArg",
-      JSOP_WRAPPER(&fcn_voidFunctionObjectArg),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "voidFunctionStringArg",
-      JSOP_WRAPPER(&fcn_voidFunctionStringArg),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  {
-      "overloadedFunction",
-      JSOP_WRAPPER(&staticfcn_overloadedFunction),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "OperationsTestInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsOperationsTestInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsOperationsTestInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsOperationsTestInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsOperationsTestInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_operations_test_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_operations_test_interface.h
deleted file mode 100644
index 6167f2c..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_operations_test_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsOperationsTestInterface_h
-#define MozjsOperationsTestInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/operations_test_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsOperationsTestInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsOperationsTestInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_promise_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_promise_interface.cc
deleted file mode 100644
index 4993d19..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_promise_interface.cc
+++ /dev/null
@@ -1,658 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_promise_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::PromiseInterface;
-using cobalt::bindings::testing::MozjsPromiseInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsPromiseInterfaceHandler : public ProxyHandler {
- public:
-  MozjsPromiseInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsPromiseInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsPromiseInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsPromiseInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsPromiseInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "PromiseInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "PromiseInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "PromiseInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool fcn_onSuccess(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsPromiseInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<PromiseInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  PromiseInterface* impl =
-      wrapper_private->wrappable<PromiseInterface>().get();
-
-  impl->OnSuccess();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_returnBooleanPromise(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsPromiseInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<PromiseInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  PromiseInterface* impl =
-      wrapper_private->wrappable<PromiseInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->ReturnBooleanPromise(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_returnInterfacePromise(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsPromiseInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<PromiseInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  PromiseInterface* impl =
-      wrapper_private->wrappable<PromiseInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->ReturnInterfacePromise(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_returnStringPromise(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsPromiseInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<PromiseInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  PromiseInterface* impl =
-      wrapper_private->wrappable<PromiseInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->ReturnStringPromise(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_returnVoidPromise(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsPromiseInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<PromiseInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  PromiseInterface* impl =
-      wrapper_private->wrappable<PromiseInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->ReturnVoidPromise(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "onSuccess",
-      JSOP_WRAPPER(&fcn_onSuccess),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "returnBooleanPromise",
-      JSOP_WRAPPER(&fcn_returnBooleanPromise),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "returnInterfacePromise",
-      JSOP_WRAPPER(&fcn_returnInterfacePromise),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "returnStringPromise",
-      JSOP_WRAPPER(&fcn_returnStringPromise),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "returnVoidPromise",
-      JSOP_WRAPPER(&fcn_returnVoidPromise),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "PromiseInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsPromiseInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsPromiseInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsPromiseInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsPromiseInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_promise_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_promise_interface.h
deleted file mode 100644
index 6c2e10f..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_promise_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsPromiseInterface_h
-#define MozjsPromiseInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/promise_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsPromiseInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsPromiseInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_put_forwards_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_put_forwards_interface.cc
deleted file mode 100644
index 0e4090d..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_put_forwards_interface.cc
+++ /dev/null
@@ -1,524 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_put_forwards_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::PutForwardsInterface;
-using cobalt::bindings::testing::MozjsPutForwardsInterface;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsPutForwardsInterfaceHandler : public ProxyHandler {
- public:
-  MozjsPutForwardsInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsPutForwardsInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsPutForwardsInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsPutForwardsInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsPutForwardsInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "PutForwardsInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "PutForwardsInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "PutForwardsInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_forwardingAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsPutForwardsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<PutForwardsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  PutForwardsInterface* impl =
-      wrapper_private->wrappable<PutForwardsInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->forwarding_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_forwardingAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsPutForwardsInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<PutForwardsInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  PutForwardsInterface* impl =
-      wrapper_private->wrappable<PutForwardsInterface>().get();
-  { // Begin scope of scoped_refptr<ArbitraryInterface> forwarded_impl.
-    scoped_refptr<ArbitraryInterface> forwarded_impl =
-       impl->forwarding_attribute();
-    if (!forwarded_impl) {
-      NOTREACHED();
-      return false;
-    }
-    if (!exception_state.is_exception_set()) {
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  forwarded_impl->set_arbitrary_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-    return !exception_state.is_exception_set();
-  } // End scope of scoped_refptr<ArbitraryInterface> forwarded_impl.
-}
-
-JSBool staticget_staticForwardingAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              PutForwardsInterface::static_forwarding_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticset_staticForwardingAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  { // Begin scope of scoped_refptr<ArbitraryInterface> forwarded_impl.
-    scoped_refptr<ArbitraryInterface> forwarded_impl =
-       PutForwardsInterface::static_forwarding_attribute();
-    if (!forwarded_impl) {
-      NOTREACHED();
-      return false;
-    }
-    if (!exception_state.is_exception_set()) {
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  forwarded_impl->set_arbitrary_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-    return !exception_state.is_exception_set();
-  } // End scope of scoped_refptr<ArbitraryInterface> forwarded_impl.
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "forwardingAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_forwardingAttribute),
-      JSOP_WRAPPER(&set_forwardingAttribute),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  {  // Static read/write attribute.
-      "staticForwardingAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&staticget_staticForwardingAttribute),
-      JSOP_WRAPPER(&staticset_staticForwardingAttribute),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "PutForwardsInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsPutForwardsInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsPutForwardsInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsPutForwardsInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsPutForwardsInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_put_forwards_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_put_forwards_interface.h
deleted file mode 100644
index 57cf3b6..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_put_forwards_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsPutForwardsInterface_h
-#define MozjsPutForwardsInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/put_forwards_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsPutForwardsInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsPutForwardsInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_sequence_user.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_sequence_user.cc
deleted file mode 100644
index 0ddaaeb..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_sequence_user.cc
+++ /dev/null
@@ -1,1308 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_sequence_user.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::SequenceUser;
-using cobalt::bindings::testing::MozjsSequenceUser;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsSequenceUserHandler : public ProxyHandler {
- public:
-  MozjsSequenceUserHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsSequenceUserHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsSequenceUserHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsSequenceUserHandler>
-    proxy_handler;
-
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsSequenceUser::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "SequenceUser";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "SequenceUserPrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "SequenceUserConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  interface_object_class->construct = Constructor;
-  return interface_data;
-}
-
-JSBool fcn_getInterfaceSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetInterfaceSequence(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_getInterfaceSequenceSequenceSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetInterfaceSequenceSequenceSequence(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_getLongSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetLongSequence(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_getStringSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetStringSequence(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_getStringSequenceSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetStringSequenceSequence(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_getUnionOfStringAndStringSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetUnionOfStringAndStringSequence(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_getUnionSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetUnionSequence(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setInterfaceSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::Sequence< scoped_refptr<ArbitraryInterface> > >::ConversionType elements;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &elements);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->SetInterfaceSequence(elements);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setInterfaceSequenceSequenceSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::Sequence< ::cobalt::script::Sequence< ::cobalt::script::Sequence< scoped_refptr<ArbitraryInterface> > > > >::ConversionType elements;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &elements);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->SetInterfaceSequenceSequenceSequence(elements);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setLongSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::Sequence< int32_t > >::ConversionType elements;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &elements);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->SetLongSequence(elements);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setStringSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::Sequence< std::string > >::ConversionType elements;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &elements);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->SetStringSequence(elements);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setStringSequenceSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::Sequence< ::cobalt::script::Sequence< std::string > > >::ConversionType elements;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &elements);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->SetStringSequenceSequence(elements);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setUnionOfStringAndStringSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::UnionType2<std::string, ::cobalt::script::Sequence< std::string > > >::ConversionType elements;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &elements);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->SetUnionOfStringAndStringSequence(elements);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setUnionSequence(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsSequenceUser::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<SequenceUser>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  SequenceUser* impl =
-      wrapper_private->wrappable<SequenceUser>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<::cobalt::script::Sequence< ::cobalt::script::UnionType2<std::string, scoped_refptr<ArbitraryInterface> > > >::ConversionType elements;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &elements);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->SetUnionSequence(elements);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "getInterfaceSequence",
-      JSOP_WRAPPER(&fcn_getInterfaceSequence),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "getInterfaceSequenceSequenceSequence",
-      JSOP_WRAPPER(&fcn_getInterfaceSequenceSequenceSequence),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "getLongSequence",
-      JSOP_WRAPPER(&fcn_getLongSequence),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "getStringSequence",
-      JSOP_WRAPPER(&fcn_getStringSequence),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "getStringSequenceSequence",
-      JSOP_WRAPPER(&fcn_getStringSequenceSequence),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "getUnionOfStringAndStringSequence",
-      JSOP_WRAPPER(&fcn_getUnionOfStringAndStringSequence),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "getUnionSequence",
-      JSOP_WRAPPER(&fcn_getUnionSequence),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setInterfaceSequence",
-      JSOP_WRAPPER(&fcn_setInterfaceSequence),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setInterfaceSequenceSequenceSequence",
-      JSOP_WRAPPER(&fcn_setInterfaceSequenceSequenceSequence),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setLongSequence",
-      JSOP_WRAPPER(&fcn_setLongSequence),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setStringSequence",
-      JSOP_WRAPPER(&fcn_setStringSequence),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setStringSequenceSequence",
-      JSOP_WRAPPER(&fcn_setStringSequenceSequence),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setUnionOfStringAndStringSequence",
-      JSOP_WRAPPER(&fcn_setUnionOfStringAndStringSequence),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setUnionSequence",
-      JSOP_WRAPPER(&fcn_setUnionSequence),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "SequenceUser";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32(0);
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsSequenceUser::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsSequenceUser::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsSequenceUser::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsSequenceUser::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-
-  scoped_refptr<SequenceUser> new_object =
-      new SequenceUser();
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-}
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_sequence_user.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_sequence_user.h
deleted file mode 100644
index 9283327..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_sequence_user.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsSequenceUser_h
-#define MozjsSequenceUser_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/sequence_user.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsSequenceUser {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsSequenceUser_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_single_operation_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_single_operation_interface.cc
deleted file mode 100644
index 56b185e..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_single_operation_interface.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/callback-interface.cc.template
-
-
-#include "cobalt/bindings/testing/mozjs_single_operation_interface.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "cobalt/script/logging_exception_state.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_interface.h"
-#include "cobalt/script/mozjs/util/exception_helpers.h"
-#include "cobalt/script/mozjs/util/stack_trace_helpers.h"
-#include "third_party/mozjs/js/jsd/jsd.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jscntxt.h"
-
-namespace {
-using cobalt::bindings::testing::SingleOperationInterface;
-using cobalt::bindings::testing::MozjsSingleOperationInterface;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-
-using cobalt::script::LoggingExceptionState;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::GetCallableForCallbackInterface;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::util::GetExceptionString;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-MozjsSingleOperationInterface::MozjsSingleOperationInterface(
-    JSContext* context,
-    JS::HandleObject implementing_object)
-    : context_(context),
-      implementing_object_(context, implementing_object) { }
-
-MozjsSingleOperationInterface::MozjsSingleOperationInterface(
-    JSContext* context,
-    JS::HandleValue implementing_object_value)
-    : context_(context),
-      implementing_object_(context, implementing_object_value) { }
-
-base::optional<int32_t > MozjsSingleOperationInterface::HandleCallback(
-    const scoped_refptr<script::Wrappable>& callback_this,
-    const scoped_refptr<ArbitraryInterface>& value,
-    bool* had_exception) const {
-  bool success = false;
-  base::optional<int32_t > cobalt_return_value;
-  JSAutoRequest auto_request(context_);
-  AutoSaveExceptionState auto_save_exception_state(context_);
-  ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-
-  // This could be set to NULL if it was garbage collected.
-  JS::RootedObject implementing_object(context_, implementing_object_.GetObject());
-  DLOG_IF(WARNING, !implementing_object) << "Implementing object is NULL.";
-  if (implementing_object) {
-    JSAutoCompartment auto_compartment(context_, implementing_object);
-
-    // Get callable object.
-    JS::RootedValue callable(context_);
-    if (GetCallableForCallbackInterface(context_, implementing_object,
-                                        "handleCallback", &callable)) {
-      // Convert the callback_this to a JSValue.
-      JS::RootedValue this_value(context_);
-      ToJSValue(context_, callback_this, &this_value);
-
-      // Convert arguments.
-      const int kNumArguments = 1;
-      JS::Value args[kNumArguments];
-      js::SetValueRangeToNull(args, kNumArguments);
-      js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-      ToJSValue(context_, value,
-                auto_array_rooter.handleAt(0));
-
-      // Call the function.
-      JS::RootedValue return_value(context_);
-      JS::RootedFunction function(
-          context_, JS_ValueToFunction(context_, callable));
-      DCHECK(function);
-      success = JS::Call(context_, this_value, function, kNumArguments, args,
-                         return_value.address());
-      DLOG_IF(WARNING, !success) << "Exception in callback: "
-                                 << GetExceptionString(context_);
-      if (success) {
-        LoggingExceptionState exception_state;
-        FromJSValue(context_, return_value, 0, &exception_state,
-                    &cobalt_return_value);
-        success = !exception_state.is_exception_set();
-      }
-    }
-  }
-
-  *had_exception = !success;
-  return cobalt_return_value;
-}
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_single_operation_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_single_operation_interface.h
deleted file mode 100644
index 87fbcde..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_single_operation_interface.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/callback-interface.h.template
-
-#ifndef MozjsSingleOperationInterface_h
-#define MozjsSingleOperationInterface_h
-
-#include "cobalt/script/callback_interface_traits.h"
-// Headers for other bindings wrapper classes
-#include "cobalt/bindings/testing/single_operation_interface.h"
-
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsSingleOperationInterface : public SingleOperationInterface {
- public:
-  typedef SingleOperationInterface BaseType;
-
-  MozjsSingleOperationInterface(
-      JSContext* context, JS::HandleObject implementing_object);
-  MozjsSingleOperationInterface(
-      JSContext* context, JS::HandleValue implementing_object_value);
-  base::optional<int32_t > HandleCallback(
-      const scoped_refptr<script::Wrappable>& callback_this,
-      const scoped_refptr<ArbitraryInterface>& value,
-      bool* had_exception) const OVERRIDE;
-  JSObject* handle() const { return implementing_object_.GetObject(); }
-  const JS::Value& value() const { return implementing_object_.GetValue(); }
-  bool WasCollected() const { return implementing_object_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  script::mozjs::WeakHeapObject implementing_object_;
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-namespace cobalt {
-namespace script {
-// Explicit instantiation of CallbackInterfaceTraits struct so we can infer
-// the type of the generated class from the type of the callback interface.
-template<>
-struct CallbackInterfaceTraits<cobalt::bindings::testing::SingleOperationInterface> {
-  typedef cobalt::bindings::testing::MozjsSingleOperationInterface MozjsCallbackInterfaceClass;
-};
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // MozjsSingleOperationInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_static_properties_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_static_properties_interface.cc
deleted file mode 100644
index 47a2a55..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_static_properties_interface.cc
+++ /dev/null
@@ -1,671 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_static_properties_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::StaticPropertiesInterface;
-using cobalt::bindings::testing::MozjsStaticPropertiesInterface;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsStaticPropertiesInterfaceHandler : public ProxyHandler {
- public:
-  MozjsStaticPropertiesInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsStaticPropertiesInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsStaticPropertiesInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsStaticPropertiesInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsStaticPropertiesInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "StaticPropertiesInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "StaticPropertiesInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "StaticPropertiesInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool staticget_staticAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              StaticPropertiesInterface::static_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticset_staticAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  StaticPropertiesInterface::set_static_attribute(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticfcn_staticFunction1(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-
-  StaticPropertiesInterface::StaticFunction();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticfcn_staticFunction2(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  StaticPropertiesInterface::StaticFunction(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticfcn_staticFunction3(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<std::string >::ConversionType arg;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  StaticPropertiesInterface::StaticFunction(arg);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticfcn_staticFunction4(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  const size_t kMinArguments = 3;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg1;
-  TypeTraits<int32_t >::ConversionType arg2;
-  TypeTraits<int32_t >::ConversionType arg3;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &arg2);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(2, args.length());
-  JS::RootedValue non_optional_value2(
-      context, args[2]);
-  FromJSValue(context,
-              non_optional_value2,
-              kNoConversionFlags,
-              &exception_state, &arg3);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  StaticPropertiesInterface::StaticFunction(arg1, arg2, arg3);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticfcn_staticFunction5(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  const size_t kMinArguments = 3;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<int32_t >::ConversionType arg1;
-  TypeTraits<int32_t >::ConversionType arg2;
-  TypeTraits<scoped_refptr<ArbitraryInterface> >::ConversionType arg3;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &arg1);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(1, args.length());
-  JS::RootedValue non_optional_value1(
-      context, args[1]);
-  FromJSValue(context,
-              non_optional_value1,
-              kNoConversionFlags,
-              &exception_state, &arg2);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  DCHECK_LT(2, args.length());
-  JS::RootedValue non_optional_value2(
-      context, args[2]);
-  FromJSValue(context,
-              non_optional_value2,
-              kNoConversionFlags,
-              &exception_state, &arg3);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  StaticPropertiesInterface::StaticFunction(arg1, arg2, arg3);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool staticfcn_staticFunction(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  switch(argc) {
-    case(0): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      if (true) {
-        return staticfcn_staticFunction1(
-                  context, argc, vp);
-      }
-      break;
-    }
-    case(1): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      JS::RootedValue arg(context, args[0]);
-      MozjsGlobalEnvironment* global_environment =
-          static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-      WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-      JS::RootedObject object(context);
-      if (arg.isObject()) {
-        object = JSVAL_TO_OBJECT(arg);
-      }
-      if (arg.isNumber()) {
-        return staticfcn_staticFunction2(
-                  context, argc, vp);
-      }
-      if (true) {
-        return staticfcn_staticFunction3(
-                  context, argc, vp);
-      }
-      if (true) {
-        return staticfcn_staticFunction2(
-                  context, argc, vp);
-      }
-      break;
-    }
-    case(3): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-      JS::RootedValue arg(context, args[2]);
-      MozjsGlobalEnvironment* global_environment =
-          static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-      WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-      JS::RootedObject object(context);
-      if (arg.isObject()) {
-        object = JSVAL_TO_OBJECT(arg);
-      }
-      if (arg.isObject() ? wrapper_factory->DoesObjectImplementInterface(
-              object, base::GetTypeId<ArbitraryInterface>()) :
-              false) {
-        return staticfcn_staticFunction5(
-                  context, argc, vp);
-      }
-      if (true) {
-        return staticfcn_staticFunction4(
-                  context, argc, vp);
-      }
-      break;
-    }
-  }
-  // Invalid number of args
-  // http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-  // 4. If S is empty, then throw a TypeError.
-  MozjsExceptionState exception_state(context);
-  exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-  return false;
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  {  // Static read/write attribute.
-      "staticAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&staticget_staticAttribute),
-      JSOP_WRAPPER(&staticset_staticAttribute),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  {
-      "staticFunction",
-      JSOP_WRAPPER(&staticfcn_staticFunction),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "StaticPropertiesInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsStaticPropertiesInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsStaticPropertiesInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsStaticPropertiesInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsStaticPropertiesInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_static_properties_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_static_properties_interface.h
deleted file mode 100644
index 8a7adb2..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_static_properties_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsStaticPropertiesInterface_h
-#define MozjsStaticPropertiesInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/static_properties_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsStaticPropertiesInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsStaticPropertiesInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_anonymous_operation_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_anonymous_operation_interface.cc
deleted file mode 100644
index 5813a8f..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_anonymous_operation_interface.cc
+++ /dev/null
@@ -1,435 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_stringifier_anonymous_operation_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::StringifierAnonymousOperationInterface;
-using cobalt::bindings::testing::MozjsStringifierAnonymousOperationInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsStringifierAnonymousOperationInterfaceHandler : public ProxyHandler {
- public:
-  MozjsStringifierAnonymousOperationInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsStringifierAnonymousOperationInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsStringifierAnonymousOperationInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsStringifierAnonymousOperationInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsStringifierAnonymousOperationInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "StringifierAnonymousOperationInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "StringifierAnonymousOperationInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "StringifierAnonymousOperationInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-
-JSBool Stringifier(JSContext* context, unsigned argc, JS::Value *vp) {
-  MozjsExceptionState exception_state(context);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-    const JSClass* proto_class =
-      MozjsStringifierAnonymousOperationInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<StringifierAnonymousOperationInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-
-  // |WrapperPrivate::GetFromObject| can fail if |object| is not a |Wrapper|
-  // object.
-  if (!wrapper_private) {
-    exception_state.SetSimpleException(cobalt::script::kStringifierProblem);
-    return false;
-  }
-
-  StringifierAnonymousOperationInterface* impl =
-      wrapper_private->wrappable<StringifierAnonymousOperationInterface>().get();
-  if (!impl) {
-    exception_state.SetSimpleException(cobalt::script::kStringifierProblem);
-    NOTREACHED();
-    return false;
-  }
-  std::string stringified = impl->AnonymousStringifier();
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  JS::RootedString rooted_string(context,
-      JS_NewStringCopyN(context, stringified.c_str(), stringified.length()));
-  args.rval().set(JS::StringValue(rooted_string));
-  return true;
-}
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "toString",
-      JSOP_WRAPPER(&Stringifier),
-      0,
-      JSPROP_PERMANENT,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "StringifierAnonymousOperationInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsStringifierAnonymousOperationInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsStringifierAnonymousOperationInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsStringifierAnonymousOperationInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsStringifierAnonymousOperationInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_anonymous_operation_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_anonymous_operation_interface.h
deleted file mode 100644
index be33621..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_anonymous_operation_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsStringifierAnonymousOperationInterface_h
-#define MozjsStringifierAnonymousOperationInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/stringifier_anonymous_operation_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsStringifierAnonymousOperationInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsStringifierAnonymousOperationInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_attribute_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_attribute_interface.cc
deleted file mode 100644
index 8dc7f73..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_attribute_interface.cc
+++ /dev/null
@@ -1,523 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_stringifier_attribute_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::StringifierAttributeInterface;
-using cobalt::bindings::testing::MozjsStringifierAttributeInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsStringifierAttributeInterfaceHandler : public ProxyHandler {
- public:
-  MozjsStringifierAttributeInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsStringifierAttributeInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsStringifierAttributeInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsStringifierAttributeInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsStringifierAttributeInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "StringifierAttributeInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "StringifierAttributeInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "StringifierAttributeInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_theStringifierAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsStringifierAttributeInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<StringifierAttributeInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  StringifierAttributeInterface* impl =
-      wrapper_private->wrappable<StringifierAttributeInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->the_stringifier_attribute(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_theStringifierAttribute(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsStringifierAttributeInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<StringifierAttributeInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  StringifierAttributeInterface* impl =
-      wrapper_private->wrappable<StringifierAttributeInterface>().get();
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_the_stringifier_attribute(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-JSBool Stringifier(JSContext* context, unsigned argc, JS::Value *vp) {
-  MozjsExceptionState exception_state(context);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-    const JSClass* proto_class =
-      MozjsStringifierAttributeInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<StringifierAttributeInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-
-  // |WrapperPrivate::GetFromObject| can fail if |object| is not a |Wrapper|
-  // object.
-  if (!wrapper_private) {
-    exception_state.SetSimpleException(cobalt::script::kStringifierProblem);
-    return false;
-  }
-
-  StringifierAttributeInterface* impl =
-      wrapper_private->wrappable<StringifierAttributeInterface>().get();
-  if (!impl) {
-    exception_state.SetSimpleException(cobalt::script::kStringifierProblem);
-    NOTREACHED();
-    return false;
-  }
-  std::string stringified = impl->the_stringifier_attribute();
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  JS::RootedString rooted_string(context,
-      JS_NewStringCopyN(context, stringified.c_str(), stringified.length()));
-  args.rval().set(JS::StringValue(rooted_string));
-  return true;
-}
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "theStringifierAttribute", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_theStringifierAttribute),
-      JSOP_WRAPPER(&set_theStringifierAttribute),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "toString",
-      JSOP_WRAPPER(&Stringifier),
-      0,
-      JSPROP_PERMANENT,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "StringifierAttributeInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsStringifierAttributeInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsStringifierAttributeInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsStringifierAttributeInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsStringifierAttributeInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_attribute_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_attribute_interface.h
deleted file mode 100644
index b16f977..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_attribute_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsStringifierAttributeInterface_h
-#define MozjsStringifierAttributeInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/stringifier_attribute_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsStringifierAttributeInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsStringifierAttributeInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_operation_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_operation_interface.cc
deleted file mode 100644
index d9fa758..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_operation_interface.cc
+++ /dev/null
@@ -1,494 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_stringifier_operation_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::StringifierOperationInterface;
-using cobalt::bindings::testing::MozjsStringifierOperationInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsStringifierOperationInterfaceHandler : public ProxyHandler {
- public:
-  MozjsStringifierOperationInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsStringifierOperationInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsStringifierOperationInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsStringifierOperationInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsStringifierOperationInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "StringifierOperationInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "StringifierOperationInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "StringifierOperationInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool fcn_theStringifierOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsStringifierOperationInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<StringifierOperationInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  StringifierOperationInterface* impl =
-      wrapper_private->wrappable<StringifierOperationInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->TheStringifierOperation(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-
-JSBool Stringifier(JSContext* context, unsigned argc, JS::Value *vp) {
-  MozjsExceptionState exception_state(context);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-    const JSClass* proto_class =
-      MozjsStringifierOperationInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<StringifierOperationInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-
-  // |WrapperPrivate::GetFromObject| can fail if |object| is not a |Wrapper|
-  // object.
-  if (!wrapper_private) {
-    exception_state.SetSimpleException(cobalt::script::kStringifierProblem);
-    return false;
-  }
-
-  StringifierOperationInterface* impl =
-      wrapper_private->wrappable<StringifierOperationInterface>().get();
-  if (!impl) {
-    exception_state.SetSimpleException(cobalt::script::kStringifierProblem);
-    NOTREACHED();
-    return false;
-  }
-  std::string stringified = impl->TheStringifierOperation();
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  JS::RootedString rooted_string(context,
-      JS_NewStringCopyN(context, stringified.c_str(), stringified.length()));
-  args.rval().set(JS::StringValue(rooted_string));
-  return true;
-}
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "toString",
-      JSOP_WRAPPER(&Stringifier),
-      0,
-      JSPROP_PERMANENT,
-      NULL,
-  },
-  {
-      "theStringifierOperation",
-      JSOP_WRAPPER(&fcn_theStringifierOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "StringifierOperationInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsStringifierOperationInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsStringifierOperationInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsStringifierOperationInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsStringifierOperationInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_operation_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_operation_interface.h
deleted file mode 100644
index 9f3e049..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_stringifier_operation_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsStringifierOperationInterface_h
-#define MozjsStringifierOperationInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/stringifier_operation_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsStringifierOperationInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsStringifierOperationInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_target_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_target_interface.cc
deleted file mode 100644
index c509b91..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_target_interface.cc
+++ /dev/null
@@ -1,475 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_target_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::TargetInterface;
-using cobalt::bindings::testing::MozjsTargetInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsTargetInterfaceHandler : public ProxyHandler {
- public:
-  MozjsTargetInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsTargetInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsTargetInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsTargetInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsTargetInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "TargetInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "TargetInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "TargetInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool fcn_implementedInterfaceFunction(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsTargetInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<TargetInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  TargetInterface* impl =
-      wrapper_private->wrappable<TargetInterface>().get();
-
-  impl->ImplementedInterfaceFunction();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_partialInterfaceFunction(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsTargetInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<TargetInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  TargetInterface* impl =
-      wrapper_private->wrappable<TargetInterface>().get();
-
-  impl->PartialInterfaceFunction();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "implementedInterfaceFunction",
-      JSOP_WRAPPER(&fcn_implementedInterfaceFunction),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "partialInterfaceFunction",
-      JSOP_WRAPPER(&fcn_partialInterfaceFunction),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "TargetInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsTargetInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsTargetInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsTargetInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsTargetInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_target_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_target_interface.h
deleted file mode 100644
index b3c99a7..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_target_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsTargetInterface_h
-#define MozjsTargetInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/target_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsTargetInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsTargetInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_test_dictionary.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_test_dictionary.cc
deleted file mode 100644
index 071d45a..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_test_dictionary.cc
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/dictionary-conversion.cc.template
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "cobalt/bindings/testing/test_dictionary.h"
-
-#include "cobalt/script/exception_state.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-
-using cobalt::bindings::testing::TestDictionary;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-void ToJSValue(
-    JSContext* context,
-    const TestDictionary& in_dictionary,
-    JS::MutableHandleValue out_value) {
-  // Create a new object that will hold the dictionary values.
-  JS::RootedObject dictionary_object(
-      context, JS_NewObject(context, NULL, NULL, NULL));
-  const int kPropertyAttributes = JSPROP_ENUMERATE;
-  if (in_dictionary.has_boolean_member()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.boolean_member(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "booleanMember",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  if (in_dictionary.has_short_clamp_member()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.short_clamp_member(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "shortClampMember",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  if (in_dictionary.has_long_member()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.long_member(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "longMember",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  if (in_dictionary.has_double_member()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.double_member(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "doubleMember",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  if (in_dictionary.has_string_member()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.string_member(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "stringMember",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  if (in_dictionary.has_interface_member()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.interface_member(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "interfaceMember",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  if (in_dictionary.has_member_with_default()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.member_with_default(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "memberWithDefault",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  if (in_dictionary.has_non_default_member()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.non_default_member(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "nonDefaultMember",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  if (in_dictionary.has_any_member_with_default()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.any_member_with_default(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "anyMemberWithDefault",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  if (in_dictionary.has_any_member()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.any_member(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "anyMember",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-  out_value.set(OBJECT_TO_JSVAL(dictionary_object));
-}
-
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 TestDictionary* out_dictionary) {
-  DCHECK_EQ(0, conversion_flags) << "Unexpected conversion flags.";
-  // https://heycam.github.io/webidl/#es-dictionary
-
-  if (value.isUndefined() || value.isNull()) {
-    // The default constructor will assign appropriate values to dictionary
-    // members with default values and leave the others unset.
-    *out_dictionary = TestDictionary();
-    return;
-  }
-  if (!value.isObject()) {
-    // 1. If Type(V) is not Undefined, Null or Object, then throw a TypeError.
-    exception_state->SetSimpleException(kNotObjectType);
-    return;
-  }
-  JS::RootedObject dictionary_object(context, JSVAL_TO_OBJECT(value));
-  JS::RootedValue boolean_member(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "booleanMember",
-                      boolean_member.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!boolean_member.isUndefined()) {
-    bool converted_value;
-    FromJSValue(context,
-                boolean_member,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_boolean_member(converted_value);
-  }
-  JS::RootedValue short_clamp_member(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "shortClampMember",
-                      short_clamp_member.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!short_clamp_member.isUndefined()) {
-    int16_t converted_value;
-    FromJSValue(context,
-                short_clamp_member,
-                (kConversionFlagClamped),
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_short_clamp_member(converted_value);
-  }
-  JS::RootedValue long_member(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "longMember",
-                      long_member.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!long_member.isUndefined()) {
-    int32_t converted_value;
-    FromJSValue(context,
-                long_member,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_long_member(converted_value);
-  }
-  JS::RootedValue double_member(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "doubleMember",
-                      double_member.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!double_member.isUndefined()) {
-    double converted_value;
-    FromJSValue(context,
-                double_member,
-                (kConversionFlagRestricted),
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_double_member(converted_value);
-  }
-  JS::RootedValue string_member(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "stringMember",
-                      string_member.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!string_member.isUndefined()) {
-    std::string converted_value;
-    FromJSValue(context,
-                string_member,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_string_member(converted_value);
-  }
-  JS::RootedValue interface_member(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "interfaceMember",
-                      interface_member.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!interface_member.isUndefined()) {
-    scoped_refptr<ArbitraryInterface> converted_value;
-    FromJSValue(context,
-                interface_member,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_interface_member(converted_value);
-  }
-  JS::RootedValue member_with_default(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "memberWithDefault",
-                      member_with_default.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!member_with_default.isUndefined()) {
-    int32_t converted_value;
-    FromJSValue(context,
-                member_with_default,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_member_with_default(converted_value);
-  }
-  JS::RootedValue non_default_member(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "nonDefaultMember",
-                      non_default_member.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!non_default_member.isUndefined()) {
-    int32_t converted_value;
-    FromJSValue(context,
-                non_default_member,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_non_default_member(converted_value);
-  }
-  JS::RootedValue any_member_with_default(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "anyMemberWithDefault",
-                      any_member_with_default.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!any_member_with_default.isUndefined()) {
-    TypeTraits<::cobalt::script::ValueHandle >::ConversionType converted_value;
-    FromJSValue(context,
-                any_member_with_default,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_any_member_with_default(&converted_value);
-  }
-  JS::RootedValue any_member(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "anyMember",
-                      any_member.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!any_member.isUndefined()) {
-    TypeTraits<::cobalt::script::ValueHandle >::ConversionType converted_value;
-    FromJSValue(context,
-                any_member,
-                kNoConversionFlags,
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_any_member(&converted_value);
-  }
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_test_enum.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_test_enum.cc
deleted file mode 100644
index 445ddbc..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_test_enum.cc
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/enumeration-conversion.cc.template
-
-#include "cobalt/bindings/testing/test_enum.h"
-
-#include "mozjs_gen_type_conversion.h"
-#include "cobalt/script/exception_state.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-using cobalt::bindings::testing::TestEnum;
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-void ToJSValue(
-    JSContext* context,
-    TestEnum in_enum,
-    JS::MutableHandleValue out_value) {
-  switch (in_enum) {
-    case cobalt::bindings::testing::kTestEnumAlpha:
-      ToJSValue(context, std::string("alpha"), out_value);
-      return;
-    case cobalt::bindings::testing::kTestEnumBeta:
-      ToJSValue(context, std::string("beta"), out_value);
-      return;
-    case cobalt::bindings::testing::kTestEnumGamma:
-      ToJSValue(context, std::string("gamma"), out_value);
-      return;
-    case cobalt::bindings::testing::kTestEnumEnumWithDashes:
-      ToJSValue(context, std::string("enum-with-dashes"), out_value);
-      return;
-    case cobalt::bindings::testing::kTestEnumEnumWithSpaces:
-      ToJSValue(context, std::string("enum with spaces"), out_value);
-      return;
-    case cobalt::bindings::testing::kTestEnumTerribleEnum:
-      ToJSValue(context, std::string("terrible----enum"), out_value);
-      return;
-    case cobalt::bindings::testing::kTestEnumThisIsATerribleEnum:
-      ToJSValue(context, std::string("this is a terrible @#$%#$% enum"), out_value);
-      return;
-    default:
-      NOTREACHED();
-      out_value.set(JS::UndefinedValue());
-  }
-}
-
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 TestEnum* out_enum) {
-  DCHECK_EQ(0, conversion_flags) << "Unexpected conversion flags.";
-  // JSValue -> IDL enum algorithm described here:
-  // http://heycam.github.io/webidl/#es-enumeration
-  // 1. Let S be the result of calling ToString(V).
-  JS::RootedString rooted_string(context, JS_ValueToString(context, value));
-
-  JSBool match = JS_FALSE;
-// 3. Return the enumeration value of type E that is equal to S.
-if (JS_StringEqualsAscii(
-      context, rooted_string, "alpha", &match)
-      && match) {
-    *out_enum = cobalt::bindings::testing::kTestEnumAlpha;
-  } else if (JS_StringEqualsAscii(
-      context, rooted_string, "beta", &match)
-      && match) {
-    *out_enum = cobalt::bindings::testing::kTestEnumBeta;
-  } else if (JS_StringEqualsAscii(
-      context, rooted_string, "gamma", &match)
-      && match) {
-    *out_enum = cobalt::bindings::testing::kTestEnumGamma;
-  } else if (JS_StringEqualsAscii(
-      context, rooted_string, "enum-with-dashes", &match)
-      && match) {
-    *out_enum = cobalt::bindings::testing::kTestEnumEnumWithDashes;
-  } else if (JS_StringEqualsAscii(
-      context, rooted_string, "enum with spaces", &match)
-      && match) {
-    *out_enum = cobalt::bindings::testing::kTestEnumEnumWithSpaces;
-  } else if (JS_StringEqualsAscii(
-      context, rooted_string, "terrible----enum", &match)
-      && match) {
-    *out_enum = cobalt::bindings::testing::kTestEnumTerribleEnum;
-  } else if (JS_StringEqualsAscii(
-      context, rooted_string, "this is a terrible @#$%#$% enum", &match)
-      && match) {
-    *out_enum = cobalt::bindings::testing::kTestEnumThisIsATerribleEnum;
-  } else {
-    // 2. If S is not one of E's enumeration values, then throw a TypeError.
-    exception_state->SetSimpleException(cobalt::script::kConvertToEnumFailed);
-    return;
-  }
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_union_types_interface.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_union_types_interface.cc
deleted file mode 100644
index 4529e86..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_union_types_interface.cc
+++ /dev/null
@@ -1,729 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_union_types_interface.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/base_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_base_interface.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::UnionTypesInterface;
-using cobalt::bindings::testing::MozjsUnionTypesInterface;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::BaseInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::bindings::testing::MozjsBaseInterface;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsUnionTypesInterfaceHandler : public ProxyHandler {
- public:
-  MozjsUnionTypesInterfaceHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsUnionTypesInterfaceHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsUnionTypesInterfaceHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsUnionTypesInterfaceHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsUnionTypesInterface::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = 0;
-  instance_class->name = "UnionTypesInterface";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "UnionTypesInterfacePrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "UnionTypesInterfaceConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_unionProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsUnionTypesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<UnionTypesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  UnionTypesInterface* impl =
-      wrapper_private->wrappable<UnionTypesInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->union_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unionProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsUnionTypesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<UnionTypesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  UnionTypesInterface* impl =
-      wrapper_private->wrappable<UnionTypesInterface>().get();
-  TypeTraits<::cobalt::script::UnionType4<std::string, bool, scoped_refptr<ArbitraryInterface>, int32_t > >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_union_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_unionWithNullableMemberProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsUnionTypesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<UnionTypesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  UnionTypesInterface* impl =
-      wrapper_private->wrappable<UnionTypesInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->union_with_nullable_member_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unionWithNullableMemberProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsUnionTypesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<UnionTypesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  UnionTypesInterface* impl =
-      wrapper_private->wrappable<UnionTypesInterface>().get();
-  TypeTraits<base::optional<::cobalt::script::UnionType2<double, std::string > > >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_union_with_nullable_member_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_nullableUnionProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsUnionTypesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<UnionTypesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  UnionTypesInterface* impl =
-      wrapper_private->wrappable<UnionTypesInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->nullable_union_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_nullableUnionProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsUnionTypesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<UnionTypesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  UnionTypesInterface* impl =
-      wrapper_private->wrappable<UnionTypesInterface>().get();
-  TypeTraits<base::optional<::cobalt::script::UnionType2<double, std::string > > >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_nullable_union_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_unionBaseProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsUnionTypesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<UnionTypesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  UnionTypesInterface* impl =
-      wrapper_private->wrappable<UnionTypesInterface>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->union_base_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_unionBaseProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsUnionTypesInterface::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<UnionTypesInterface>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  UnionTypesInterface* impl =
-      wrapper_private->wrappable<UnionTypesInterface>().get();
-  TypeTraits<::cobalt::script::UnionType2<scoped_refptr<BaseInterface>, std::string > >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_union_base_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "unionProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unionProperty),
-      JSOP_WRAPPER(&set_unionProperty),
-  },
-  {  // Read/Write property
-      "unionWithNullableMemberProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unionWithNullableMemberProperty),
-      JSOP_WRAPPER(&set_unionWithNullableMemberProperty),
-  },
-  {  // Read/Write property
-      "nullableUnionProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_nullableUnionProperty),
-      JSOP_WRAPPER(&set_nullableUnionProperty),
-  },
-  {  // Read/Write property
-      "unionBaseProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_unionBaseProperty),
-      JSOP_WRAPPER(&set_unionBaseProperty),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "UnionTypesInterface";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-// static
-JSObject* MozjsUnionTypesInterface::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-//static
-const JSClass* MozjsUnionTypesInterface::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsUnionTypesInterface::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsUnionTypesInterface::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_union_types_interface.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_union_types_interface.h
deleted file mode 100644
index e9d11c6..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_union_types_interface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsUnionTypesInterface_h
-#define MozjsUnionTypesInterface_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/union_types_interface.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsUnionTypesInterface {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsUnionTypesInterface_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_window.cc b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_window.cc
deleted file mode 100644
index b28b493..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_window.cc
+++ /dev/null
@@ -1,1263 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.cc.template
-
-#include "cobalt/bindings/testing/mozjs_window.h"
-
-#include "base/debug/trace_event.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/opaque_handle.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/bindings/testing/anonymous_indexed_getter_interface.h"
-#include "cobalt/bindings/testing/anonymous_named_getter_interface.h"
-#include "cobalt/bindings/testing/anonymous_named_indexed_getter_interface.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-#include "cobalt/bindings/testing/base_interface.h"
-#include "cobalt/bindings/testing/boolean_type_test_interface.h"
-#include "cobalt/bindings/testing/callback_function_interface.h"
-#include "cobalt/bindings/testing/callback_interface_interface.h"
-#include "cobalt/bindings/testing/conditional_interface.h"
-#include "cobalt/bindings/testing/constants_interface.h"
-#include "cobalt/bindings/testing/constructor_interface.h"
-#include "cobalt/bindings/testing/constructor_with_arguments_interface.h"
-#include "cobalt/bindings/testing/derived_getter_setter_interface.h"
-#include "cobalt/bindings/testing/derived_interface.h"
-#include "cobalt/bindings/testing/dictionary_interface.h"
-#include "cobalt/bindings/testing/disabled_interface.h"
-#include "cobalt/bindings/testing/dom_string_test_interface.h"
-#include "cobalt/bindings/testing/enumeration_interface.h"
-#include "cobalt/bindings/testing/exception_object_interface.h"
-#include "cobalt/bindings/testing/exceptions_interface.h"
-#include "cobalt/bindings/testing/extended_idl_attributes_interface.h"
-#include "cobalt/bindings/testing/garbage_collection_test_interface.h"
-#include "cobalt/bindings/testing/global_interface_parent.h"
-#include "cobalt/bindings/testing/implemented_interface.h"
-#include "cobalt/bindings/testing/indexed_getter_interface.h"
-#include "cobalt/bindings/testing/interface_with_any.h"
-#include "cobalt/bindings/testing/interface_with_any_dictionary.h"
-#include "cobalt/bindings/testing/interface_with_unsupported_properties.h"
-#include "cobalt/bindings/testing/mozjs_anonymous_indexed_getter_interface.h"
-#include "cobalt/bindings/testing/mozjs_anonymous_named_getter_interface.h"
-#include "cobalt/bindings/testing/mozjs_anonymous_named_indexed_getter_interface.h"
-#include "cobalt/bindings/testing/mozjs_arbitrary_interface.h"
-#include "cobalt/bindings/testing/mozjs_base_interface.h"
-#include "cobalt/bindings/testing/mozjs_boolean_type_test_interface.h"
-#include "cobalt/bindings/testing/mozjs_callback_function_interface.h"
-#include "cobalt/bindings/testing/mozjs_callback_interface_interface.h"
-#include "cobalt/bindings/testing/mozjs_conditional_interface.h"
-#include "cobalt/bindings/testing/mozjs_constants_interface.h"
-#include "cobalt/bindings/testing/mozjs_constructor_interface.h"
-#include "cobalt/bindings/testing/mozjs_constructor_with_arguments_interface.h"
-#include "cobalt/bindings/testing/mozjs_derived_getter_setter_interface.h"
-#include "cobalt/bindings/testing/mozjs_derived_interface.h"
-#include "cobalt/bindings/testing/mozjs_dictionary_interface.h"
-#include "cobalt/bindings/testing/mozjs_disabled_interface.h"
-#include "cobalt/bindings/testing/mozjs_dom_string_test_interface.h"
-#include "cobalt/bindings/testing/mozjs_enumeration_interface.h"
-#include "cobalt/bindings/testing/mozjs_exception_object_interface.h"
-#include "cobalt/bindings/testing/mozjs_exceptions_interface.h"
-#include "cobalt/bindings/testing/mozjs_extended_idl_attributes_interface.h"
-#include "cobalt/bindings/testing/mozjs_garbage_collection_test_interface.h"
-#include "cobalt/bindings/testing/mozjs_global_interface_parent.h"
-#include "cobalt/bindings/testing/mozjs_implemented_interface.h"
-#include "cobalt/bindings/testing/mozjs_indexed_getter_interface.h"
-#include "cobalt/bindings/testing/mozjs_interface_with_any.h"
-#include "cobalt/bindings/testing/mozjs_interface_with_any_dictionary.h"
-#include "cobalt/bindings/testing/mozjs_interface_with_unsupported_properties.h"
-#include "cobalt/bindings/testing/mozjs_named_constructor_interface.h"
-#include "cobalt/bindings/testing/mozjs_named_getter_interface.h"
-#include "cobalt/bindings/testing/mozjs_named_indexed_getter_interface.h"
-#include "cobalt/bindings/testing/mozjs_nested_put_forwards_interface.h"
-#include "cobalt/bindings/testing/mozjs_no_constructor_interface.h"
-#include "cobalt/bindings/testing/mozjs_no_interface_object_interface.h"
-#include "cobalt/bindings/testing/mozjs_nullable_types_test_interface.h"
-#include "cobalt/bindings/testing/mozjs_numeric_types_test_interface.h"
-#include "cobalt/bindings/testing/mozjs_object_type_bindings_interface.h"
-#include "cobalt/bindings/testing/mozjs_operations_test_interface.h"
-#include "cobalt/bindings/testing/mozjs_promise_interface.h"
-#include "cobalt/bindings/testing/mozjs_put_forwards_interface.h"
-#include "cobalt/bindings/testing/mozjs_sequence_user.h"
-#include "cobalt/bindings/testing/mozjs_single_operation_interface.h"
-#include "cobalt/bindings/testing/mozjs_static_properties_interface.h"
-#include "cobalt/bindings/testing/mozjs_stringifier_anonymous_operation_interface.h"
-#include "cobalt/bindings/testing/mozjs_stringifier_attribute_interface.h"
-#include "cobalt/bindings/testing/mozjs_stringifier_operation_interface.h"
-#include "cobalt/bindings/testing/mozjs_target_interface.h"
-#include "cobalt/bindings/testing/mozjs_union_types_interface.h"
-#include "cobalt/bindings/testing/mozjs_window.h"
-#include "cobalt/bindings/testing/named_constructor_interface.h"
-#include "cobalt/bindings/testing/named_getter_interface.h"
-#include "cobalt/bindings/testing/named_indexed_getter_interface.h"
-#include "cobalt/bindings/testing/nested_put_forwards_interface.h"
-#include "cobalt/bindings/testing/no_constructor_interface.h"
-#include "cobalt/bindings/testing/no_interface_object_interface.h"
-#include "cobalt/bindings/testing/nullable_types_test_interface.h"
-#include "cobalt/bindings/testing/numeric_types_test_interface.h"
-#include "cobalt/bindings/testing/object_type_bindings_interface.h"
-#include "cobalt/bindings/testing/operations_test_interface.h"
-#include "cobalt/bindings/testing/promise_interface.h"
-#include "cobalt/bindings/testing/put_forwards_interface.h"
-#include "cobalt/bindings/testing/sequence_user.h"
-#include "cobalt/bindings/testing/single_operation_interface.h"
-#include "cobalt/bindings/testing/static_properties_interface.h"
-#include "cobalt/bindings/testing/stringifier_anonymous_operation_interface.h"
-#include "cobalt/bindings/testing/stringifier_attribute_interface.h"
-#include "cobalt/bindings/testing/stringifier_operation_interface.h"
-#include "cobalt/bindings/testing/target_interface.h"
-#include "cobalt/bindings/testing/union_types_interface.h"
-#include "cobalt/bindings/testing/window.h"
-
-#include "mozjs_gen_type_conversion.h"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-
-namespace {
-using cobalt::bindings::testing::Window;
-using cobalt::bindings::testing::MozjsWindow;
-using cobalt::bindings::testing::AnonymousIndexedGetterInterface;
-using cobalt::bindings::testing::AnonymousNamedGetterInterface;
-using cobalt::bindings::testing::AnonymousNamedIndexedGetterInterface;
-using cobalt::bindings::testing::ArbitraryInterface;
-using cobalt::bindings::testing::BaseInterface;
-using cobalt::bindings::testing::BooleanTypeTestInterface;
-using cobalt::bindings::testing::CallbackFunctionInterface;
-using cobalt::bindings::testing::CallbackInterfaceInterface;
-#if defined(ENABLE_CONDITIONAL_INTERFACE)
-using cobalt::bindings::testing::ConditionalInterface;
-#endif  // defined(ENABLE_CONDITIONAL_INTERFACE)
-using cobalt::bindings::testing::ConstantsInterface;
-using cobalt::bindings::testing::ConstructorInterface;
-using cobalt::bindings::testing::ConstructorWithArgumentsInterface;
-using cobalt::bindings::testing::DOMStringTestInterface;
-using cobalt::bindings::testing::DerivedGetterSetterInterface;
-using cobalt::bindings::testing::DerivedInterface;
-using cobalt::bindings::testing::DictionaryInterface;
-#if defined(NO_ENABLE_CONDITIONAL_INTERFACE)
-using cobalt::bindings::testing::DisabledInterface;
-#endif  // defined(NO_ENABLE_CONDITIONAL_INTERFACE)
-using cobalt::bindings::testing::EnumerationInterface;
-using cobalt::bindings::testing::ExceptionObjectInterface;
-using cobalt::bindings::testing::ExceptionsInterface;
-using cobalt::bindings::testing::ExtendedIDLAttributesInterface;
-using cobalt::bindings::testing::GarbageCollectionTestInterface;
-using cobalt::bindings::testing::GlobalInterfaceParent;
-using cobalt::bindings::testing::ImplementedInterface;
-using cobalt::bindings::testing::IndexedGetterInterface;
-using cobalt::bindings::testing::InterfaceWithAny;
-using cobalt::bindings::testing::InterfaceWithAnyDictionary;
-using cobalt::bindings::testing::InterfaceWithUnsupportedProperties;
-using cobalt::bindings::testing::MozjsAnonymousIndexedGetterInterface;
-using cobalt::bindings::testing::MozjsAnonymousNamedGetterInterface;
-using cobalt::bindings::testing::MozjsAnonymousNamedIndexedGetterInterface;
-using cobalt::bindings::testing::MozjsArbitraryInterface;
-using cobalt::bindings::testing::MozjsBaseInterface;
-using cobalt::bindings::testing::MozjsBooleanTypeTestInterface;
-using cobalt::bindings::testing::MozjsCallbackFunctionInterface;
-using cobalt::bindings::testing::MozjsCallbackInterfaceInterface;
-#if defined(ENABLE_CONDITIONAL_INTERFACE)
-using cobalt::bindings::testing::MozjsConditionalInterface;
-#endif  // defined(ENABLE_CONDITIONAL_INTERFACE)
-using cobalt::bindings::testing::MozjsConstantsInterface;
-using cobalt::bindings::testing::MozjsConstructorInterface;
-using cobalt::bindings::testing::MozjsConstructorWithArgumentsInterface;
-using cobalt::bindings::testing::MozjsDOMStringTestInterface;
-using cobalt::bindings::testing::MozjsDerivedGetterSetterInterface;
-using cobalt::bindings::testing::MozjsDerivedInterface;
-using cobalt::bindings::testing::MozjsDictionaryInterface;
-#if defined(NO_ENABLE_CONDITIONAL_INTERFACE)
-using cobalt::bindings::testing::MozjsDisabledInterface;
-#endif  // defined(NO_ENABLE_CONDITIONAL_INTERFACE)
-using cobalt::bindings::testing::MozjsEnumerationInterface;
-using cobalt::bindings::testing::MozjsExceptionObjectInterface;
-using cobalt::bindings::testing::MozjsExceptionsInterface;
-using cobalt::bindings::testing::MozjsExtendedIDLAttributesInterface;
-using cobalt::bindings::testing::MozjsGarbageCollectionTestInterface;
-using cobalt::bindings::testing::MozjsGlobalInterfaceParent;
-using cobalt::bindings::testing::MozjsImplementedInterface;
-using cobalt::bindings::testing::MozjsIndexedGetterInterface;
-using cobalt::bindings::testing::MozjsInterfaceWithAny;
-using cobalt::bindings::testing::MozjsInterfaceWithAnyDictionary;
-using cobalt::bindings::testing::MozjsInterfaceWithUnsupportedProperties;
-using cobalt::bindings::testing::MozjsNamedConstructorInterface;
-using cobalt::bindings::testing::MozjsNamedGetterInterface;
-using cobalt::bindings::testing::MozjsNamedIndexedGetterInterface;
-using cobalt::bindings::testing::MozjsNestedPutForwardsInterface;
-using cobalt::bindings::testing::MozjsNoConstructorInterface;
-using cobalt::bindings::testing::MozjsNoInterfaceObjectInterface;
-using cobalt::bindings::testing::MozjsNullableTypesTestInterface;
-using cobalt::bindings::testing::MozjsNumericTypesTestInterface;
-using cobalt::bindings::testing::MozjsObjectTypeBindingsInterface;
-using cobalt::bindings::testing::MozjsOperationsTestInterface;
-using cobalt::bindings::testing::MozjsPromiseInterface;
-using cobalt::bindings::testing::MozjsPutForwardsInterface;
-using cobalt::bindings::testing::MozjsSequenceUser;
-using cobalt::bindings::testing::MozjsSingleOperationInterface;
-using cobalt::bindings::testing::MozjsStaticPropertiesInterface;
-using cobalt::bindings::testing::MozjsStringifierAnonymousOperationInterface;
-using cobalt::bindings::testing::MozjsStringifierAttributeInterface;
-using cobalt::bindings::testing::MozjsStringifierOperationInterface;
-using cobalt::bindings::testing::MozjsTargetInterface;
-using cobalt::bindings::testing::MozjsUnionTypesInterface;
-using cobalt::bindings::testing::MozjsWindow;
-using cobalt::bindings::testing::NamedConstructorInterface;
-using cobalt::bindings::testing::NamedGetterInterface;
-using cobalt::bindings::testing::NamedIndexedGetterInterface;
-using cobalt::bindings::testing::NestedPutForwardsInterface;
-using cobalt::bindings::testing::NoConstructorInterface;
-using cobalt::bindings::testing::NoInterfaceObjectInterface;
-using cobalt::bindings::testing::NullableTypesTestInterface;
-using cobalt::bindings::testing::NumericTypesTestInterface;
-using cobalt::bindings::testing::ObjectTypeBindingsInterface;
-using cobalt::bindings::testing::OperationsTestInterface;
-using cobalt::bindings::testing::PromiseInterface;
-using cobalt::bindings::testing::PutForwardsInterface;
-using cobalt::bindings::testing::SequenceUser;
-using cobalt::bindings::testing::SingleOperationInterface;
-using cobalt::bindings::testing::StaticPropertiesInterface;
-using cobalt::bindings::testing::StringifierAnonymousOperationInterface;
-using cobalt::bindings::testing::StringifierAttributeInterface;
-using cobalt::bindings::testing::StringifierOperationInterface;
-using cobalt::bindings::testing::TargetInterface;
-using cobalt::bindings::testing::UnionTypesInterface;
-using cobalt::bindings::testing::Window;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::GlobalEnvironment;
-using cobalt::script::OpaqueHandle;
-using cobalt::script::OpaqueHandleHolder;
-using cobalt::script::ScriptValue;
-using cobalt::script::ValueHandle;
-using cobalt::script::Wrappable;
-
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-JSObject* DummyFunctor(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  NOTREACHED();
-  return NULL;
-}
-}  // namespace
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-namespace {
-
-class MozjsWindowHandler : public ProxyHandler {
- public:
-  MozjsWindowHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-MozjsWindowHandler::named_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-ProxyHandler::IndexedPropertyHooks
-MozjsWindowHandler::indexed_property_hooks = {
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-};
-
-static base::LazyInstance<MozjsWindowHandler>
-    proxy_handler;
-
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsWindow::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = JSCLASS_GLOBAL_FLAGS;
-  instance_class->name = "Window";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "WindowPrototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "WindowConstructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-  return interface_data;
-}
-
-JSBool get_windowProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsWindow::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<Window>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  Window* impl =
-      wrapper_private->wrappable<Window>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->window_property(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_windowProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsWindow::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<Window>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  Window* impl =
-      wrapper_private->wrappable<Window>().get();
-  TypeTraits<std::string >::ConversionType value;
-  FromJSValue(context, vp, kNoConversionFlags, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_window_property(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_window(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsWindow::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<Window>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  Window* impl =
-      wrapper_private->wrappable<Window>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->window(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool get_onEvent(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsWindow::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<Window>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  Window* impl =
-      wrapper_private->wrappable<Window>().get();
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->on_event(),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool set_onEvent(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  const JSClass* proto_class =
-      MozjsWindow::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<Window>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  Window* impl =
-      wrapper_private->wrappable<Window>().get();
-  TypeTraits<::cobalt::script::CallbackInterfaceTraits<SingleOperationInterface > >::ConversionType value;
-  FromJSValue(context, vp, (kConversionFlagNullable), &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-
-  impl->set_on_event(value);
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_getStackTrace(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsWindow::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<Window>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  Window* impl =
-      wrapper_private->wrappable<Window>().get();
-  MozjsGlobalEnvironment* callwith_global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-
-  if (!exception_state.is_exception_set()) {
-    ToJSValue(context,
-              impl->GetStackTrace(callwith_global_environment->GetStackTrace()),
-              &result_value);
-  }
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-JSBool fcn_setTimeout(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsWindow::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<Window>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  Window* impl =
-      wrapper_private->wrappable<Window>().get();
-  const size_t kMinArguments = 1;
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-  // Non-optional arguments
-  TypeTraits<Window::TimerCallback >::ConversionType handler;
-  // Optional arguments
-  TypeTraits<int32_t >::ConversionType timeout;
-
-  DCHECK_LT(0, args.length());
-  JS::RootedValue non_optional_value0(
-      context, args[0]);
-  FromJSValue(context,
-              non_optional_value0,
-              kNoConversionFlags,
-              &exception_state, &handler);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-  size_t num_set_arguments = 1;
-  if (args.length() > 1) {
-    JS::RootedValue optional_value0(
-        context, args[1]);
-    FromJSValue(context,
-                optional_value0,
-                kNoConversionFlags,
-                &exception_state,
-                &timeout);
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-    ++num_set_arguments;
-  }
-  switch (num_set_arguments) {
-    case 1:
-      {
-          if (!exception_state.is_exception_set()) {
-            ToJSValue(context,
-                      impl->SetTimeout(handler),
-                      &result_value);
-          }
-          if (!exception_state.is_exception_set()) {
-            args.rval().set(result_value);
-          }
-          return !exception_state.is_exception_set();
-      }
-      break;
-    case 2:
-      {
-          if (!exception_state.is_exception_set()) {
-            ToJSValue(context,
-                      impl->SetTimeout(handler, timeout),
-                      &result_value);
-          }
-          if (!exception_state.is_exception_set()) {
-            args.rval().set(result_value);
-          }
-          return !exception_state.is_exception_set();
-      }
-      break;
-    default:
-      NOTREACHED();
-      return false;
-  }
-}
-
-JSBool fcn_windowOperation(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class =
-      MozjsWindow::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<Window>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  Window* impl =
-      wrapper_private->wrappable<Window>().get();
-
-  impl->WindowOperation();
-  result_value.set(JS::UndefinedHandleValue);
-  return !exception_state.is_exception_set();
-}
-
-
-const JSPropertySpec prototype_properties[] = {
-  {  // Read/Write property
-      "windowProperty", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_windowProperty),
-      JSOP_WRAPPER(&set_windowProperty),
-  },
-  {  // Readonly attribute
-      "window", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_window),
-      JSOP_NULLWRAPPER,
-  },
-  {  // Read/Write property
-      "onEvent", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_onEvent),
-      JSOP_WRAPPER(&set_onEvent),
-  },
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-  {
-      "getStackTrace",
-      JSOP_WRAPPER(&fcn_getStackTrace),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "setTimeout",
-      JSOP_WRAPPER(&fcn_setTimeout),
-      1,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  {
-      "windowOperation",
-      JSOP_WRAPPER(&fcn_windowOperation),
-      0,
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JS::RootedObject parent_prototype(
-      context, MozjsGlobalInterfaceParent::GetPrototype(context, global_object));
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "Window";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-JSObject* MozjsWindow::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject global_object(
-      context, JS_NewGlobalObject(context,
-                                  &interface_data->instance_class_definition,
-                                  NULL));
-  DCHECK(global_object);
-
-  // Initialize standard JS constructors prototypes and top-level functions such
-  // as Object, isNan, etc.
-  JSAutoCompartment auto_compartment(context, global_object);
-  bool success = JS_InitStandardClasses(context, global_object);
-
-  JS::RootedObject prototype(
-      context, MozjsWindow::GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS_SetPrototype(context, global_object, prototype);
-
-  // Add own properties.
-  success = JS_DefineProperties(context, global_object, own_properties);
-  DCHECK(success);
-
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, global_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-
-  // Set the global object proxy pointer, so we can access the standard classes
-  // such as the base Object prototype when looking up our prototype.
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  global_environment->SetGlobalObjectProxyAndWrapper(proxy, wrappable);
-  return proxy;
-}
-//static
-const JSClass* MozjsWindow::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* MozjsWindow::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-// static
-JSObject* MozjsWindow::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-
-namespace {
-}  // namespace
-
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-namespace cobalt {
-namespace script {
-
-template<>
-void GlobalEnvironment::CreateGlobalObject<Window>(
-    const scoped_refptr<Window>& global_interface,
-    EnvironmentSettings* environment_settings) {
-  MozjsGlobalEnvironment* mozjs_global_environment =
-      base::polymorphic_downcast<MozjsGlobalEnvironment*>(this);
-  JSContext* context = mozjs_global_environment->context();
-
-  JSAutoRequest auto_request(context);
-  MozjsWindow::CreateProxy(
-      context, global_interface);
-  mozjs_global_environment->SetEnvironmentSettings(environment_settings);
-  mozjs_global_environment->EvaluateAutomatics();
-
-  WrapperFactory* wrapper_factory =
-      mozjs_global_environment->wrapper_factory();
-  wrapper_factory->RegisterWrappableType(
-      AnonymousIndexedGetterInterface::AnonymousIndexedGetterInterfaceWrappableType(),
-      base::Bind(MozjsAnonymousIndexedGetterInterface::CreateProxy),
-      base::Bind(MozjsAnonymousIndexedGetterInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      AnonymousNamedGetterInterface::AnonymousNamedGetterInterfaceWrappableType(),
-      base::Bind(MozjsAnonymousNamedGetterInterface::CreateProxy),
-      base::Bind(MozjsAnonymousNamedGetterInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      AnonymousNamedIndexedGetterInterface::AnonymousNamedIndexedGetterInterfaceWrappableType(),
-      base::Bind(MozjsAnonymousNamedIndexedGetterInterface::CreateProxy),
-      base::Bind(MozjsAnonymousNamedIndexedGetterInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      ArbitraryInterface::ArbitraryInterfaceWrappableType(),
-      base::Bind(MozjsArbitraryInterface::CreateProxy),
-      base::Bind(MozjsArbitraryInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      BaseInterface::BaseInterfaceWrappableType(),
-      base::Bind(MozjsBaseInterface::CreateProxy),
-      base::Bind(MozjsBaseInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      BooleanTypeTestInterface::BooleanTypeTestInterfaceWrappableType(),
-      base::Bind(MozjsBooleanTypeTestInterface::CreateProxy),
-      base::Bind(MozjsBooleanTypeTestInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      CallbackFunctionInterface::CallbackFunctionInterfaceWrappableType(),
-      base::Bind(MozjsCallbackFunctionInterface::CreateProxy),
-      base::Bind(MozjsCallbackFunctionInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      CallbackInterfaceInterface::CallbackInterfaceInterfaceWrappableType(),
-      base::Bind(MozjsCallbackInterfaceInterface::CreateProxy),
-      base::Bind(MozjsCallbackInterfaceInterface::PrototypeClass));
-#if defined(ENABLE_CONDITIONAL_INTERFACE)
-  wrapper_factory->RegisterWrappableType(
-      ConditionalInterface::ConditionalInterfaceWrappableType(),
-      base::Bind(MozjsConditionalInterface::CreateProxy),
-      base::Bind(MozjsConditionalInterface::PrototypeClass));
-#endif  // defined(ENABLE_CONDITIONAL_INTERFACE)
-  wrapper_factory->RegisterWrappableType(
-      ConstantsInterface::ConstantsInterfaceWrappableType(),
-      base::Bind(MozjsConstantsInterface::CreateProxy),
-      base::Bind(MozjsConstantsInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      ConstructorInterface::ConstructorInterfaceWrappableType(),
-      base::Bind(MozjsConstructorInterface::CreateProxy),
-      base::Bind(MozjsConstructorInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      ConstructorWithArgumentsInterface::ConstructorWithArgumentsInterfaceWrappableType(),
-      base::Bind(MozjsConstructorWithArgumentsInterface::CreateProxy),
-      base::Bind(MozjsConstructorWithArgumentsInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      DOMStringTestInterface::DOMStringTestInterfaceWrappableType(),
-      base::Bind(MozjsDOMStringTestInterface::CreateProxy),
-      base::Bind(MozjsDOMStringTestInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      DerivedGetterSetterInterface::DerivedGetterSetterInterfaceWrappableType(),
-      base::Bind(MozjsDerivedGetterSetterInterface::CreateProxy),
-      base::Bind(MozjsDerivedGetterSetterInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      DerivedInterface::DerivedInterfaceWrappableType(),
-      base::Bind(MozjsDerivedInterface::CreateProxy),
-      base::Bind(MozjsDerivedInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      DictionaryInterface::DictionaryInterfaceWrappableType(),
-      base::Bind(MozjsDictionaryInterface::CreateProxy),
-      base::Bind(MozjsDictionaryInterface::PrototypeClass));
-#if defined(NO_ENABLE_CONDITIONAL_INTERFACE)
-  wrapper_factory->RegisterWrappableType(
-      DisabledInterface::DisabledInterfaceWrappableType(),
-      base::Bind(MozjsDisabledInterface::CreateProxy),
-      base::Bind(MozjsDisabledInterface::PrototypeClass));
-#endif  // defined(NO_ENABLE_CONDITIONAL_INTERFACE)
-  wrapper_factory->RegisterWrappableType(
-      EnumerationInterface::EnumerationInterfaceWrappableType(),
-      base::Bind(MozjsEnumerationInterface::CreateProxy),
-      base::Bind(MozjsEnumerationInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      ExceptionObjectInterface::ExceptionObjectInterfaceWrappableType(),
-      base::Bind(MozjsExceptionObjectInterface::CreateProxy),
-      base::Bind(MozjsExceptionObjectInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      ExceptionsInterface::ExceptionsInterfaceWrappableType(),
-      base::Bind(MozjsExceptionsInterface::CreateProxy),
-      base::Bind(MozjsExceptionsInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      ExtendedIDLAttributesInterface::ExtendedIDLAttributesInterfaceWrappableType(),
-      base::Bind(MozjsExtendedIDLAttributesInterface::CreateProxy),
-      base::Bind(MozjsExtendedIDLAttributesInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      GarbageCollectionTestInterface::GarbageCollectionTestInterfaceWrappableType(),
-      base::Bind(MozjsGarbageCollectionTestInterface::CreateProxy),
-      base::Bind(MozjsGarbageCollectionTestInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      GlobalInterfaceParent::GlobalInterfaceParentWrappableType(),
-      base::Bind(MozjsGlobalInterfaceParent::CreateProxy),
-      base::Bind(MozjsGlobalInterfaceParent::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      ImplementedInterface::ImplementedInterfaceWrappableType(),
-      base::Bind(MozjsImplementedInterface::CreateProxy),
-      base::Bind(MozjsImplementedInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      IndexedGetterInterface::IndexedGetterInterfaceWrappableType(),
-      base::Bind(MozjsIndexedGetterInterface::CreateProxy),
-      base::Bind(MozjsIndexedGetterInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      InterfaceWithAny::InterfaceWithAnyWrappableType(),
-      base::Bind(MozjsInterfaceWithAny::CreateProxy),
-      base::Bind(MozjsInterfaceWithAny::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      InterfaceWithAnyDictionary::InterfaceWithAnyDictionaryWrappableType(),
-      base::Bind(MozjsInterfaceWithAnyDictionary::CreateProxy),
-      base::Bind(MozjsInterfaceWithAnyDictionary::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      InterfaceWithUnsupportedProperties::InterfaceWithUnsupportedPropertiesWrappableType(),
-      base::Bind(MozjsInterfaceWithUnsupportedProperties::CreateProxy),
-      base::Bind(MozjsInterfaceWithUnsupportedProperties::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      NamedConstructorInterface::NamedConstructorInterfaceWrappableType(),
-      base::Bind(MozjsNamedConstructorInterface::CreateProxy),
-      base::Bind(MozjsNamedConstructorInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      NamedGetterInterface::NamedGetterInterfaceWrappableType(),
-      base::Bind(MozjsNamedGetterInterface::CreateProxy),
-      base::Bind(MozjsNamedGetterInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      NamedIndexedGetterInterface::NamedIndexedGetterInterfaceWrappableType(),
-      base::Bind(MozjsNamedIndexedGetterInterface::CreateProxy),
-      base::Bind(MozjsNamedIndexedGetterInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      NestedPutForwardsInterface::NestedPutForwardsInterfaceWrappableType(),
-      base::Bind(MozjsNestedPutForwardsInterface::CreateProxy),
-      base::Bind(MozjsNestedPutForwardsInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      NoConstructorInterface::NoConstructorInterfaceWrappableType(),
-      base::Bind(MozjsNoConstructorInterface::CreateProxy),
-      base::Bind(MozjsNoConstructorInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      NoInterfaceObjectInterface::NoInterfaceObjectInterfaceWrappableType(),
-      base::Bind(MozjsNoInterfaceObjectInterface::CreateProxy),
-      base::Bind(MozjsNoInterfaceObjectInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      NullableTypesTestInterface::NullableTypesTestInterfaceWrappableType(),
-      base::Bind(MozjsNullableTypesTestInterface::CreateProxy),
-      base::Bind(MozjsNullableTypesTestInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      NumericTypesTestInterface::NumericTypesTestInterfaceWrappableType(),
-      base::Bind(MozjsNumericTypesTestInterface::CreateProxy),
-      base::Bind(MozjsNumericTypesTestInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      ObjectTypeBindingsInterface::ObjectTypeBindingsInterfaceWrappableType(),
-      base::Bind(MozjsObjectTypeBindingsInterface::CreateProxy),
-      base::Bind(MozjsObjectTypeBindingsInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      OperationsTestInterface::OperationsTestInterfaceWrappableType(),
-      base::Bind(MozjsOperationsTestInterface::CreateProxy),
-      base::Bind(MozjsOperationsTestInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      PromiseInterface::PromiseInterfaceWrappableType(),
-      base::Bind(MozjsPromiseInterface::CreateProxy),
-      base::Bind(MozjsPromiseInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      PutForwardsInterface::PutForwardsInterfaceWrappableType(),
-      base::Bind(MozjsPutForwardsInterface::CreateProxy),
-      base::Bind(MozjsPutForwardsInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      SequenceUser::SequenceUserWrappableType(),
-      base::Bind(MozjsSequenceUser::CreateProxy),
-      base::Bind(MozjsSequenceUser::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      StaticPropertiesInterface::StaticPropertiesInterfaceWrappableType(),
-      base::Bind(MozjsStaticPropertiesInterface::CreateProxy),
-      base::Bind(MozjsStaticPropertiesInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      StringifierAnonymousOperationInterface::StringifierAnonymousOperationInterfaceWrappableType(),
-      base::Bind(MozjsStringifierAnonymousOperationInterface::CreateProxy),
-      base::Bind(MozjsStringifierAnonymousOperationInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      StringifierAttributeInterface::StringifierAttributeInterfaceWrappableType(),
-      base::Bind(MozjsStringifierAttributeInterface::CreateProxy),
-      base::Bind(MozjsStringifierAttributeInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      StringifierOperationInterface::StringifierOperationInterfaceWrappableType(),
-      base::Bind(MozjsStringifierOperationInterface::CreateProxy),
-      base::Bind(MozjsStringifierOperationInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      TargetInterface::TargetInterfaceWrappableType(),
-      base::Bind(MozjsTargetInterface::CreateProxy),
-      base::Bind(MozjsTargetInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      UnionTypesInterface::UnionTypesInterfaceWrappableType(),
-      base::Bind(MozjsUnionTypesInterface::CreateProxy),
-      base::Bind(MozjsUnionTypesInterface::PrototypeClass));
-  wrapper_factory->RegisterWrappableType(
-      Window::WindowWrappableType(),
-      base::Bind(DummyFunctor),
-      base::Bind(MozjsWindow::PrototypeClass));
-
-}
-
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_window.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_window.h
deleted file mode 100644
index e0b39f6..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/mozjs_window.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/mozjs/templates/interface.h.template
-
-#ifndef MozjsWindow_h
-#define MozjsWindow_h
-
-#include "base/hash_tables.h"
-#include "base/lazy_instance.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/wrappable.h"
-#include "cobalt/bindings/testing/mozjs_global_interface_parent.h"
-#include "cobalt/bindings/testing/window.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class MozjsWindow {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-};
-
-}  // namespace testing
-}  // namespace bindings
-}  // namespace cobalt
-
-#endif  // MozjsWindow_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/test_dictionary.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/test_dictionary.h
deleted file mode 100644
index 4ec2228..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/test_dictionary.h
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/templates/dictionary.h.template
-
-#ifndef TestDictionary_h
-#define TestDictionary_h
-
-#include <string>
-
-#include "base/optional.h"
-#include "cobalt/script/script_value.h"
-#include "cobalt/script/sequence.h"
-#include "cobalt/script/value_handle.h"
-#include "cobalt/bindings/testing/arbitrary_interface.h"
-
-using cobalt::bindings::testing::ArbitraryInterface;
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-class TestDictionary {
- public:
-  TestDictionary() {
-    has_boolean_member_ = false;
-    boolean_member_ = bool();
-    has_short_clamp_member_ = false;
-    short_clamp_member_ = int16_t();
-    has_long_member_ = false;
-    long_member_ = int32_t();
-    has_double_member_ = false;
-    double_member_ = double();
-    has_string_member_ = false;
-    string_member_ = std::string();
-    has_interface_member_ = false;
-    interface_member_ = scoped_refptr<ArbitraryInterface>();
-    member_with_default_ = 5;
-    has_non_default_member_ = false;
-    non_default_member_ = int32_t();
-    has_any_member_ = false;
-  }
-
-  TestDictionary(const TestDictionary& other) {
-    has_boolean_member_ = other.has_boolean_member_;
-    boolean_member_ = other.boolean_member_;
-    has_short_clamp_member_ = other.has_short_clamp_member_;
-    short_clamp_member_ = other.short_clamp_member_;
-    has_long_member_ = other.has_long_member_;
-    long_member_ = other.long_member_;
-    has_double_member_ = other.has_double_member_;
-    double_member_ = other.double_member_;
-    has_string_member_ = other.has_string_member_;
-    string_member_ = other.string_member_;
-    has_interface_member_ = other.has_interface_member_;
-    interface_member_ = other.interface_member_;
-    member_with_default_ = other.member_with_default_;
-    has_non_default_member_ = other.has_non_default_member_;
-    non_default_member_ = other.non_default_member_;
-    if (other.any_member_with_default_) {
-      any_member_with_default_.reset(
-          new script::ScriptValue<::cobalt::script::ValueHandle>::StrongReference(
-              other.any_member_with_default_->referenced_value()));
-    }
-    has_any_member_ = other.has_any_member_;
-    if (other.any_member_) {
-      any_member_.reset(
-          new script::ScriptValue<::cobalt::script::ValueHandle>::StrongReference(
-              other.any_member_->referenced_value()));
-    }
-  }
-
-  TestDictionary& operator=(const TestDictionary& other) {
-    has_boolean_member_ = other.has_boolean_member_;
-    boolean_member_ = other.boolean_member_;
-    has_short_clamp_member_ = other.has_short_clamp_member_;
-    short_clamp_member_ = other.short_clamp_member_;
-    has_long_member_ = other.has_long_member_;
-    long_member_ = other.long_member_;
-    has_double_member_ = other.has_double_member_;
-    double_member_ = other.double_member_;
-    has_string_member_ = other.has_string_member_;
-    string_member_ = other.string_member_;
-    has_interface_member_ = other.has_interface_member_;
-    interface_member_ = other.interface_member_;
-    member_with_default_ = other.member_with_default_;
-    has_non_default_member_ = other.has_non_default_member_;
-    non_default_member_ = other.non_default_member_;
-    if (other.any_member_with_default_) {
-      any_member_with_default_.reset(
-          new script::ScriptValue<::cobalt::script::ValueHandle>::StrongReference(
-                other.any_member_with_default_->referenced_value()));
-    } else {
-      any_member_with_default_.reset();
-    }
-    has_any_member_ = other.has_any_member_;
-    if (other.any_member_) {
-      any_member_.reset(
-          new script::ScriptValue<::cobalt::script::ValueHandle>::StrongReference(
-                other.any_member_->referenced_value()));
-    } else {
-      any_member_.reset();
-    }
-    return *this;
-  }
-
-  bool has_boolean_member() const {
-    return has_boolean_member_;
-  }
-  bool boolean_member() const {
-    DCHECK(has_boolean_member_);
-    return boolean_member_;
-  }
-  void set_boolean_member(bool value) {
-    has_boolean_member_ = true;
-    boolean_member_ = value;
-  }
-
-  bool has_short_clamp_member() const {
-    return has_short_clamp_member_;
-  }
-  int16_t short_clamp_member() const {
-    DCHECK(has_short_clamp_member_);
-    return short_clamp_member_;
-  }
-  void set_short_clamp_member(int16_t value) {
-    has_short_clamp_member_ = true;
-    short_clamp_member_ = value;
-  }
-
-  bool has_long_member() const {
-    return has_long_member_;
-  }
-  int32_t long_member() const {
-    DCHECK(has_long_member_);
-    return long_member_;
-  }
-  void set_long_member(int32_t value) {
-    has_long_member_ = true;
-    long_member_ = value;
-  }
-
-  bool has_double_member() const {
-    return has_double_member_;
-  }
-  double double_member() const {
-    DCHECK(has_double_member_);
-    return double_member_;
-  }
-  void set_double_member(double value) {
-    has_double_member_ = true;
-    double_member_ = value;
-  }
-
-  bool has_string_member() const {
-    return has_string_member_;
-  }
-  const std::string& string_member() const {
-    DCHECK(has_string_member_);
-    return string_member_;
-  }
-  void set_string_member(const std::string& value) {
-    has_string_member_ = true;
-    string_member_ = value;
-  }
-
-  bool has_interface_member() const {
-    return has_interface_member_;
-  }
-  const scoped_refptr<ArbitraryInterface>& interface_member() const {
-    DCHECK(has_interface_member_);
-    return interface_member_;
-  }
-  void set_interface_member(const scoped_refptr<ArbitraryInterface>& value) {
-    has_interface_member_ = true;
-    interface_member_ = value;
-  }
-
-  bool has_member_with_default() const {
-    return true;
-  }
-  int32_t member_with_default() const {
-    return member_with_default_;
-  }
-  void set_member_with_default(int32_t value) {
-    member_with_default_ = value;
-  }
-
-  bool has_non_default_member() const {
-    return has_non_default_member_;
-  }
-  int32_t non_default_member() const {
-    DCHECK(has_non_default_member_);
-    return non_default_member_;
-  }
-  void set_non_default_member(int32_t value) {
-    has_non_default_member_ = true;
-    non_default_member_ = value;
-  }
-
-  bool has_any_member_with_default() const {
-    return true;
-  }
-  const ::cobalt::script::ScriptValue<::cobalt::script::ValueHandle>* any_member_with_default() const {
-    if (!any_member_with_default_) {
-      return NULL;
-    }
-    return &(any_member_with_default_->referenced_value());
-  }
-  void set_any_member_with_default(const ::cobalt::script::ScriptValue<::cobalt::script::ValueHandle>* value) {
-    if (value) {
-      any_member_with_default_.reset(
-          new script::ScriptValue<::cobalt::script::ValueHandle>::StrongReference(*value));
-    } else {
-      any_member_with_default_.reset();
-    }
-  }
-
-  bool has_any_member() const {
-    return has_any_member_;
-  }
-  const ::cobalt::script::ScriptValue<::cobalt::script::ValueHandle>* any_member() const {
-    DCHECK(has_any_member_);
-    if (!any_member_) {
-      return NULL;
-    }
-    return &(any_member_->referenced_value());
-  }
-  void set_any_member(const ::cobalt::script::ScriptValue<::cobalt::script::ValueHandle>* value) {
-    has_any_member_ = true;
-    if (value) {
-      any_member_.reset(
-          new script::ScriptValue<::cobalt::script::ValueHandle>::StrongReference(*value));
-    } else {
-      any_member_.reset();
-    }
-  }
-
- private:
-  bool has_boolean_member_;
-  bool boolean_member_;
-  bool has_short_clamp_member_;
-  int16_t short_clamp_member_;
-  bool has_long_member_;
-  int32_t long_member_;
-  bool has_double_member_;
-  double double_member_;
-  bool has_string_member_;
-  std::string string_member_;
-  bool has_interface_member_;
-  scoped_refptr<ArbitraryInterface> interface_member_;
-  int32_t member_with_default_;
-  bool has_non_default_member_;
-  int32_t non_default_member_;
-  scoped_ptr<script::ScriptValue<::cobalt::script::ValueHandle>::StrongReference> any_member_with_default_;
-  bool has_any_member_;
-  scoped_ptr<script::ScriptValue<::cobalt::script::ValueHandle>::StrongReference> any_member_;
-};
-
-// This ostream override is necessary for MOCK_METHODs commonly used
-// in idl test code
-inline std::ostream& operator<<(
-    std::ostream& stream, const cobalt::bindings::testing::TestDictionary& in) {
-  UNREFERENCED_PARAMETER(in);
-  stream << "[TestDictionary]";
-  return stream;
-}
-
-}  // namespace cobalt
-}  // namespace bindings
-}  // namespace testing
-
-#endif  // TestDictionary_h
diff --git a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/test_enum.h b/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/test_enum.h
deleted file mode 100644
index 5e4bb69..0000000
--- a/src/cobalt/bindings/generated/mozjs/testing/cobalt/bindings/testing/test_enum.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
-// Auto-generated from template: bindings/templates/enumeration.h.template
-
-#ifndef TestEnum_h
-#define TestEnum_h
-
-namespace cobalt {
-namespace bindings {
-namespace testing {
-
-enum TestEnum {
-  kTestEnumAlpha,
-  kTestEnumBeta,
-  kTestEnumGamma,
-  kTestEnumEnumWithDashes,
-  kTestEnumEnumWithSpaces,
-  kTestEnumTerribleEnum,
-  kTestEnumThisIsATerribleEnum,
-};
-
-}  // namespace cobalt
-}  // namespace bindings
-}  // namespace testing
-
-#endif  // TestEnum_h
diff --git a/src/cobalt/bindings/mozjs/__init__.py b/src/cobalt/bindings/mozjs/__init__.py
deleted file mode 100644
index ef65bee..0000000
--- a/src/cobalt/bindings/mozjs/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-# Required for Python to search this directory for module files
diff --git a/src/cobalt/bindings/mozjs/bootstrap_path.py b/src/cobalt/bindings/mozjs/bootstrap_path.py
deleted file mode 100644
index 6882bed..0000000
--- a/src/cobalt/bindings/mozjs/bootstrap_path.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-"""Utility to prepend the top-level source directory to sys.path.
-
-Since this may be used outside of gclient or git environment (such as part of a
-tarball), the path to the root must be hardcoded.
-"""
-
-import os
-import sys
-
-
-def _GetSrcRoot():
-  """Finds the first directory named 'src' that this module is in."""
-  current_path = os.path.normpath(__file__)
-  while os.path.basename(current_path) != 'src':
-    next_path = os.path.dirname(current_path)
-    if next_path == current_path:
-      raise RuntimeError('Could not find src directory.')
-    current_path = next_path
-  return os.path.abspath(current_path)
-
-
-sys.path.insert(0, _GetSrcRoot())
-
-# Add blink's python tools to the path.
-
-sys.path.append(
-    os.path.normpath(
-        os.path.join(_GetSrcRoot(), 'third_party', 'blink', 'Tools',
-                     'Scripts')))
-
-sys.path.append(
-    os.path.normpath(
-        os.path.join(_GetSrcRoot(), 'third_party', 'blink', 'Source',
-                     'bindings', 'scripts')))
diff --git a/src/cobalt/bindings/mozjs/code_generator_mozjs.py b/src/cobalt/bindings/mozjs/code_generator_mozjs.py
deleted file mode 100644
index cd5d48d..0000000
--- a/src/cobalt/bindings/mozjs/code_generator_mozjs.py
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Mozjs-specific implementation of CodeGeneratorCobalt.
-
-Defines CodeGeneratorMozjs and ExpressionGeneratorMozjs classes.
-"""
-
-import os
-
-from cobalt.bindings.code_generator_cobalt import CodeGeneratorCobalt
-from cobalt.bindings.expression_generator import ExpressionGenerator
-
-
-class ExpressionGeneratorMozjs(ExpressionGenerator):
-  """Implementation of ExpressionGenerator for SpiderMonkey."""
-
-  def is_undefined(self, arg):
-    return '%s.isUndefined()' % arg
-
-  def is_undefined_or_null(self, arg):
-    return '%s.isNullOrUndefined()' % arg
-
-  def inherits_interface(self, interface_name, arg):
-    return ('%s.isObject() ?'
-            ' wrapper_factory->DoesObjectImplementInterface(\n'
-            '              object, base::GetTypeId<%s>()) :\n'
-            '              false') % (arg, interface_name)
-
-  def is_number(self, arg):
-    return '%s.isNumber()' % arg
-
-
-class CodeGeneratorMozjs(CodeGeneratorCobalt):
-  """Code generator class for SpiderMonkey bindings."""
-
-  _expression_generator = ExpressionGeneratorMozjs()
-
-  def __init__(self, *args, **kwargs):
-    module_path, _ = os.path.split(os.path.realpath(__file__))
-    templates_dir = os.path.normpath(os.path.join(module_path, 'templates'))
-    super(CodeGeneratorMozjs, self).__init__(templates_dir, *args, **kwargs)
-
-  @property
-  def generated_file_prefix(self):
-    return 'mozjs'
-
-  @property
-  def expression_generator(self):
-    return CodeGeneratorMozjs._expression_generator
diff --git a/src/cobalt/bindings/mozjs/generate_conversion_header_mozjs.py b/src/cobalt/bindings/mozjs/generate_conversion_header_mozjs.py
deleted file mode 100644
index b43e30c..0000000
--- a/src/cobalt/bindings/mozjs/generate_conversion_header_mozjs.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2017 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Generate a conversion header for SpiderMonkey."""
-
-import sys
-
-import bootstrap_path  # pylint: disable=g-bad-import-order,unused-import
-
-from cobalt.bindings.generate_conversion_header import generate_header
-from cobalt.bindings.mozjs.code_generator_mozjs import CodeGeneratorMozjs
-
-if __name__ == '__main__':
-  sys.exit(generate_header(CodeGeneratorMozjs))
diff --git a/src/cobalt/bindings/mozjs/idl_compiler_mozjs.py b/src/cobalt/bindings/mozjs/idl_compiler_mozjs.py
deleted file mode 100644
index 4fefcae..0000000
--- a/src/cobalt/bindings/mozjs/idl_compiler_mozjs.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Compile an .idl file to Cobalt mozjs bindings (.h and .cpp files).
-
-Calls into idl_compiler_cobalt.shared_main specifying the SpiderMonkey
-CodeGenerator class.
-"""
-
-import sys
-
-import bootstrap_path  # pylint: disable=unused-import
-
-from cobalt.bindings.idl_compiler_cobalt import generate_bindings
-from cobalt.bindings.mozjs.code_generator_mozjs import CodeGeneratorMozjs
-
-if __name__ == '__main__':
-  sys.exit(generate_bindings(CodeGeneratorMozjs))
diff --git a/src/cobalt/bindings/mozjs/templates/callback-interface.cc.template b/src/cobalt/bindings/mozjs/templates/callback-interface.cc.template
deleted file mode 100644
index aee4a88..0000000
--- a/src/cobalt/bindings/mozjs/templates/callback-interface.cc.template
+++ /dev/null
@@ -1,129 +0,0 @@
-{#
- # Copyright 2016 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- #     http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #}
-{% extends "callback-interface-base.cc.template" %}
-
-{% block includes %}
-{{ super() }}
-#include "{{generated_conversion_include}}"
-
-#include "cobalt/script/logging_exception_state.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_interface.h"
-#include "cobalt/script/mozjs/util/exception_helpers.h"
-#include "cobalt/script/mozjs/util/stack_trace_helpers.h"
-#include "third_party/mozjs/js/jsd/jsd.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jscntxt.h"
-{% endblock includes %}
-
-{% block using_directives %}
-{{ super() }}
-using cobalt::script::LoggingExceptionState;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::GetCallableForCallbackInterface;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::util::GetExceptionString;
-{% endblock using_directives %}
-
-{% block implementation %}
-{% for component in components %}
-namespace {{component}} {
-{% endfor %}
-
-{{binding_class}}::{{binding_class}}(
-    JSContext* context,
-    JS::HandleObject implementing_object)
-    : context_(context),
-      implementing_object_(context, implementing_object) { }
-
-{{binding_class}}::{{binding_class}}(
-    JSContext* context,
-    JS::HandleValue implementing_object_value)
-    : context_(context),
-      implementing_object_(context, implementing_object_value) { }
-
-{% for operation in operations %}
-{% for overload in operation.overloads %}
-{{overload.type}} {{binding_class}}::{{overload.name}}(
-    const scoped_refptr<script::Wrappable>& callback_this,
-  {% for arg in overload.arguments %}
-    {{arg.arg_type}} {{arg.name}},
-  {% endfor %}
-    bool* had_exception) const {
-  bool success = false;
-{% if overload.type != 'void' %}
-  {{overload.type}} cobalt_return_value;
-{% endif %}
-  JSAutoRequest auto_request(context_);
-  AutoSaveExceptionState auto_save_exception_state(context_);
-  ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-
-  // This could be set to NULL if it was garbage collected.
-  JS::RootedObject implementing_object(context_, implementing_object_.GetObject());
-  DLOG_IF(WARNING, !implementing_object) << "Implementing object is NULL.";
-  if (implementing_object) {
-    JSAutoCompartment auto_compartment(context_, implementing_object);
-
-    // Get callable object.
-    JS::RootedValue callable(context_);
-    if (GetCallableForCallbackInterface(context_, implementing_object,
-                                        "{{overload.idl_name}}", &callable)) {
-      // Convert the callback_this to a JSValue.
-      JS::RootedValue this_value(context_);
-      ToJSValue(context_, callback_this, &this_value);
-
-      // Convert arguments.
-      const int kNumArguments = {{overload.arguments|length}};
-      JS::Value args[kNumArguments];
-      js::SetValueRangeToNull(args, kNumArguments);
-      js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-{% for arg in overload.arguments %}
-      ToJSValue(context_, {{arg.name}},
-                auto_array_rooter.handleAt({{loop.index0}}));
-{% endfor %}
-
-      // Call the function.
-      JS::RootedValue return_value(context_);
-      JS::RootedFunction function(
-          context_, JS_ValueToFunction(context_, callable));
-      DCHECK(function);
-      success = JS::Call(context_, this_value, function, kNumArguments, args,
-                         return_value.address());
-      DLOG_IF(WARNING, !success) << "Exception in callback: "
-                                 << GetExceptionString(context_);
-{% if overload.type != 'void' %}
-      if (success) {
-        LoggingExceptionState exception_state;
-        FromJSValue(context_, return_value, 0, &exception_state,
-                    &cobalt_return_value);
-        success = !exception_state.is_exception_set();
-      }
-{% endif %}
-    }
-  }
-
-  *had_exception = !success;
-{% if overload.type != 'void' %}
-  return cobalt_return_value;
-{% endif %}
-}
-{% endfor %}
-{% endfor %}
-
-{% for component in components|reverse %}
-}  // namespace {{component}}
-{% endfor %}
-{% endblock implementation %}
diff --git a/src/cobalt/bindings/mozjs/templates/callback-interface.h.template b/src/cobalt/bindings/mozjs/templates/callback-interface.h.template
deleted file mode 100644
index a9a3707..0000000
--- a/src/cobalt/bindings/mozjs/templates/callback-interface.h.template
+++ /dev/null
@@ -1,69 +0,0 @@
-{#
- # Copyright 2016 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- #     http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #}
-{% extends "callback-interface-base.h.template" %}
-
-{% block includes %}
-{{ super() }}
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-{% endblock includes %}
-
-{% block implementation %}
-{% for component in components %}
-namespace {{component}} {
-{% endfor %}
-
-class {{binding_class}} : public {{impl_class}} {
- public:
-  typedef {{impl_class}} BaseType;
-
-  {{binding_class}}(
-      JSContext* context, JS::HandleObject implementing_object);
-  {{binding_class}}(
-      JSContext* context, JS::HandleValue implementing_object_value);
-{% for operation in operations %}
-{% for overload in operation.overloads %}
-  {{overload.type}} {{overload.name}}(
-      const scoped_refptr<script::Wrappable>& callback_this,
-    {% for arg in overload.arguments %}
-      {{arg.arg_type}} {{arg.name}},
-    {% endfor %}
-      bool* had_exception) const OVERRIDE;
-{% endfor %}
-{% endfor %}
-  JSObject* handle() const { return implementing_object_.GetObject(); }
-  const JS::Value& value() const { return implementing_object_.GetValue(); }
-  bool WasCollected() const { return implementing_object_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  script::mozjs::WeakHeapObject implementing_object_;
-};
-
-{% for component in components|reverse %}
-}  // namespace {{component}}
-{% endfor %}
-namespace cobalt {
-namespace script {
-// Explicit instantiation of CallbackInterfaceTraits struct so we can infer
-// the type of the generated class from the type of the callback interface.
-template<>
-struct CallbackInterfaceTraits<{{fully_qualified_impl_class}}> {
-  typedef {{fully_qualified_binding_class}} MozjsCallbackInterfaceClass;
-};
-}  // namespace script
-}  // namespace cobalt
-{% endblock implementation %}
diff --git a/src/cobalt/bindings/mozjs/templates/dictionary-conversion.cc.template b/src/cobalt/bindings/mozjs/templates/dictionary-conversion.cc.template
deleted file mode 100644
index d61a0ef..0000000
--- a/src/cobalt/bindings/mozjs/templates/dictionary-conversion.cc.template
+++ /dev/null
@@ -1,156 +0,0 @@
-{#
- # Copyright 2017 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- #     http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #}
-/*
- * Copyright {{today.year}} Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by {{code_generator}}. DO NOT MODIFY!
-// Auto-generated from template: {{template_path}}
-
-{% if conditional %}
-#if defined({{conditional}})
-
-{% endif %}
-{% block includes %}
-#include "{{generated_conversion_include}}"
-
-#include "{{header_file}}"
-
-#include "cobalt/script/exception_state.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-{% for include in includes %}
-#include "{{include}}"
-{% endfor %}
-{% endblock includes %}
-
-using {{components|join('::')}}::{{class_name}};
-{% for used_class in forward_declarations %}
-{% if used_class.conditional %}
-#if defined({{used_class.conditional}})
-{% endif %}
-using {{used_class.fully_qualified_name}};
-{% if used_class.conditional %}
-#endif  // defined({{used_class.conditional}})
-{% endif %}
-{% endfor %}
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-void ToJSValue(
-    JSContext* context,
-    const {{class_name}}& in_dictionary,
-    JS::MutableHandleValue out_value) {
-  // Create a new object that will hold the dictionary values.
-  JS::RootedObject dictionary_object(
-      context, JS_NewObject(context, NULL, NULL, NULL));
-  const int kPropertyAttributes = JSPROP_ENUMERATE;
-{% for member in members %}
-  if (in_dictionary.has_{{member.name}}()) {
-    JS::RootedValue member_value(context);
-    ToJSValue(context, in_dictionary.{{member.name}}(), &member_value);
-    if (!JS_DefineProperty(context, dictionary_object,
-                           "{{member.idl_name}}",
-                           member_value, NULL, NULL, kPropertyAttributes)) {
-      // Some internal error occurred.
-      NOTREACHED();
-      return;
-    }
-  }
-{% endfor %}
-  out_value.set(OBJECT_TO_JSVAL(dictionary_object));
-}
-
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 {{class_name}}* out_dictionary) {
-  DCHECK_EQ(0, conversion_flags) << "Unexpected conversion flags.";
-  {% if parent %}
-  FromJSValue(context, value, conversion_flags, exception_state,
-      static_cast<{{parent}}*>(out_dictionary));
-  {% endif %}
-  // https://heycam.github.io/webidl/#es-dictionary
-
-  if (value.isUndefined() || value.isNull()) {
-    // The default constructor will assign appropriate values to dictionary
-    // members with default values and leave the others unset.
-    *out_dictionary = {{class_name}}();
-    return;
-  }
-  if (!value.isObject()) {
-    // 1. If Type(V) is not Undefined, Null or Object, then throw a TypeError.
-    exception_state->SetSimpleException(kNotObjectType);
-    return;
-  }
-  JS::RootedObject dictionary_object(context, JSVAL_TO_OBJECT(value));
-{% for member in members %}
-  JS::RootedValue {{member.name}}(context);
-  if (!JS_GetProperty(context, dictionary_object,
-                      "{{member.idl_name}}",
-                      {{member.name}}.address())) {
-    exception_state->SetSimpleException(kSimpleError);
-    return;
-  }
-  if (!{{member.name}}.isUndefined()) {
-  {% if not member.is_script_value %}
-    {{member.type}} converted_value;
-    FromJSValue(context,
-                {{member.name}},
-                {{member.conversion_flags}},
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_{{member.name}}(converted_value);
-  {% else %}
-    TypeTraits<::cobalt::script::ValueHandle >::ConversionType converted_value;
-    FromJSValue(context,
-                {{member.name}},
-                {{member.conversion_flags}},
-                exception_state,
-                &converted_value);
-    if (context->isExceptionPending()) {
-      return;
-    }
-    out_dictionary->set_{{member.name}}(&converted_value);
-  {% endif %}
-  }
-{% endfor %}
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-{% if conditional %}
-#endif  // defined({{conditional}})
-{% endif %}
diff --git a/src/cobalt/bindings/mozjs/templates/enumeration-conversion.cc.template b/src/cobalt/bindings/mozjs/templates/enumeration-conversion.cc.template
deleted file mode 100644
index 3e4df11..0000000
--- a/src/cobalt/bindings/mozjs/templates/enumeration-conversion.cc.template
+++ /dev/null
@@ -1,90 +0,0 @@
-{#
- # Copyright 2017 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- #     http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #}
-/*
- * Copyright {{today.year}} Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by {{code_generator}}. DO NOT MODIFY!
-// Auto-generated from template: {{template_path}}
-
-#include "{{enum_include}}"
-
-#include "{{generated_conversion_include}}"
-#include "cobalt/script/exception_state.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-using {{fully_qualified_name}};
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-void ToJSValue(
-    JSContext* context,
-    {{enumeration_name}} in_enum,
-    JS::MutableHandleValue out_value) {
-  switch (in_enum) {
-{% for value, idl_value in value_pairs %}
-    case {{namespace}}::{{value}}:
-      ToJSValue(context, std::string("{{idl_value}}"), out_value);
-      return;
-{% endfor %}
-    default:
-      NOTREACHED();
-      out_value.set(JS::UndefinedValue());
-  }
-}
-
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 {{enumeration_name}}* out_enum) {
-  DCHECK_EQ(0, conversion_flags) << "Unexpected conversion flags.";
-  // JSValue -> IDL enum algorithm described here:
-  // http://heycam.github.io/webidl/#es-enumeration
-  // 1. Let S be the result of calling ToString(V).
-  JS::RootedString rooted_string(context, JS_ValueToString(context, value));
-
-  JSBool match = JS_FALSE;
-// 3. Return the enumeration value of type E that is equal to S.
-{% for value, idl_value in value_pairs %}
-  {{-" else " if not loop.first}}if (JS_StringEqualsAscii(
-      context, rooted_string, "{{idl_value}}", &match)
-      && match) {
-    *out_enum = {{namespace}}::{{value}};
-  }{% endfor %} else {
-    // 2. If S is not one of E's enumeration values, then throw a TypeError.
-    exception_state->SetSimpleException(cobalt::script::kConvertToEnumFailed);
-    return;
-  }
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/bindings/mozjs/templates/generated-types.h.template b/src/cobalt/bindings/mozjs/templates/generated-types.h.template
deleted file mode 100644
index d34d409..0000000
--- a/src/cobalt/bindings/mozjs/templates/generated-types.h.template
+++ /dev/null
@@ -1,92 +0,0 @@
-{#
- # Copyright 2017 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- #     http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #}
-/*
- * Copyright {{today.year}} Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// clang-format off
-
-// This file has been auto-generated by {{code_generator}}. DO NOT MODIFY!
-// Auto-generated from template: {{template_path}}
-
-#ifndef GENERATED_TYPE_CONVERSION_H_
-#define GENERATED_TYPE_CONVERSION_H_
-
-#include "cobalt/script/exception_state.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-// #includes for generated types.
-{% for path in includes %}
-#include "{{path}}"
-{% endfor %}
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-{% for dictionary in dictionaries %}
-// {{dictionary.fully_qualified_name}} -> JSValue
-void ToJSValue(
-    JSContext* context,
-    const {{dictionary.fully_qualified_name}}& in_value,
-    JS::MutableHandleValue out_value);
-
-// JSValue -> {{dictionary.fully_qualified_name}}
-void FromJSValue(
-    JSContext* context,
-    JS::HandleValue value,
-    int conversion_flags,
-    ExceptionState* exception_state,
-    {{dictionary.fully_qualified_name}}* out_value);
-
-{% endfor %}
-{% for enum in enumerations %}
-// {{enum.fully_qualified_name}} -> JSValue
-void ToJSValue(
-    JSContext* context,
-    {{enum.fully_qualified_name}} in_value,
-    JS::MutableHandleValue out_value);
-
-// JSValue -> {{enum.fully_qualified_name}}
-void FromJSValue(
-    JSContext* context,
-    JS::HandleValue value,
-    int conversion_flags,
-    ExceptionState* exception_state,
-    {{enum.fully_qualified_name}}* out_value);
-
-{% endfor %}
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-// #include this here so the conversion functions for generated types are
-// visible refer to template types, such as sequence<T>.
-#include "cobalt/script/mozjs/conversion_helpers.h"
-
-#endif  // GENERATED_TYPE_CONVERSION_H_
diff --git a/src/cobalt/bindings/mozjs/templates/interface.cc.template b/src/cobalt/bindings/mozjs/templates/interface.cc.template
deleted file mode 100644
index 323e665..0000000
--- a/src/cobalt/bindings/mozjs/templates/interface.cc.template
+++ /dev/null
@@ -1,937 +0,0 @@
-{#
- # Copyright 2016 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- #     http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #}
-{% from 'macros.cc.template' import add_extra_arguments %}
-{% from 'macros.cc.template' import call_cobalt_function %}
-{% from 'macros.cc.template' import check_if_object_implements_interface with context %}
-{% from 'macros.cc.template' import constructor_implementation with context %}
-{% from 'macros.cc.template' import function_implementation with context %}
-{% from 'macros.cc.template' import get_impl_class_instance %}
-{% from 'macros.cc.template' import nonstatic_function_prologue %}
-{% from 'macros.cc.template' import overload_resolution_implementation with context %}
-{% from 'macros.cc.template' import set_attribute_implementation with context %}
-{% from 'macros.cc.template' import static_function_prologue %}
-{% extends "interface-base.cc.template" %}
-{% block includes %}
-{{ super() }}
-#include "{{generated_conversion_include}}"
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/exception_state.h"
-#include "cobalt/script/mozjs/callback_function_conversion.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/property_enumerator.h"
-#include "cobalt/script/sequence.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-{% if is_exception_interface %}
-#include "third_party/mozjs/js/src/jsexn.h"
-{% endif %}
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-{% endblock includes %}
-{% block using_directives %}
-{{ super() }}
-using cobalt::script::CallbackFunction;
-using cobalt::script::CallbackInterfaceTraits;
-using cobalt::script::ExceptionState;
-using cobalt::script::Wrappable;
-using cobalt::script::mozjs::FromJSValue;
-using cobalt::script::mozjs::InterfaceData;
-using cobalt::script::mozjs::MozjsCallbackFunction;
-using cobalt::script::mozjs::MozjsExceptionState;
-using cobalt::script::mozjs::MozjsGlobalEnvironment;
-using cobalt::script::mozjs::MozjsPropertyEnumerator;
-using cobalt::script::mozjs::MozjsUserObjectHolder;
-using cobalt::script::mozjs::ProxyHandler;
-using cobalt::script::mozjs::ToJSValue;
-using cobalt::script::mozjs::TypeTraits;
-using cobalt::script::mozjs::WrapperFactory;
-using cobalt::script::mozjs::WrapperPrivate;
-using cobalt::script::mozjs::kConversionFlagClamped;
-using cobalt::script::mozjs::kConversionFlagNullable;
-using cobalt::script::mozjs::kConversionFlagRestricted;
-using cobalt::script::mozjs::kConversionFlagTreatNullAsEmptyString;
-using cobalt::script::mozjs::kConversionFlagTreatUndefinedAsEmptyString;
-using cobalt::script::mozjs::kNoConversionFlags;
-{% endblock using_directives %}
-{% block top_level_unnamed_namespace %}
-{% if is_global_interface %}
-JSObject* DummyFunctor(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  NOTREACHED();
-  return NULL;
-}
-{% endif %}
-{% endblock top_level_unnamed_namespace %}
-
-{% block implementation %}
-namespace {
-
-{% if named_property_getter %}
-bool IsSupportedNamedProperty(JSContext* context, JS::HandleObject object,
-                              const std::string& property_name) {
-{{ get_impl_class_instance(impl_class) }}
-  return impl->CanQueryNamedProperty(property_name);
-}
-
-void EnumerateSupportedNames(JSContext* context, JS::HandleObject object,
-                             JS::AutoIdVector* properties) {
-{{ get_impl_class_instance(impl_class) }}
-  MozjsPropertyEnumerator enumerator(context, properties);
-  impl->EnumerateNamedProperties(&enumerator);
-}
-
-JSBool GetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-{{ nonstatic_function_prologue(impl_class) }}
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-{{ call_cobalt_function(impl_class, named_property_getter.type,
-                        named_property_getter.name, ["property_name"],
-                        named_property_getter.raises_exception,
-                        named_property_getter.call_with) }}
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-{% endif %}
-{% if named_property_setter %}
-JSBool SetNamedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-{{ nonstatic_function_prologue(impl_class) }}
-  std::string property_name;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-              &property_name);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<{{named_property_setter.type}} >::ConversionType value;
-  FromJSValue(context, vp, {{named_property_setter.conversion_flags}},
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-{{ call_cobalt_function(impl_class, "void",
-                        named_property_setter.name, ["property_name", "value"],
-                        named_property_setter.raises_exception,
-                        named_property_setter.call_with) }}
-  return !exception_state.is_exception_set();
-}
-
-{% endif %}
-{% if named_property_deleter %}
-bool DeleteNamedProperty(JSContext* context, JS::HandleObject object,
-                         const std::string& property_name) {
-{{ nonstatic_function_prologue(impl_class) }}
-{{ call_cobalt_function(impl_class, "void",
-                        named_property_deleter.name, ["property_name"],
-                        named_property_deleter.raises_exception,
-                        named_property_deleter.call_with) }}
-  return !exception_state.is_exception_set();
-}
-
-{% endif %}
-{% if indexed_property_getter %}
-bool IsSupportedIndexProperty(JSContext* context, JS::HandleObject object,
-                              uint32_t index) {
-{{ get_impl_class_instance(impl_class) }}
-  return index < impl->length();
-}
-
-void EnumerateSupportedIndexes(JSContext* context, JS::HandleObject object,
-                               JS::AutoIdVector* properties) {
-{{ get_impl_class_instance(impl_class) }}
-  const uint32_t kNumIndexedProperties = impl->length();
-  for (uint32_t i = 0; i < kNumIndexedProperties; ++i) {
-    properties->append(INT_TO_JSID(i));
-  }
-}
-
-JSBool GetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-{{ nonstatic_function_prologue(impl_class) }}
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if (exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-{{ call_cobalt_function(impl_class, indexed_property_getter.type,
-                        indexed_property_getter.name, ["index"],
-                        indexed_property_getter.raises_exception,
-                        indexed_property_getter.call_with) }}
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-{% endif %}
-{% if indexed_property_setter %}
-JSBool SetIndexedProperty(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-  JS::RootedValue id_value(context);
-  if (!JS_IdToValue(context, id, id_value.address())) {
-    NOTREACHED();
-    return false;
-  }
-{{ nonstatic_function_prologue(impl_class) }}
-  uint32_t index;
-  FromJSValue(context, id_value, kNoConversionFlags, &exception_state, &index);
-  if(exception_state.is_exception_set()) {
-    // The ID should be an integer or a string, so we shouldn't have any
-    // exceptions converting to string.
-    NOTREACHED();
-    return false;
-  }
-  TypeTraits<{{indexed_property_setter.type}} >::ConversionType value;
-  FromJSValue(context, vp, {{indexed_property_setter.conversion_flags}},
-              &exception_state, &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-{{ call_cobalt_function(impl_class, "void",
-                        indexed_property_setter.name, ["index", "value"],
-                        indexed_property_setter.raises_exception,
-                        indexed_property_setter.call_with) }}
-  return !exception_state.is_exception_set();
-}
-
-{% endif %}
-{% if indexed_property_deleter %}
-bool DeleteIndexedProperty(
-    JSContext* context, JS::HandleObject object, uint32_t index) {
-{{ nonstatic_function_prologue(impl_class) }}
-{{ call_cobalt_function(impl_class, "void",
-                        indexed_property_deleter.name, ["index"],
-                        indexed_property_deleter.raises_exception,
-                        indexed_property_deleter.call_with) }}
-  return !exception_state.is_exception_set();
-}
-
-{% endif %}
-class {{binding_class}}Handler : public ProxyHandler {
- public:
-  {{binding_class}}Handler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks
-{{binding_class}}Handler::named_property_hooks = {
-  {{ "IsSupportedNamedProperty" if named_property_getter else "NULL" }},
-  {{ "EnumerateSupportedNames" if named_property_getter else "NULL" }},
-  {{ "GetNamedProperty" if named_property_getter else "NULL" }},
-  {{ "SetNamedProperty" if named_property_setter else "NULL" }},
-  {{ "DeleteNamedProperty" if named_property_deleter else "NULL" }},
-};
-ProxyHandler::IndexedPropertyHooks
-{{binding_class}}Handler::indexed_property_hooks = {
-  {{ "IsSupportedIndexProperty" if indexed_property_getter else "NULL" }},
-  {{ "EnumerateSupportedIndexes" if indexed_property_getter else "NULL" }},
-  {{ "GetIndexedProperty" if indexed_property_getter else "NULL" }},
-  {{ "SetIndexedProperty" if indexed_property_setter else "NULL" }},
-  {{ "DeleteIndexedProperty" if indexed_property_deleter else "NULL" }},
-};
-
-static base::LazyInstance<{{binding_class}}Handler>
-    proxy_handler;
-
-{% if constructor %}
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp);
-{% endif %}
-{% for constant in constants %}
-JSBool get_{{constant.idl_name}}(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-{% if constant.can_use_compile_assert %}
-  COMPILE_ASSERT({{impl_class}}::{{constant.name}} == {{constant.value}},
-                 ValueFor{{impl_class}}_{{constant.name}}DoesNotMatchIDL);
-{% else %}
-  DCHECK_EQ({{constant.value}}, {{impl_class}}::{{constant.name}}) <<
-      "The value for {{impl_class}}::{{constant.name}} does not match "
-      "the value in the interface definition.";
-{% endif %}
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-  ToJSValue(context, {{constant.value}}, &result_value);
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-{% endfor %}
-JSBool HasInstance(JSContext *context, JS::HandleObject type,
-                   JS::MutableHandleValue vp, JSBool *success) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, type));
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(
-      context, {{binding_class}}::GetPrototype(context, global_object));
-
-  // |IsDelegate| walks the prototype chain of an object returning true if
-  // .prototype is found.
-  bool is_delegate;
-  if (!IsDelegate(context, prototype, vp, &is_delegate)) {
-    *success = false;
-    return false;
-  }
-
-  *success = is_delegate;
-  return true;
-}
-
-InterfaceData* CreateCachedInterfaceData() {
-  InterfaceData* interface_data = new InterfaceData();
-  memset(&interface_data->instance_class_definition, 0,
-         sizeof(interface_data->instance_class_definition));
-  memset(&interface_data->prototype_class_definition, 0,
-         sizeof(interface_data->prototype_class_definition));
-  memset(&interface_data->interface_object_class_definition, 0,
-         sizeof(interface_data->interface_object_class_definition));
-
-  JSClass* instance_class = &interface_data->instance_class_definition;
-  const int kGlobalFlags = {{
-      "JSCLASS_GLOBAL_FLAGS" if is_global_interface else 0 }};
-  instance_class->name = "{{interface_name}}";
-  instance_class->flags = kGlobalFlags | JSCLASS_HAS_PRIVATE;
-  instance_class->addProperty = JS_PropertyStub;
-  instance_class->delProperty = JS_DeletePropertyStub;
-  instance_class->getProperty = JS_PropertyStub;
-  instance_class->setProperty = JS_StrictPropertyStub;
-  instance_class->enumerate = JS_EnumerateStub;
-  instance_class->resolve = JS_ResolveStub;
-  instance_class->convert = JS_ConvertStub;
-  // Function to be called before on object of this class is garbage collected.
-  instance_class->finalize = &WrapperPrivate::Finalizer;
-  // Called to trace objects that can be referenced from this object.
-  instance_class->trace = &WrapperPrivate::Trace;
-
-  JSClass* prototype_class = &interface_data->prototype_class_definition;
-  prototype_class->name = "{{interface_name}}Prototype";
-  prototype_class->flags = 0;
-  prototype_class->addProperty = JS_PropertyStub;
-  prototype_class->delProperty = JS_DeletePropertyStub;
-  prototype_class->getProperty = JS_PropertyStub;
-  prototype_class->setProperty = JS_StrictPropertyStub;
-  prototype_class->enumerate = JS_EnumerateStub;
-  prototype_class->resolve = JS_ResolveStub;
-  prototype_class->convert = JS_ConvertStub;
-
-  JSClass* interface_object_class =
-      &interface_data->interface_object_class_definition;
-  interface_object_class->name = "{{interface_name}}Constructor";
-  interface_object_class->flags = 0;
-  interface_object_class->addProperty = JS_PropertyStub;
-  interface_object_class->delProperty = JS_DeletePropertyStub;
-  interface_object_class->getProperty = JS_PropertyStub;
-  interface_object_class->setProperty = JS_StrictPropertyStub;
-  interface_object_class->enumerate = JS_EnumerateStub;
-  interface_object_class->resolve = JS_ResolveStub;
-  interface_object_class->convert = JS_ConvertStub;
-  interface_object_class->hasInstance = &HasInstance;
-{% if constructor %}
-  interface_object_class->construct = Constructor;
-{% endif %}
-  return interface_data;
-}
-
-{% for attribute in attributes + static_attributes %}
-{% if attribute.conditional %}
-#if defined({{attribute.conditional}})
-{% endif %}
-{% if attribute.is_constructor_attribute %}
-JSBool get_{{attribute.idl_name}}(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-  JS::RootedObject global_object(
-      context, JS_GetGlobalForObject(context, object));
-  DCHECK(global_object);
-
-  JS::RootedObject interface_object(context,
-      Mozjs{{attribute.interface_name}}::GetInterfaceObject(
-          context, global_object));
-  vp.set(JS::ObjectValue(*interface_object));
-  return true;
-}
-
-{% else %}
-{% if attribute.is_static %}
-JSBool staticget_{{attribute.idl_name}}(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-{{ static_function_prologue() -}}
-{% else %}
-JSBool get_{{attribute.idl_name}}(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JS::MutableHandleValue vp) {
-{{ check_if_object_implements_interface() }}
-{{ nonstatic_function_prologue(impl_class) }}
-{% endif %}
-{{ call_cobalt_function(impl_class, attribute.type,
-                        attribute.getter_function_name, [],
-                        attribute.raises_exception, attribute.call_with,
-                        attribute.is_static) }}
-  if (!exception_state.is_exception_set()) {
-    vp.set(result_value);
-  }
-  return !exception_state.is_exception_set();
-}
-
-{% if attribute.has_setter %}
-{% if attribute.is_static %}
-JSBool staticset_{{attribute.idl_name}}(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-{{ static_function_prologue() }}
-{% else %}
-JSBool set_{{attribute.idl_name}}(
-    JSContext* context, JS::HandleObject object, JS::HandleId id,
-    JSBool strict, JS::MutableHandleValue vp) {
-{{ check_if_object_implements_interface() }}
-{{ nonstatic_function_prologue(impl_class)}}
-{% endif %} {#- attribute.is_static #}
-{{ set_attribute_implementation(attribute, impl_class) -}}
-}
-
-{% endif %} {#- attribute.has_setter #}
-{% endif %}
-{% if attribute.conditional %}
-#endif  // {{attribute.conditional}}
-{% endif %} {#- attribute.is_constructor_attribute #}
-{% endfor %}
-{%- for operation in operations + static_operations %}
-{% if operation.conditional %}
-#if defined({{operation.conditional}})
-{% endif %}
-{% set boundFunctionPrefix = "staticfcn_" if operation.is_static else "fcn_" %}
-{% for overload in operation.overloads if operation.overloads|length > 1 %}
-JSBool {{boundFunctionPrefix}}{{operation.idl_name}}{{overload.overload_index}}(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-{{ function_implementation(overload) -}}
-}
-
-{% endfor %}
-JSBool {{boundFunctionPrefix}}{{operation.idl_name}}(
-    JSContext* context, uint32_t argc, JS::Value *vp) {
-{% if operation.overloads|length == 1 %}
-{{ function_implementation(operation.overloads[0]) -}}
-{% else %}
-{{ overload_resolution_implementation(
-      operation, boundFunctionPrefix + operation.idl_name) }}
-{% endif %}
-}
-
-{% if operation.conditional %}
-#endif  // {{operation.conditional}}
-{% endif %}
-{% endfor %}
-
-{% if stringifier %}
-JSBool Stringifier(JSContext* context, unsigned argc, JS::Value *vp) {
-  MozjsExceptionState exception_state(context);
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-
-  {{ check_if_object_implements_interface() }}
-
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-
-  // |WrapperPrivate::GetFromObject| can fail if |object| is not a |Wrapper|
-  // object.
-  if (!wrapper_private) {
-    exception_state.SetSimpleException(cobalt::script::kStringifierProblem);
-    return false;
-  }
-
-  {{impl_class}}* impl =
-      wrapper_private->wrappable<{{impl_class}}>().get();
-  if (!impl) {
-    exception_state.SetSimpleException(cobalt::script::kStringifierProblem);
-    NOTREACHED();
-    return false;
-  }
-  std::string stringified = impl->{{stringifier.name}}();
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  JS::RootedString rooted_string(context,
-      JS_NewStringCopyN(context, stringified.c_str(), stringified.length()));
-  args.rval().set(JS::StringValue(rooted_string));
-  return true;
-}
-
-{% endif %}
-const JSPropertySpec prototype_properties[] = {
-{% for constant in constants %}
-  {
-      "{{constant.idl_name}}", 0,
-      JSPROP_PERMANENT | JSPROP_READONLY | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_{{constant.idl_name}}),
-      JSOP_NULLWRAPPER,
-  },
-{% endfor %}
-{% for attribute in attributes if not attribute.is_constructor_attribute %}
-{% if attribute.conditional %}
-#if defined({{attribute.conditional}})
-{% endif %}
-{% if attribute.has_setter %}
-  {  // Read/Write property
-      "{{attribute.idl_name}}", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_{{attribute.idl_name}}),
-      JSOP_WRAPPER(&set_{{attribute.idl_name}}),
-  },
-{% else %}
-  {  // Readonly attribute
-      "{{attribute.idl_name}}", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&get_{{attribute.idl_name}}),
-      JSOP_NULLWRAPPER,
-  },
-{% endif %}
-{% if attribute.conditional %}
-#endif  // {{attribute.conditional}}
-{% endif %}
-{% endfor %}
-  JS_PS_END
-};
-
-const JSFunctionSpec prototype_functions[] = {
-{% if stringifier %}
-  {
-      "toString",
-      JSOP_WRAPPER(&Stringifier),
-      0,
-      JSPROP_PERMANENT,
-      NULL,
-  },
-{% endif %}
-{% for operation in operations %}
-{% if operation.conditional %}
-#if defined({{operation.conditional}})
-{% endif %}
-  {
-      "{{ operation.idl_name }}",
-      JSOP_WRAPPER(&fcn_{{operation.idl_name}}),
-      {{ operation.length }},
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-{% if operation.conditional %}
-#endif  // {{operation.conditional}}
-{% endif %}
-{% endfor %}
-  JS_FS_END
-};
-
-const JSPropertySpec interface_object_properties[] = {
-{% for constant in constants %}
-  {
-      "{{constant.idl_name}}", 0,
-      JSPROP_PERMANENT | JSPROP_READONLY | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&get_{{constant.idl_name}}),
-      JSOP_NULLWRAPPER,
-  },
-{% endfor %}
-{% for attribute in static_attributes %}
-{% if attribute.conditional %}
-#if defined({{attribute.conditional}})
-{% endif %}
-{% if attribute.has_setter %}
-  {  // Static read/write attribute.
-      "{{attribute.idl_name}}", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE,
-      JSOP_WRAPPER(&staticget_{{attribute.idl_name}}),
-      JSOP_WRAPPER(&staticset_{{attribute.idl_name}}),
-  },
-{% else %}
-  {  // Static readonly attribute.
-      "{{attribute.idl_name}}", 0,
-      JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_READONLY,
-      JSOP_WRAPPER(&staticget_{{attribute.idl_name}}),
-      JSOP_NULLWRAPPER,
-  },
-{% endif %}
-{% if attribute.conditional %}
-#endif  // {{attribute.conditional}}
-{% endif %}
-{% endfor %}
-  JS_PS_END
-};
-
-const JSFunctionSpec interface_object_functions[] = {
-{% for operation in static_operations %}
-{% if operation.conditional %}
-#if defined({{operation.conditional}})
-{% endif %}
-  {
-      "{{ operation.idl_name }}",
-      JSOP_WRAPPER(&staticfcn_{{operation.idl_name}}),
-      {{ operation.length }},
-      JSPROP_ENUMERATE,
-      NULL,
-  },
-{% if operation.conditional %}
-#endif  // {{operation.conditional}}
-{% endif %}
-{% endfor %}
-  JS_FS_END
-};
-
-const JSPropertySpec own_properties[] = {
-{% for attribute in attributes if attribute.is_constructor_attribute %}
-{% if attribute.conditional %}
-#if defined({{attribute.conditional}})
-{% endif %}
-  {  // Constructor attribute
-      "{{attribute.idl_name}}", 0,
-      JSPROP_SHARED,
-      JSOP_WRAPPER(&get_{{attribute.idl_name}}),
-      JSOP_NULLWRAPPER,
-  },
-{% if attribute.conditional %}
-#endif  // {{attribute.conditional}}
-{% endif %}
-{% endfor %}
-  JS_PS_END
-};
-
-void InitializePrototypeAndInterfaceObject(
-    InterfaceData* interface_data, JSContext* context,
-    JS::HandleObject global_object) {
-  DCHECK(!interface_data->prototype);
-  DCHECK(!interface_data->interface_object);
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  {% if parent_interface %}
-  JS::RootedObject parent_prototype(
-      context, {{parent_interface}}::GetPrototype(context, global_object));
-  {% elif is_exception_interface %}
-  // Get Error prototype.
-  JS::RootedObject parent_prototype(context);
-  bool success_check = js_GetClassPrototype(
-      context, GetExceptionProtoKey(JSEXN_ERR), &parent_prototype);
-  DCHECK(success_check);
-  {% else %}
-  JS::RootedObject parent_prototype(
-      context, JS_GetObjectPrototype(context, global_object));
-  {% endif %}
-  DCHECK(parent_prototype);
-
-  // Create the Prototype object.
-  interface_data->prototype = JS_NewObjectWithGivenProto(
-      context, &interface_data->prototype_class_definition, parent_prototype,
-      NULL);
-  bool success = JS_DefineProperties(
-      context, interface_data->prototype, prototype_properties);
-  DCHECK(success);
-  success = JS_DefineFunctions(
-      context, interface_data->prototype, prototype_functions);
-  DCHECK(success);
-
-{% if has_interface_object %}
-  JS::RootedObject function_prototype(
-      context, JS_GetFunctionPrototype(context, global_object));
-  DCHECK(function_prototype);
-  // Create the Interface object.
-  interface_data->interface_object = JS_NewObjectWithGivenProto(
-      context, &interface_data->interface_object_class_definition,
-      function_prototype, NULL);
-
-  // Add the InterfaceObject.name property.
-  JS::RootedObject rooted_interface_object(
-      context, interface_data->interface_object);
-  JS::RootedValue name_value(context);
-  const char name[] =
-      "{{ named_constructor if named_constructor else interface.name }}";
-  name_value.setString(JS_NewStringCopyZ(context, name));
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "name", name_value,
-                        JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-{% if constructor %}
-
-  // Add the InterfaceObject.length property. It is set to the length of the
-  // shortest argument list of all overload constructors.
-  JS::RootedValue length_value(context);
-  length_value.setInt32({{constructor.length}});
-  success =
-      JS_DefineProperty(context, rooted_interface_object, "length",
-                        length_value, JS_PropertyStub, JS_StrictPropertyStub,
-                        JSPROP_READONLY);
-  DCHECK(success);
-{% endif %}
-
-  // Define interface object properties (including constants).
-  success = JS_DefineProperties(context, rooted_interface_object,
-                                interface_object_properties);
-  DCHECK(success);
-  // Define interface object functions (static).
-  success = JS_DefineFunctions(context, rooted_interface_object,
-                               interface_object_functions);
-  DCHECK(success);
-
-
-  // Set the Prototype.constructor and Constructor.prototype properties.
-  DCHECK(interface_data->interface_object);
-  DCHECK(interface_data->prototype);
-  JS::RootedObject rooted_prototype(context, interface_data->prototype);
-  success = JS_LinkConstructorAndPrototype(
-      context,
-      rooted_interface_object,
-      rooted_prototype);
-  DCHECK(success);
-{% endif %}
-}
-
-InterfaceData* GetInterfaceData(JSContext* context) {
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  // Use the address of the properties definition for this interface as a
-  // unique key for looking up the InterfaceData for this interface.
-  intptr_t key = reinterpret_cast<intptr_t>(&own_properties);
-  InterfaceData* interface_data = global_environment->GetInterfaceData(key);
-  if (!interface_data) {
-    interface_data = CreateCachedInterfaceData();
-    DCHECK(interface_data);
-    global_environment->CacheInterfaceData(key, interface_data);
-    DCHECK_EQ(interface_data, global_environment->GetInterfaceData(key));
-  }
-  return interface_data;
-}
-
-}  // namespace
-
-{% if is_global_interface %}
-JSObject* {{binding_class}}::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject global_object(
-      context, JS_NewGlobalObject(context,
-                                  &interface_data->instance_class_definition,
-                                  NULL));
-  DCHECK(global_object);
-
-  // Initialize standard JS constructors prototypes and top-level functions such
-  // as Object, isNan, etc.
-  JSAutoCompartment auto_compartment(context, global_object);
-  bool success = JS_InitStandardClasses(context, global_object);
-
-  JS::RootedObject prototype(
-      context, {{binding_class}}::GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS_SetPrototype(context, global_object, prototype);
-
-  // Add own properties.
-  success = JS_DefineProperties(context, global_object, own_properties);
-  DCHECK(success);
-
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, global_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-
-  // Set the global object proxy pointer, so we can access the standard classes
-  // such as the base Object prototype when looking up our prototype.
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  global_environment->SetGlobalObjectProxyAndWrapper(proxy, wrappable);
-  return proxy;
-}
-{% else %}
-// static
-JSObject* {{binding_class}}::CreateProxy(
-    JSContext* context, const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  DCHECK(prototype);
-  JS::RootedObject new_object(context, JS_NewObjectWithGivenProto(
-      context, &interface_data->instance_class_definition, prototype, NULL));
-  DCHECK(new_object);
-  JS::RootedObject proxy(context,
-      ProxyHandler::NewProxy(context, new_object, prototype, NULL,
-                             proxy_handler.Pointer()));
-  WrapperPrivate::AddPrivateData(context, proxy, wrappable);
-  return proxy;
-}
-
-{% endif %}
-//static
-const JSClass* {{binding_class}}::PrototypeClass(
-      JSContext* context) {
-  DCHECK(MozjsGlobalEnvironment::GetFromContext(context));
-  JS::RootedObject global_object(
-      context,
-      MozjsGlobalEnvironment::GetFromContext(context)->global_object());
-  DCHECK(global_object);
-
-  JS::RootedObject prototype(context, GetPrototype(context, global_object));
-  JSClass* proto_class = JS_GetClass(*prototype.address());
-  return proto_class;
-}
-
-// static
-JSObject* {{binding_class}}::GetPrototype(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->prototype) {
-    // Create new prototype that has all the props and methods
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->prototype);
-  return interface_data->prototype;
-}
-
-{% if has_interface_object %}
-// static
-JSObject* {{binding_class}}::GetInterfaceObject(
-    JSContext* context, JS::HandleObject global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  InterfaceData* interface_data = GetInterfaceData(context);
-  if (!interface_data->interface_object) {
-    InitializePrototypeAndInterfaceObject(
-        interface_data, context, global_object);
-  }
-  DCHECK(interface_data->interface_object);
-  return interface_data->interface_object;
-}
-
-{% endif %} {#- has_interface_object #}
-
-namespace {
-{% if constructor %}
-{% for overload in constructor.overloads if constructor.overloads|length > 1 %}
-JSBool Constructor{{overload.overload_index}}(
-    JSContext* context, unsigned int argc, JS::Value* vp) {
-{{ constructor_implementation(overload) -}}
-}
-
-{% endfor %}
-JSBool Constructor(JSContext* context, unsigned int argc, JS::Value* vp) {
-{% if constructor.overloads|length == 1 %}
-{{ constructor_implementation(constructor.overloads[0]) -}}
-{% else %}
-{{ overload_resolution_implementation(constructor, "Constructor")}}
-{% endif %}
-}
-{% endif %}
-}  // namespace
-
-{% endblock implementation %}
-{% block create_global_object_impl %}
-  MozjsGlobalEnvironment* mozjs_global_environment =
-      base::polymorphic_downcast<MozjsGlobalEnvironment*>(this);
-  JSContext* context = mozjs_global_environment->context();
-
-  JSAutoRequest auto_request(context);
-  {{binding_class}}::CreateProxy(
-      context, global_interface);
-  mozjs_global_environment->SetEnvironmentSettings(environment_settings);
-  mozjs_global_environment->EvaluateAutomatics();
-
-  WrapperFactory* wrapper_factory =
-      mozjs_global_environment->wrapper_factory();
-{% for interface in all_interfaces %}
-{% if interface.conditional %}
-#if defined({{interface.conditional}})
-{% endif %}
-  {# Pass in a dummy CreateProxy for global interface #}
-  {% if interface.name == impl_class %}
-  wrapper_factory->RegisterWrappableType(
-      {{interface.name}}::{{interface.name}}WrappableType(),
-      base::Bind(DummyFunctor),
-      base::Bind(Mozjs{{interface.name}}::PrototypeClass));
-  {% else %}
-  wrapper_factory->RegisterWrappableType(
-      {{interface.name}}::{{interface.name}}WrappableType(),
-      base::Bind(Mozjs{{interface.name}}::CreateProxy),
-      base::Bind(Mozjs{{interface.name}}::PrototypeClass));
-  {% endif %}
-{% if interface.conditional %}
-#endif  // defined({{interface.conditional}})
-{% endif %}
-{% endfor %}
-
-{% endblock create_global_object_impl %}
diff --git a/src/cobalt/bindings/mozjs/templates/interface.h.template b/src/cobalt/bindings/mozjs/templates/interface.h.template
deleted file mode 100644
index fbef85c..0000000
--- a/src/cobalt/bindings/mozjs/templates/interface.h.template
+++ /dev/null
@@ -1,34 +0,0 @@
-{#
- # Copyright 2016 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- #     http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #}
-{% extends "interface-base.h.template" %}
-{% block includes %}
-{{ super() }}
-#include "third_party/mozjs/js/src/jsapi.h"
-{% endblock includes %}
-{% block implementation %}
-class {{binding_class}} {
- public:
-  static JSObject* CreateProxy(JSContext* context,
-      const scoped_refptr<script::Wrappable>& wrappable);
-  static const JSClass* PrototypeClass(JSContext* context);
-  static JSObject* GetPrototype(JSContext* context,
-                                JS::HandleObject global_object);
-{% if has_interface_object %}
-  static JSObject* GetInterfaceObject(JSContext* context,
-                                      JS::HandleObject global_object);
-{% endif %}
-};
-{% endblock implementation %}
diff --git a/src/cobalt/bindings/mozjs/templates/macros.cc.template b/src/cobalt/bindings/mozjs/templates/macros.cc.template
deleted file mode 100644
index 8cb1fee..0000000
--- a/src/cobalt/bindings/mozjs/templates/macros.cc.template
+++ /dev/null
@@ -1,421 +0,0 @@
-{#
- # Copyright 2016 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- #     http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #}
-
-{#
- # Checks if object implements interface.
- #}
-{% macro check_if_object_implements_interface() %}
-  const JSClass* proto_class =
-      {{binding_class}}::PrototypeClass(context);
-  if (proto_class == JS_GetClass(object)) {
-    // Simply returns true if the object is this class's prototype object.
-    // There is no need to return any value due to the object is not a platform
-    // object. The execution reaches here when Object.getOwnPropertyDescriptor
-    // gets called on native object prototypes.
-    return true;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->DoesObjectImplementInterface(
-        object, base::GetTypeId<{{impl_class}}>())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(script::kDoesNotImplementInterface);
-    return false;
-  }
-{%- endmacro %}
-
-{#
- # Function body for operation bindings.
- # Parameters:
- #     operation: The operation context object
- #}
-{% macro function_implementation(operation) %}
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-{% if operation.is_static %}
-{{ static_function_prologue() }}
-{% else %}
-  // Compute the 'this' value.
-  JS::RootedValue this_value(context, JS_ComputeThis(context, vp));
-  // 'this' should be an object.
-  JS::RootedObject object(context);
-  if (JS_TypeOfValue(context, this_value) != JSTYPE_OBJECT) {
-    return false;
-  }
-  if (!JS_ValueToObject(context, this_value, object.address())) {
-    NOTREACHED();
-    return false;
-  }
-{{ check_if_object_implements_interface() }}
-{{ nonstatic_function_prologue(impl_class) }}
-{% endif %}
-{% call(arguments_list) extract_arguments(operation) %}
-{{ call_cobalt_function(impl_class, operation.type, operation.name,
-                         arguments_list, operation.raises_exception,
-                         operation.call_with, operation.is_static) }}
-{% if operation.type != 'void' %}
-  if (!exception_state.is_exception_set()) {
-    args.rval().set(result_value);
-  }
-{% endif %}
-  return !exception_state.is_exception_set();
-{%- endcall %}
-{%- endmacro %}
-
-{#
- # Function body for setting an attribute value.
- # Parameters:
- #     attribute: The attribute context object.
- #     impl_class: Cobalt class name of the Cobalt implementation of the
- #         interface on which the attribute is a member.
- #     cobalt_impl_prefix: Variable name prefix of a pointer to a Cobalt
- #         implementation of the interface on which the attribute is a member.
- #}
-{% macro set_attribute_implementation(attribute, impl_class,
-                                      cobalt_impl_prefix="") %}
-{% if attribute.put_forwards %}
-  { // Begin scope of {{attribute.type}} forwarded_{{cobalt_impl_prefix}}impl.
-    {{attribute.type}} forwarded_{{cobalt_impl_prefix}}impl =
-{% if not attribute.is_static %}
-       {{cobalt_impl_prefix}}impl->{{attribute.getter_function_name}}();
-{% else %}
-       {{impl_class}}::{{attribute.getter_function_name}}();
-{% endif %}
-    if (!forwarded_{{cobalt_impl_prefix}}impl) {
-      NOTREACHED();
-      return false;
-    }
-    if (!exception_state.is_exception_set()) {
-{{ set_attribute_implementation(attribute.put_forwards, attribute.type,
-     "forwarded_" + cobalt_impl_prefix) -}}
-    }
-    return !exception_state.is_exception_set();
-  } // End scope of {{attribute.type}} forwarded_{{cobalt_impl_prefix}}impl.
-{% else %}
-  TypeTraits<{{attribute.type}} >::ConversionType value;
-  FromJSValue(context, vp, {{attribute.conversion_flags}}, &exception_state,
-              &value);
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-{{ call_cobalt_function(impl_class, "void",
-                        attribute.setter_function_name,
-                        ["value"], attribute.raises_exception,
-                        attribute.call_with, attribute.is_static,
-                        cobalt_impl_prefix) }}
-  return !exception_state.is_exception_set();
-{% endif %} {#- attribute.put_forwards #}
-{%- endmacro %}
-
-{#
- # Extract and marshal arguments that will be passed to a function-like call.
- # Parameters:
- #     operation: An IdlOperation object
- # Passed to caller:
- #     A string that can be used as the parameters for a function call. It will
- #     be either empty, or a comma-separated list of variable names.
- #}
-{% macro extract_arguments(operation) %}
-{% set non_optional_arguments = operation.non_optional_arguments %}
-{% set optional_arguments = operation.optional_arguments %}
-{% set num_default_arguments = operation.num_default_arguments %}
-{% set variadic_argument = operation.variadic_argument %}
-{% set has_non_default_optional_arguments =
-          operation.has_non_default_optional_arguments %}
-
-{%- if non_optional_arguments|length > 0 %}
-  const size_t kMinArguments = {{non_optional_arguments|length}};
-  if (args.length() < kMinArguments) {
-    exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-    return false;
-  }
-{% endif -%}
-
-{# Declare variables for all arguments #}
-{% for argument in non_optional_arguments %}
-{% if loop.first %}
-  // Non-optional arguments
-{% endif %}
-  TypeTraits<{{argument.type}} >::ConversionType {{argument.name}};
-{% endfor %}
-{% for argument in optional_arguments if argument.default_value %}
-{% if loop.first %}
-  // Optional arguments with default values
-{% endif %}
-  TypeTraits<{{argument.type}} >::ConversionType {{argument.name}} =
-      {{argument.default_value}};
-{% endfor %}
-{% for argument in optional_arguments if not argument.default_value %}
-{% if loop.first %}
-  // Optional arguments
-{% endif %}
-  TypeTraits<{{argument.type}} >::ConversionType {{argument.name}};
-{% endfor %}
-{% if variadic_argument %}
-  // Variadic argument
-  TypeTraits<{{variadic_argument.type}} >::ConversionType {{
-      variadic_argument.name}};
-{% endif -%}
-
-{% for argument in non_optional_arguments %}
-
-  DCHECK_LT({{loop.index0}}, args.length());
-  JS::RootedValue non_optional_value{{loop.index0}}(
-      context, args[{{loop.index0}}]);
-  FromJSValue(context,
-              non_optional_value{{loop.index0}},
-              {{argument.conversion_flags}},
-              &exception_state, &{{argument.name}});
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-{% endfor -%}
-{% for argument in optional_arguments %}
-{% if loop.first %}
-  size_t num_set_arguments = {{
-      non_optional_arguments|length + num_default_arguments}};
-{% endif %}
-  if (args.length() > {{loop.index0 + non_optional_arguments|length}}) {
-    JS::RootedValue optional_value{{loop.index0}}(
-        context, args[{{loop.index0 + non_optional_arguments|length}}]);
-    FromJSValue(context,
-                optional_value{{loop.index0}},
-                {{argument.conversion_flags}},
-                &exception_state,
-                &{{argument.name}});
-    if (exception_state.is_exception_set()) {
-      return false;
-    }
-{% if not argument.default_value %}
-    ++num_set_arguments;
-{% endif %}
-  }
-{% endfor %}
-{% if variadic_argument %}
-
-  // Get variadic arguments.
-{% if optional_arguments|length %}
-  const size_t kLastOptionalArgIndex = {{
-      non_optional_arguments|length + optional_arguments|length}};
-  if (num_set_arguments == kLastOptionalArgIndex) {
-    // If the last optional argument has been set, we will call the overload
-    // that takes the variadic argument, possibly with an empty vector in the
-    // case that there are no more arguments left.
-    ++num_set_arguments;
-  }
-{% endif %}
-  const size_t kFirstVariadicArgIndex = {{operation.arguments|length - 1}};
-  if (args.length() > kFirstVariadicArgIndex) {
-    {{variadic_argument.name}}.resize(args.length() - kFirstVariadicArgIndex);
-    for (int i = 0; i + kFirstVariadicArgIndex < args.length(); ++i) {
-      JS::RootedValue variadic_argument_value{{i}}(
-          context, args[i + kFirstVariadicArgIndex]);
-      FromJSValue(context,
-                  variadic_argument_value{{i}},
-                  {{variadic_argument.conversion_flags}},
-                  &exception_state,
-                  &{{variadic_argument.name}}[i]);
-      if (exception_state.is_exception_set()) {
-        return false;
-      }
-    }
-  }
-{% endif -%}
-
-{# Call the implementation function, based on the number of set arguments. #}
-{% if has_non_default_optional_arguments %}
-  switch (num_set_arguments) {
-{% for num_arguments in range(
-    non_optional_arguments|length + num_default_arguments,
-    operation.arguments|length + 1) %}
-{# If no variadic arguments have been set, we still call the function with
-   signature that has the variadic argument and pass an empty vector. There is
-   no such function signature that takes the optional parameter immediately
-   preceeding the variadic argument but does not take the variadic arguments. #}
-{% if loop.last or not operation.arguments[num_arguments].is_variadic %}
-{% set function_arguments =
-      operation.arguments[0:num_arguments]|map(attribute='name')|list %}
-    case {{num_arguments}}:
-      {
-        {{- caller(function_arguments)|indent(8, false) }}
-      }
-      break;
-{% endif %}
-{% endfor %}
-    default:
-      NOTREACHED();
-      return false;
-  }
-{% else %} {#- has_non_default_optional_arguments #}
-{% set function_arguments = operation.arguments|map(attribute='name')|list %}
-  {# whitespace control block #}
-  {{-caller(function_arguments)}}
-{% endif %}
-{% endmacro %}
-
-{#
- # Append extra arguments that should be passed to a cobalt function.
- # Specifically, this will prepend parameters specified on IDLs using the
- # [CallWith=] extended attribute.
- # Parameters:
- #     arguments_list: A list of C++ expressions that represent a sequence of
- #         arguments that will be passed to a function.
- #     context: An IDL object that may have the extended attribute that
- #         we are interested in.
- # Passed to caller:
- #     arguments_list, possibly with extra arguments prepended and appended.
- #}
-{% macro add_extra_arguments(arguments_list, raises_exception, call_with) %}
-{% if call_with %}
-  MozjsGlobalEnvironment* callwith_global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-{% do arguments_list.insert(
-    0, 'callwith_global_environment->Get%s()'|format(call_with)) %}
-{% endif %}
-{% do arguments_list.append('&exception_state') if raises_exception %}
-{%- endmacro %}
-
-{% macro call_nonvoid_function(return_type, function_name, arguments,
-                               impl_class, is_static) %}
-  if (!exception_state.is_exception_set()) {
-{% if not is_static %}
-    ToJSValue(context,
-              impl->{{function_name}}({{arguments|join(", ")}}),
-              &result_value);
-{% else %}
-    ToJSValue(context,
-              {{impl_class}}::{{function_name}}({{arguments|join(', ')}}),
-              &result_value);
-{% endif %}
-  }
-{%- endmacro %}
-
-{% macro call_void_function(function_name, arguments, impl_class, is_static,
-                            cobalt_impl_prefix) %}
-{% if not is_static %}
-  {{cobalt_impl_prefix}}impl->{{function_name}}({{arguments|join(", ")}});
-{% else %}
-  {{impl_class}}::{{function_name}}({{arguments|join(', ')}});
-{% endif %}
-  result_value.set(JS::UndefinedHandleValue);
-{%- endmacro %}
-
-{% macro get_impl_class_instance(impl_class) %}
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromObject(context, object);
-  {{impl_class}}* impl =
-      wrapper_private->wrappable<{{impl_class}}>().get();
-{%- endmacro %}
-
-{% macro static_function_prologue() %}
-  MozjsExceptionState exception_state(context);
-  JS::RootedValue result_value(context);
-{% endmacro %}
-
-{% macro nonstatic_function_prologue(impl_class) %}
-{{ static_function_prologue() }}
-{{ get_impl_class_instance(impl_class) }}
-{%- endmacro %}
-
-{#
- # Call a function on an instance of a Cobalt platform object.
- #}
-{% macro call_cobalt_function(impl_class, cobalt_type, function_name, arguments,
-                              raises_exception, call_with, is_static,
-                              cobalt_impl_prefix) %}
-{{ add_extra_arguments(arguments, raises_exception, call_with) }}
-{% if cobalt_type == "void" %}
-{{ call_void_function(function_name, arguments, impl_class, is_static,
-                      cobalt_impl_prefix) -}}
-{% else %}
-{{ call_nonvoid_function(cobalt_type, function_name, arguments, impl_class,
-                         is_static) -}}
-{% endif %}
-{% endmacro %}
-
-{#
- # Function body for constructor bindings.
- # Parameters:
- #     constructor: The constructor context object
- #}
-{% macro constructor_implementation(constructor) %}
-  MozjsExceptionState exception_state(context);
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-{% call(arguments_list) extract_arguments(constructor) %}
-{{ add_extra_arguments(arguments_list, constructor.raises_exception,
-                       constructor.call_with) }}
-  scoped_refptr<{{impl_class}}> new_object =
-      new {{impl_class}}({{arguments_list|join(', ')}});
-{% if constructor.raises_exception %}
-  // In case that an exception is thrown from constructor.
-  if (exception_state.is_exception_set()) {
-    return false;
-  }
-{% endif %}
-  JS::RootedValue result_value(context);
-  ToJSValue(context, new_object, &result_value);
-  DCHECK(result_value.isObject());
-  JS::RootedObject result_object(context, JSVAL_TO_OBJECT(result_value));
-  args.rval().setObject(*result_object);
-  return true;
-{%- endcall %}
-{%- endmacro %}
-
-{#
- # Function body for overload resolution function.
- # Parameters:
- #     overload_context: The overload context object.
- #     bound_function_prefix: The prefix of the function to be called on
- #         resolution. The overload index will be appended to this.
- #}
-{% macro overload_resolution_implementation(
-      overload_context, bound_function_prefix) %}
-  JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
-  switch(argc) {
-{% for length, distinguishing_argument_index, resolution_tests in
-       overload_context.overload_resolution_by_length %}
-    case({{length}}): {
-      // Overload resolution algorithm details found here:
-      //     http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-{# In the case there is only one resolution condition, we don't need the arg. #}
-{% if resolution_tests|length > 1 %}
-      JS::RootedValue arg(context, args[{{distinguishing_argument_index}}]);
-      MozjsGlobalEnvironment* global_environment =
-          static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-      WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-      JS::RootedObject object(context);
-      if (arg.isObject()) {
-        object = JSVAL_TO_OBJECT(arg);
-      }
-{% endif %}
-{% for test, overload in resolution_tests %}
-      if ({{test("arg")}}) {
-        return {{bound_function_prefix}}{{overload.overload_index}}(
-                  context, argc, vp);
-      }
-{% endfor %}
-      break;
-    }
-{% endfor %}
-  }
-  // Invalid number of args
-  // http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
-  // 4. If S is empty, then throw a TypeError.
-  MozjsExceptionState exception_state(context);
-  exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
-  return false;
-{%- endmacro %}
diff --git a/src/cobalt/bindings/run_cobalt_bindings_tests.bat b/src/cobalt/bindings/run_cobalt_bindings_tests.bat
index 2df4a48..f1da90a 100644
--- a/src/cobalt/bindings/run_cobalt_bindings_tests.bat
+++ b/src/cobalt/bindings/run_cobalt_bindings_tests.bat
@@ -14,4 +14,4 @@
 @rem limitations under the License.
 @rem
 
-@python run_cobalt_bindings_tests.py mozjs %*
+@python run_cobalt_bindings_tests.py mozjs-45 %*
diff --git a/src/cobalt/bindings/run_cobalt_bindings_tests.py b/src/cobalt/bindings/run_cobalt_bindings_tests.py
index 853c026..ffb3911 100644
--- a/src/cobalt/bindings/run_cobalt_bindings_tests.py
+++ b/src/cobalt/bindings/run_cobalt_bindings_tests.py
@@ -29,7 +29,6 @@
 import bootstrap_path  # pylint: disable=unused-import
 
 from cobalt.bindings.idl_compiler_cobalt import IdlCompilerCobalt
-from cobalt.bindings.mozjs.code_generator_mozjs import CodeGeneratorMozjs
 from cobalt.bindings.mozjs45.code_generator_mozjs45 import CodeGeneratorMozjs45
 from webkitpy.bindings.bindings_tests import run_bindings_tests
 
@@ -41,9 +40,7 @@
   parser.add_argument('engine')
   args = parser.parse_args(argv[1:])
 
-  if args.engine.lower() == 'mozjs':
-    generator = CodeGeneratorMozjs
-  elif args.engine.lower() == 'mozjs45':
+  if args.engine.lower() == 'mozjs45':
     generator = CodeGeneratorMozjs45
   else:
     raise RuntimeError('Unsupported JavaScript engine: ' + args.engine)
diff --git a/src/cobalt/bindings/run_cobalt_bindings_tests.sh b/src/cobalt/bindings/run_cobalt_bindings_tests.sh
index 39619d1..e56fc43 100755
--- a/src/cobalt/bindings/run_cobalt_bindings_tests.sh
+++ b/src/cobalt/bindings/run_cobalt_bindings_tests.sh
@@ -19,5 +19,4 @@
 # Ensure we are in the bindings directory.
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
-python run_cobalt_bindings_tests.py mozjs "$@"
 python run_cobalt_bindings_tests.py mozjs45 "$@"
diff --git a/src/cobalt/browser/browser_bindings_gen.gyp b/src/cobalt/browser/browser_bindings_gen.gyp
index 41f4937..eea3ab5 100644
--- a/src/cobalt/browser/browser_bindings_gen.gyp
+++ b/src/cobalt/browser/browser_bindings_gen.gyp
@@ -261,6 +261,7 @@
 
         '../dom/buffer_source.idl',
         '../dom/document__web_animations_api.idl',
+        '../dom/document_cobalt.idl',
         '../dom/document_cssom.idl',
         '../dom/document_html5.idl',
         '../dom/element_css_inline_style.idl',
diff --git a/src/cobalt/browser/browser_module.cc b/src/cobalt/browser/browser_module.cc
index 870d7b5..31ab25d 100644
--- a/src/cobalt/browser/browser_module.cc
+++ b/src/cobalt/browser/browser_module.cc
@@ -368,11 +368,22 @@
     return;
   }
 
-  on_error_url_.clear();
   if (on_error_retry_timer_.IsRunning()) {
     on_error_retry_timer_.Stop();
   }
 
+  // Navigations aren't allowed if the app is suspended. If this is the case,
+  // simply set the pending navigate url, which will cause the navigation to
+  // occur when Cobalt resumes, and return.
+  if (application_state_ == base::kApplicationStateSuspended) {
+    pending_navigate_url_ = url.spec();
+    return;
+  }
+
+  // Now that we know the navigation is occurring, clear out
+  // |pending_navigate_url_|.
+  pending_navigate_url_.clear();
+
   // Destroy old WebModule first, so we don't get a memory high-watermark after
   // the second WebModule's constructor runs, but before scoped_ptr::reset() is
   // run.
@@ -404,7 +415,7 @@
         base::Bind(&BrowserModule::QueueOnSplashScreenRenderTreeProduced,
                    base::Unretained(this)),
         &network_module_, viewport_size, GetResourceProvider(),
-        kLayoutMaxRefreshFrequencyInHz, *fallback_splash_screen_url_, url,
+        kLayoutMaxRefreshFrequencyInHz, fallback_splash_screen_url_, url,
         splash_screen_cache_.get(),
         base::Bind(&BrowserModule::DestroySplashScreen, weak_this_)));
     lifecycle_observers_.AddObserver(splash_screen_.get());
@@ -790,7 +801,12 @@
   on_error_triggered_count_++;
 #endif
 
-  on_error_url_ = url.spec();
+  // Set |pending_navigate_url_| to the url where the error occurred. This will
+  // cause the OnError callback to Navigate() to this URL if it receives a
+  // positive response; otherwise, if Cobalt is currently preloaded or
+  // suspended, then this is the url that Cobalt will navigate to when it starts
+  // or resumes.
+  pending_navigate_url_ = url.spec();
 
   // Start the OnErrorRetry() timer if it isn't already running.
   // The minimum delay between calls to OnErrorRetry() exponentially grows as
@@ -817,7 +833,8 @@
 void BrowserModule::OnErrorRetry() {
   ++on_error_retry_count_;
   on_error_retry_time_ = base::TimeTicks::Now();
-  TryURLHandlers(GURL("h5vcc://network-failure?retry-url=" + on_error_url_));
+  TryURLHandlers(
+      GURL("h5vcc://network-failure?retry-url=" + pending_navigate_url_));
 }
 
 bool BrowserModule::FilterKeyEvent(base::Token type,
@@ -966,9 +983,11 @@
   DCHECK(application_state_ == base::kApplicationStatePreloading);
 
   SuspendInternal(true /*is_start*/);
-  StartOrResumeInternal(true /*is_start*/);
+  StartOrResumeInternalPreStateUpdate(true /*is_start*/);
 
   application_state_ = base::kApplicationStateStarted;
+
+  StartOrResumeInternalPostStateUpdate();
 }
 
 void BrowserModule::Pause() {
@@ -999,9 +1018,11 @@
   TRACE_EVENT0("cobalt::browser", "BrowserModule::Resume()");
   DCHECK(application_state_ == base::kApplicationStateSuspended);
 
-  StartOrResumeInternal(false /*is_start*/);
+  StartOrResumeInternalPreStateUpdate(false /*is_start*/);
 
   application_state_ = base::kApplicationStatePaused;
+
+  StartOrResumeInternalPostStateUpdate();
 }
 
 void BrowserModule::ReduceMemory() {
@@ -1224,9 +1245,10 @@
   }
 }
 
-void BrowserModule::StartOrResumeInternal(bool is_start) {
-  TRACE_EVENT1("cobalt::browser", "BrowserModule::StartOrResumeInternal",
-               "is_start", is_start ? "true" : "false");
+void BrowserModule::StartOrResumeInternalPreStateUpdate(bool is_start) {
+  TRACE_EVENT1("cobalt::browser",
+               "BrowserModule::StartOrResumeInternalPreStateUpdate", "is_start",
+               is_start ? "true" : "false");
   render_tree::ResourceProvider* resource_provider = NULL;
   if (!renderer_module_) {
     InitializeSystemWindow();
@@ -1256,11 +1278,15 @@
     FOR_EACH_OBSERVER(LifecycleObserver, lifecycle_observers_,
                       Resume(resource_provider));
   }
+}
 
-  // If no navigate has occurred since the last OnError call, then attempt to
-  // navigate to |on_error_url_| now.
-  if (!on_error_url_.empty()) {
-    Navigate(GURL(on_error_url_));
+void BrowserModule::StartOrResumeInternalPostStateUpdate() {
+  TRACE_EVENT0("cobalt::browser",
+               "BrowserModule::StartOrResumeInternalPostStateUpdate");
+  // If there's a navigation that's pending, then attempt to navigate to its
+  // specified URL now.
+  if (!pending_navigate_url_.empty()) {
+    Navigate(GURL(pending_navigate_url_));
   }
 }
 
diff --git a/src/cobalt/browser/browser_module.h b/src/cobalt/browser/browser_module.h
index 16961ec..7389e9c 100644
--- a/src/cobalt/browser/browser_module.h
+++ b/src/cobalt/browser/browser_module.h
@@ -104,7 +104,10 @@
 
   const std::string& GetUserAgent() { return network_module_.GetUserAgent(); }
 
-  // Recreates web module with the given URL.
+  // Recreates web module with the given URL. In the case where Cobalt is
+  // currently suspended, this defers the navigation and instead sets
+  // |pending_navigate_url_| to the specified url, which will trigger a
+  // navigation when Cobalt resumes.
   void Navigate(const GURL& url);
   // Reloads web module.
   void Reload();
@@ -295,8 +298,12 @@
   // Does all the steps for either a Suspend or the first half of a Start.
   void SuspendInternal(bool is_start);
 
-  // Does all the steps for either a Resume or the second half of a Start.
-  void StartOrResumeInternal(bool is_start);
+  // Does all the steps for either a Resume or the second half of a Start that
+  // happen prior to the app state update.
+  void StartOrResumeInternalPreStateUpdate(bool is_start);
+  // Does all the steps for either a Resume or the second half of a Start that
+  // happen after the app state update.
+  void StartOrResumeInternalPostStateUpdate();
 
   // Gets a viewport size to use for now. This may change depending on the
   // current application state. While preloading, this returns the requested
@@ -458,9 +465,13 @@
   int render_timeout_count_;
 #endif
 
-  // The URL associated with the last OnError() call. It is cleared on the next
-  // call to Navigate().
-  std::string on_error_url_;
+  // The URL that Cobalt will attempt to navigate to during an OnErrorRetry()
+  // and also when starting from a preloaded state or resuming from a suspended
+  // state. This url is set within OnError() and also when a navigation is
+  // deferred as a result of Cobalt being suspended; it is cleared when a
+  // navigation occurs.
+  std::string pending_navigate_url_;
+
   // The number of OnErrorRetry() calls that have occurred since the last
   // OnDone() call. This is used to determine the exponential backoff delay
   // between the call to OnError() and the timer call to OnErrorRetry().
diff --git a/src/cobalt/browser/debug_console/console_values.js b/src/cobalt/browser/debug_console/console_values.js
index 444ca48..516c249 100644
--- a/src/cobalt/browser/debug_console/console_values.js
+++ b/src/cobalt/browser/debug_console/console_values.js
@@ -20,9 +20,15 @@
   this.DEFAULT_KEY = 'default';
   // Reduced space-separated list of CVal prefixes to display at start-up.
   this.DEFAULT_ACTIVE_SET =
-      'Cobalt DevTools WebDriver Memory.CPU Memory.MainWebModule Memory.JS ' +
-      'Memory.Font Event.Duration.MainWebModule.KeyDown ' +
-      'Renderer.Rasterize.Duration';
+      'Cobalt DevTools WebDriver ' +
+      'Memory.CPU Memory.MainWebModule Memory.JS Memory.Font ' +
+      'Count.MainWebModule.ImageCache.RequestedResources ' +
+      'Count.MainWebModule.DOM.HtmlElement Count.MainWebModule.Layout.Box ' +
+      'Event.Count.MainWebModule.KeyDown.DOM.HtmlElement.Added ' +
+      'Event.Count.MainWebModule.KeyDown.Layout.Box.Created ' +
+      'Event.Count.MainWebModule.KeyDown.Layout.Box.Destroyed ' +
+      'Event.Duration.MainWebModule.DOM.VideoStartDelay ' +
+      'Event.Duration.MainWebModule.KeyDown'
 
   var names = window.debugHub.getConsoleValueNames();
   this.allCVals = names.split(' ');
diff --git a/src/cobalt/browser/lib/cobalt.def b/src/cobalt/browser/lib/cobalt.def
index 966eca6..6fb1539 100644
--- a/src/cobalt/browser/lib/cobalt.def
+++ b/src/cobalt/browser/lib/cobalt.def
@@ -17,6 +17,7 @@
     CbLibGraphicsSetContextCreatedCallback
     CbLibGraphicsSetBeginRenderFrameCallback
     CbLibGraphicsSetEndRenderFrameCallback
+    CbLibGrapicsGetMainTextureHandle
 
     ; From cobalt/render/rasterizer/lib/exported/video.h:
     CbLibVideoSetOnUpdateProjectionType
diff --git a/src/cobalt/browser/splash_screen.cc b/src/cobalt/browser/splash_screen.cc
index 2999b41..e2fa6ba 100644
--- a/src/cobalt/browser/splash_screen.cc
+++ b/src/cobalt/browser/splash_screen.cc
@@ -55,7 +55,7 @@
         render_tree_produced_callback,
     network::NetworkModule* network_module, const math::Size& window_dimensions,
     render_tree::ResourceProvider* resource_provider, float layout_refresh_rate,
-    const GURL& fallback_splash_screen_url,
+    const base::optional<GURL>& fallback_splash_screen_url,
     const GURL& initial_main_web_module_url,
     SplashScreenCache* splash_screen_cache,
     const base::Callback<void()>& on_splash_screen_shutdown_complete)
@@ -71,11 +71,14 @@
   web_module_options.loader_thread_priority = base::kThreadPriority_High;
   web_module_options.animated_image_decode_thread_priority =
       base::kThreadPriority_High;
-  GURL url_to_pass = fallback_splash_screen_url;
 
+  base::optional<GURL> url_to_pass = fallback_splash_screen_url;
   // Use the cached URL rather than the passed in URL if it exists.
   base::optional<std::string> key =
       SplashScreenCache::GetKeyForStartUrl(initial_main_web_module_url);
+  DCHECK(fallback_splash_screen_url ||
+         (key && splash_screen_cache &&
+          splash_screen_cache->IsSplashScreenCached(*key)));
   if (key && splash_screen_cache &&
       splash_screen_cache->IsSplashScreenCached(*key)) {
     url_to_pass = GURL(loader::kCacheScheme + ("://" + *key));
@@ -88,8 +91,9 @@
 
   web_module_options.on_before_unload_fired_but_not_handled = on_window_close;
 
+  DCHECK(url_to_pass);
   web_module_.reset(new WebModule(
-      url_to_pass, initial_application_state, render_tree_produced_callback_,
+      *url_to_pass, initial_application_state, render_tree_produced_callback_,
       base::Bind(&OnError), on_window_close,
       base::Closure(),  // window_minimize_callback
       &stub_media_module_, network_module, window_dimensions,
diff --git a/src/cobalt/browser/splash_screen.h b/src/cobalt/browser/splash_screen.h
index 73db062..3f1b8c3 100644
--- a/src/cobalt/browser/splash_screen.h
+++ b/src/cobalt/browser/splash_screen.h
@@ -40,7 +40,8 @@
       network::NetworkModule* network_module,
       const math::Size& window_dimensions,
       render_tree::ResourceProvider* resource_provider,
-      float layout_refresh_rate, const GURL& fallback_splash_screen_url,
+      float layout_refresh_rate,
+      const base::optional<GURL>& fallback_splash_screen_url,
       const GURL& initial_main_web_module_url,
       cobalt::browser::SplashScreenCache* splash_screen_cache,
       const base::Callback<void()>& on_splash_screen_shutdown_complete);
diff --git a/src/cobalt/browser/testdata/splash_screen/block_render_tree_head_body_display_none.html b/src/cobalt/browser/testdata/splash_screen/block_render_tree_head_body_display_none.html
deleted file mode 100644
index f481c4d..0000000
--- a/src/cobalt/browser/testdata/splash_screen/block_render_tree_head_body_display_none.html
+++ /dev/null
@@ -1,441 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-<head style="display : none">
-  <meta http-equiv="Content-Security-Policy" content="
-    default-src 'unsafe-inline';
-    style-src 'unsafe-inline';
-    script-src 'unsafe-inline';">
-</head>
-
-<script>
-  window.setTimeout(function() {
-    document.getElementsByTagName('body')[0].style.display = 'block';
-  }, 5000);
-</script>
-
-<body style="background-color: #1f52a5; display: none">
-<h1>Heading</h1>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
-interdum maximus finibus. Ut fermentum malesuada commodo. Sed
-faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
-sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
-erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
-suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
-placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
-eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
-quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
-finibus varius massa. Morbi id libero faucibus, tempus eros et,
-ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
-lacus posuere dignissim. Nunc sollicitudin vitae augue id
-vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
-
-<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
-non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
-efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
-eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
-litora torquent per conubia nostra, per inceptos himenaeos. Fusce
-lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
-aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
-augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
-volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
-euismod. Praesent suscipit quam elit, non luctus turpis rutrum
-faucibus.</p>
-
-<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
-lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
-ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
-quis nisl facilisis suscipit. Mauris placerat ante et auctor
-fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
-commodo a. Vestibulum quis ex non elit porttitor semper eget quis
-tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
-facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
-turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
-mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
-odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
-nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
-
-<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
-arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
-molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
-dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
-purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
-egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
-feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
-pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
-in. Ut a urna ornare, ultrices velit in, pellentesque
-lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
-ultrices posuere cubilia Curae;</p>
-
-<p>Orci varius natoque penatibus et magnis dis parturient montes,
-nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
-bibendum fermentum tempus. Praesent iaculis tortor metus, at
-vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
-tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
-faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
-posuere viverra, urna metus blandit augue, convallis mattis tortor dui
-vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
-interdum maximus finibus. Ut fermentum malesuada commodo. Sed
-faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
-sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
-erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
-suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
-placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
-eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
-quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
-finibus varius massa. Morbi id libero faucibus, tempus eros et,
-ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
-lacus posuere dignissim. Nunc sollicitudin vitae augue id
-vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
-
-<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
-non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
-efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
-eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
-litora torquent per conubia nostra, per inceptos himenaeos. Fusce
-lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
-aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
-augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
-volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
-euismod. Praesent suscipit quam elit, non luctus turpis rutrum
-faucibus.</p>
-
-<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
-lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
-ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
-quis nisl facilisis suscipit. Mauris placerat ante et auctor
-fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
-commodo a. Vestibulum quis ex non elit porttitor semper eget quis
-tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
-facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
-turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
-mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
-odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
-nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
-
-<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
-arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
-molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
-dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
-purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
-egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
-feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
-pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
-in. Ut a urna ornare, ultrices velit in, pellentesque
-lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
-ultrices posuere cubilia Curae;</p>
-
-<p>Orci varius natoque penatibus et magnis dis parturient montes,
-nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
-bibendum fermentum tempus. Praesent iaculis tortor metus, at
-vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
-tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
-faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
-posuere viverra, urna metus blandit augue, convallis mattis tortor dui
-vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
-interdum maximus finibus. Ut fermentum malesuada commodo. Sed
-faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
-sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
-erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
-suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
-placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
-eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
-quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
-finibus varius massa. Morbi id libero faucibus, tempus eros et,
-ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
-lacus posuere dignissim. Nunc sollicitudin vitae augue id
-vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
-
-<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
-non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
-efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
-eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
-litora torquent per conubia nostra, per inceptos himenaeos. Fusce
-lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
-aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
-augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
-volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
-euismod. Praesent suscipit quam elit, non luctus turpis rutrum
-faucibus.</p>
-
-<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
-lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
-ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
-quis nisl facilisis suscipit. Mauris placerat ante et auctor
-fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
-commodo a. Vestibulum quis ex non elit porttitor semper eget quis
-tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
-facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
-turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
-mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
-odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
-nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
-
-<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
-arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
-molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
-dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
-purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
-egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
-feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
-pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
-in. Ut a urna ornare, ultrices velit in, pellentesque
-lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
-ultrices posuere cubilia Curae;</p>
-
-<p>Orci varius natoque penatibus et magnis dis parturient montes,
-nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
-bibendum fermentum tempus. Praesent iaculis tortor metus, at
-vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
-tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
-faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
-posuere viverra, urna metus blandit augue, convallis mattis tortor dui
-vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
-interdum maximus finibus. Ut fermentum malesuada commodo. Sed
-faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
-sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
-erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
-suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
-placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
-eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
-quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
-finibus varius massa. Morbi id libero faucibus, tempus eros et,
-ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
-lacus posuere dignissim. Nunc sollicitudin vitae augue id
-vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
-
-<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
-non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
-efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
-eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
-litora torquent per conubia nostra, per inceptos himenaeos. Fusce
-lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
-aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
-augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
-volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
-euismod. Praesent suscipit quam elit, non luctus turpis rutrum
-faucibus.</p>
-
-<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
-lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
-ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
-quis nisl facilisis suscipit. Mauris placerat ante et auctor
-fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
-commodo a. Vestibulum quis ex non elit porttitor semper eget quis
-tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
-facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
-turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
-mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
-odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
-nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
-
-<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
-arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
-molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
-dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
-purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
-egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
-feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
-pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
-in. Ut a urna ornare, ultrices velit in, pellentesque
-lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
-ultrices posuere cubilia Curae;</p>
-
-<p>Orci varius natoque penatibus et magnis dis parturient montes,
-nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
-bibendum fermentum tempus. Praesent iaculis tortor metus, at
-vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
-tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
-faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
-posuere viverra, urna metus blandit augue, convallis mattis tortor dui
-vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
-interdum maximus finibus. Ut fermentum malesuada commodo. Sed
-faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
-sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
-erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
-suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
-placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
-eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
-quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
-finibus varius massa. Morbi id libero faucibus, tempus eros et,
-ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
-lacus posuere dignissim. Nunc sollicitudin vitae augue id
-vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
-
-<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
-non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
-efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
-eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
-litora torquent per conubia nostra, per inceptos himenaeos. Fusce
-lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
-aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
-augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
-volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
-euismod. Praesent suscipit quam elit, non luctus turpis rutrum
-faucibus.</p>
-
-<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
-lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
-ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
-quis nisl facilisis suscipit. Mauris placerat ante et auctor
-fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
-commodo a. Vestibulum quis ex non elit porttitor semper eget quis
-tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
-facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
-turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
-mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
-odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
-nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
-
-<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
-arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
-molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
-dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
-purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
-egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
-feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
-pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
-in. Ut a urna ornare, ultrices velit in, pellentesque
-lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
-ultrices posuere cubilia Curae;</p>
-
-<p>Orci varius natoque penatibus et magnis dis parturient montes,
-nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
-bibendum fermentum tempus. Praesent iaculis tortor metus, at
-vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
-tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
-faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
-posuere viverra, urna metus blandit augue, convallis mattis tortor dui
-vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
-interdum maximus finibus. Ut fermentum malesuada commodo. Sed
-faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
-sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
-erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
-suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
-placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
-eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
-quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
-finibus varius massa. Morbi id libero faucibus, tempus eros et,
-ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
-lacus posuere dignissim. Nunc sollicitudin vitae augue id
-vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
-
-<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
-non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
-efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
-eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
-litora torquent per conubia nostra, per inceptos himenaeos. Fusce
-lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
-aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
-augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
-volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
-euismod. Praesent suscipit quam elit, non luctus turpis rutrum
-faucibus.</p>
-
-<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
-lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
-ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
-quis nisl facilisis suscipit. Mauris placerat ante et auctor
-fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
-commodo a. Vestibulum quis ex non elit porttitor semper eget quis
-tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
-facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
-turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
-mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
-odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
-nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
-
-<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
-arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
-molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
-dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
-purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
-egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
-feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
-pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
-in. Ut a urna ornare, ultrices velit in, pellentesque
-lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
-ultrices posuere cubilia Curae;</p>
-
-<p>Orci varius natoque penatibus et magnis dis parturient montes,
-nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
-bibendum fermentum tempus. Praesent iaculis tortor metus, at
-vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
-tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
-faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
-posuere viverra, urna metus blandit augue, convallis mattis tortor dui
-vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
-interdum maximus finibus. Ut fermentum malesuada commodo. Sed
-faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
-sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
-erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
-suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
-placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
-eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
-quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
-finibus varius massa. Morbi id libero faucibus, tempus eros et,
-ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
-lacus posuere dignissim. Nunc sollicitudin vitae augue id
-vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
-
-<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
-non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
-efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
-eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
-litora torquent per conubia nostra, per inceptos himenaeos. Fusce
-lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
-aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
-augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
-volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
-euismod. Praesent suscipit quam elit, non luctus turpis rutrum
-faucibus.</p>
-
-<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
-lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
-ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
-quis nisl facilisis suscipit. Mauris placerat ante et auctor
-fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
-commodo a. Vestibulum quis ex non elit porttitor semper eget quis
-tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
-facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
-turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
-mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
-odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
-nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
-
-<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
-arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
-molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
-dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
-purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
-egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
-feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
-pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
-in. Ut a urna ornare, ultrices velit in, pellentesque
-lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
-ultrices posuere cubilia Curae;</p>
-
-<p>Orci varius natoque penatibus et magnis dis parturient montes,
-nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
-bibendum fermentum tempus. Praesent iaculis tortor metus, at
-vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
-tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
-faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
-posuere viverra, urna metus blandit augue, convallis mattis tortor dui
-vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
-
-</body>
-</html>
diff --git a/src/cobalt/browser/testdata/splash_screen/block_render_tree_html_display_none.html b/src/cobalt/browser/testdata/splash_screen/block_render_tree_html_display_none.html
index d5f4552..1128e53 100644
--- a/src/cobalt/browser/testdata/splash_screen/block_render_tree_html_display_none.html
+++ b/src/cobalt/browser/testdata/splash_screen/block_render_tree_html_display_none.html
@@ -10,6 +10,7 @@
 
 <script>
   window.setTimeout(function() {
+    console.log('Changing html style to block');
     document.getElementsByTagName('html')[0].style.display = 'block';
   }, 5000);
 </script>
diff --git a/src/cobalt/browser/testdata/splash_screen/render_postponed.html b/src/cobalt/browser/testdata/splash_screen/render_postponed.html
new file mode 100644
index 0000000..7d96e71
--- /dev/null
+++ b/src/cobalt/browser/testdata/splash_screen/render_postponed.html
@@ -0,0 +1,449 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta http-equiv="Content-Security-Policy" content="
+    default-src 'unsafe-inline';
+    style-src 'unsafe-inline';
+    script-src 'unsafe-inline';">
+  <script>
+    window.onload = function () {
+      console.log('renderPostponed = ' + String(document.renderPostponed));
+      document.renderPostponed = true;
+      console.log('Calling renderPostponed = true')
+      document.renderPostponed = true;
+      console.log('...waiting 5s')
+      window.setTimeout(function() {
+        console.log('Calling renderPostponed = false')
+        document.renderPostponed = false;
+      }, 5000);
+    }
+    </script>
+</head>
+
+
+<body style="background-color: #1f52a5;">
+<h1>Heading</h1>
+
+<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
+interdum maximus finibus. Ut fermentum malesuada commodo. Sed
+faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
+sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
+erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
+suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
+placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
+eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
+quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
+finibus varius massa. Morbi id libero faucibus, tempus eros et,
+ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
+lacus posuere dignissim. Nunc sollicitudin vitae augue id
+vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
+
+<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
+non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
+efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
+eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
+litora torquent per conubia nostra, per inceptos himenaeos. Fusce
+lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
+aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
+augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
+volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
+euismod. Praesent suscipit quam elit, non luctus turpis rutrum
+faucibus.</p>
+
+<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
+lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
+ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
+quis nisl facilisis suscipit. Mauris placerat ante et auctor
+fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
+commodo a. Vestibulum quis ex non elit porttitor semper eget quis
+tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
+facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
+turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
+mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
+odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
+nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
+
+<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
+arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
+molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
+dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
+purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
+egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
+feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
+pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
+in. Ut a urna ornare, ultrices velit in, pellentesque
+lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
+ultrices posuere cubilia Curae;</p>
+
+<p>Orci varius natoque penatibus et magnis dis parturient montes,
+nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
+bibendum fermentum tempus. Praesent iaculis tortor metus, at
+vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
+tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
+faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
+posuere viverra, urna metus blandit augue, convallis mattis tortor dui
+vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
+
+<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
+interdum maximus finibus. Ut fermentum malesuada commodo. Sed
+faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
+sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
+erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
+suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
+placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
+eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
+quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
+finibus varius massa. Morbi id libero faucibus, tempus eros et,
+ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
+lacus posuere dignissim. Nunc sollicitudin vitae augue id
+vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
+
+<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
+non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
+efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
+eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
+litora torquent per conubia nostra, per inceptos himenaeos. Fusce
+lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
+aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
+augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
+volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
+euismod. Praesent suscipit quam elit, non luctus turpis rutrum
+faucibus.</p>
+
+<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
+lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
+ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
+quis nisl facilisis suscipit. Mauris placerat ante et auctor
+fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
+commodo a. Vestibulum quis ex non elit porttitor semper eget quis
+tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
+facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
+turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
+mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
+odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
+nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
+
+<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
+arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
+molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
+dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
+purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
+egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
+feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
+pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
+in. Ut a urna ornare, ultrices velit in, pellentesque
+lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
+ultrices posuere cubilia Curae;</p>
+
+<p>Orci varius natoque penatibus et magnis dis parturient montes,
+nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
+bibendum fermentum tempus. Praesent iaculis tortor metus, at
+vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
+tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
+faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
+posuere viverra, urna metus blandit augue, convallis mattis tortor dui
+vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
+
+<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
+interdum maximus finibus. Ut fermentum malesuada commodo. Sed
+faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
+sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
+erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
+suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
+placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
+eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
+quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
+finibus varius massa. Morbi id libero faucibus, tempus eros et,
+ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
+lacus posuere dignissim. Nunc sollicitudin vitae augue id
+vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
+
+<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
+non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
+efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
+eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
+litora torquent per conubia nostra, per inceptos himenaeos. Fusce
+lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
+aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
+augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
+volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
+euismod. Praesent suscipit quam elit, non luctus turpis rutrum
+faucibus.</p>
+
+<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
+lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
+ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
+quis nisl facilisis suscipit. Mauris placerat ante et auctor
+fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
+commodo a. Vestibulum quis ex non elit porttitor semper eget quis
+tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
+facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
+turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
+mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
+odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
+nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
+
+<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
+arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
+molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
+dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
+purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
+egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
+feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
+pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
+in. Ut a urna ornare, ultrices velit in, pellentesque
+lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
+ultrices posuere cubilia Curae;</p>
+
+<p>Orci varius natoque penatibus et magnis dis parturient montes,
+nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
+bibendum fermentum tempus. Praesent iaculis tortor metus, at
+vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
+tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
+faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
+posuere viverra, urna metus blandit augue, convallis mattis tortor dui
+vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
+
+<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
+interdum maximus finibus. Ut fermentum malesuada commodo. Sed
+faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
+sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
+erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
+suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
+placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
+eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
+quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
+finibus varius massa. Morbi id libero faucibus, tempus eros et,
+ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
+lacus posuere dignissim. Nunc sollicitudin vitae augue id
+vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
+
+<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
+non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
+efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
+eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
+litora torquent per conubia nostra, per inceptos himenaeos. Fusce
+lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
+aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
+augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
+volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
+euismod. Praesent suscipit quam elit, non luctus turpis rutrum
+faucibus.</p>
+
+<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
+lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
+ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
+quis nisl facilisis suscipit. Mauris placerat ante et auctor
+fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
+commodo a. Vestibulum quis ex non elit porttitor semper eget quis
+tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
+facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
+turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
+mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
+odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
+nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
+
+<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
+arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
+molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
+dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
+purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
+egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
+feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
+pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
+in. Ut a urna ornare, ultrices velit in, pellentesque
+lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
+ultrices posuere cubilia Curae;</p>
+
+<p>Orci varius natoque penatibus et magnis dis parturient montes,
+nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
+bibendum fermentum tempus. Praesent iaculis tortor metus, at
+vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
+tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
+faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
+posuere viverra, urna metus blandit augue, convallis mattis tortor dui
+vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
+
+<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
+interdum maximus finibus. Ut fermentum malesuada commodo. Sed
+faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
+sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
+erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
+suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
+placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
+eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
+quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
+finibus varius massa. Morbi id libero faucibus, tempus eros et,
+ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
+lacus posuere dignissim. Nunc sollicitudin vitae augue id
+vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
+
+<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
+non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
+efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
+eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
+litora torquent per conubia nostra, per inceptos himenaeos. Fusce
+lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
+aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
+augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
+volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
+euismod. Praesent suscipit quam elit, non luctus turpis rutrum
+faucibus.</p>
+
+<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
+lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
+ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
+quis nisl facilisis suscipit. Mauris placerat ante et auctor
+fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
+commodo a. Vestibulum quis ex non elit porttitor semper eget quis
+tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
+facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
+turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
+mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
+odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
+nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
+
+<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
+arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
+molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
+dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
+purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
+egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
+feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
+pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
+in. Ut a urna ornare, ultrices velit in, pellentesque
+lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
+ultrices posuere cubilia Curae;</p>
+
+<p>Orci varius natoque penatibus et magnis dis parturient montes,
+nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
+bibendum fermentum tempus. Praesent iaculis tortor metus, at
+vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
+tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
+faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
+posuere viverra, urna metus blandit augue, convallis mattis tortor dui
+vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
+
+<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
+interdum maximus finibus. Ut fermentum malesuada commodo. Sed
+faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
+sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
+erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
+suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
+placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
+eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
+quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
+finibus varius massa. Morbi id libero faucibus, tempus eros et,
+ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
+lacus posuere dignissim. Nunc sollicitudin vitae augue id
+vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
+
+<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
+non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
+efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
+eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
+litora torquent per conubia nostra, per inceptos himenaeos. Fusce
+lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
+aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
+augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
+volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
+euismod. Praesent suscipit quam elit, non luctus turpis rutrum
+faucibus.</p>
+
+<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
+lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
+ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
+quis nisl facilisis suscipit. Mauris placerat ante et auctor
+fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
+commodo a. Vestibulum quis ex non elit porttitor semper eget quis
+tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
+facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
+turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
+mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
+odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
+nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
+
+<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
+arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
+molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
+dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
+purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
+egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
+feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
+pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
+in. Ut a urna ornare, ultrices velit in, pellentesque
+lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
+ultrices posuere cubilia Curae;</p>
+
+<p>Orci varius natoque penatibus et magnis dis parturient montes,
+nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
+bibendum fermentum tempus. Praesent iaculis tortor metus, at
+vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
+tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
+faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
+posuere viverra, urna metus blandit augue, convallis mattis tortor dui
+vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
+
+<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus
+interdum maximus finibus. Ut fermentum malesuada commodo. Sed
+faucibus, sapien a mattis lobortis, magna ante efficitur mauris, quis
+sodales nibh diam nec quam. Vestibulum magna libero, tincidunt non
+erat sed, molestie pulvinar ex. Maecenas semper blandit elit, id
+suscipit nulla venenatis pretium. Integer accumsan porta felis, vitae
+placerat urna accumsan vel. Aliquam eu aliquet mi. Aenean tincidunt
+eros lectus, sit amet efficitur orci ultrices at. Morbi lobortis ex
+quis luctus rutrum. In nulla velit, elementum vitae turpis vitae,
+finibus varius massa. Morbi id libero faucibus, tempus eros et,
+ullamcorper ipsum. Sed eleifend finibus bibendum. Nullam ut nunc nec
+lacus posuere dignissim. Nunc sollicitudin vitae augue id
+vulputate. Ut ac nibh gravida, volutpat est ac, facilisis neque.</p>
+
+<p>Nam dictum leo massa, non posuere dui bibendum id. Morbi sagittis est
+non est laoreet, a sollicitudin felis aliquet. Ut cursus vel leo a
+efficitur. Proin ut pellentesque sapien, vel maximus dui. Suspendisse
+eu felis eget leo elementum efficitur. Class aptent taciti sociosqu ad
+litora torquent per conubia nostra, per inceptos himenaeos. Fusce
+lobortis velit in elit pellentesque, ut auctor ipsum dignissim. Sed
+aliquet eleifend convallis. Duis mollis, dolor sed rutrum mollis,
+augue eros dignissim erat, eu dapibus augue turpis ac sapien. Morbi at
+volutpat odio, at molestie risus. Nulla quis nulla et magna vestibulum
+euismod. Praesent suscipit quam elit, non luctus turpis rutrum
+faucibus.</p>
+
+<p>Morbi feugiat lacus rhoncus, dignissim velit nec, dignissim
+lorem. Aliquam erat volutpat. Mauris semper dictum tempus. Nulla ex
+ligula, malesuada in ornare sed, euismod vitae massa. Etiam quis erat
+quis nisl facilisis suscipit. Mauris placerat ante et auctor
+fermentum. Donec tincidunt justo sem, ullamcorper vulputate nisl
+commodo a. Vestibulum quis ex non elit porttitor semper eget quis
+tortor. Suspendisse mattis neque non elementum scelerisque. Nulla
+facilisi. Nulla non felis et justo feugiat elementum. Aenean sodales
+turpis at erat eleifend lacinia. Proin eleifend volutpat purus id
+mollis. Proin vel tellus faucibus, sagittis libero at, lobortis
+odio. Praesent quam mauris, auctor vel velit eu, convallis molestie
+nisi. Pellentesque in nunc at orci ultrices vehicula.</p>
+
+<p>Praesent nibh lectus, efficitur sed risus in, rutrum tristique
+arcu. Curabitur non efficitur elit. Phasellus eget odio iaculis,
+molestie dui eget, venenatis erat. Nulla luctus facilisis lectus, nec
+dapibus tortor rhoncus vel. Donec nec arcu elit. Nullam ut faucibus
+purus, sed ultricies diam. Pellentesque at finibus ipsum. Vestibulum
+egestas dignissim nisl, ac rhoncus risus finibus sit amet. Donec non
+feugiat ante. Donec vehicula dui a lorem imperdiet, a tempus diam
+pulvinar. Nullam congue efficitur justo, non posuere ligula sodales
+in. Ut a urna ornare, ultrices velit in, pellentesque
+lorem. Vestibulum ante ipsum primis in faucibus orci luctus et
+ultrices posuere cubilia Curae;</p>
+
+<p>Orci varius natoque penatibus et magnis dis parturient montes,
+nascetur ridiculus mus. Morbi maximus quis magna et aliquet. Nam
+bibendum fermentum tempus. Praesent iaculis tortor metus, at
+vestibulum ipsum hendrerit mattis. Proin fringilla nisl sit amet
+tincidunt blandit. Interdum et malesuada fames ac ante ipsum primis in
+faucibus. Phasellus vel lectus leo. Curabitur fringilla, arcu non
+posuere viverra, urna metus blandit augue, convallis mattis tortor dui
+vel arcu. In sit amet metus vitae ex rhoncus hendrerit.</p>
+
+</body>
+</html>
diff --git a/src/cobalt/browser/web_module.cc b/src/cobalt/browser/web_module.cc
index 729697f..150b2c8 100644
--- a/src/cobalt/browser/web_module.cc
+++ b/src/cobalt/browser/web_module.cc
@@ -797,7 +797,6 @@
       base::Bind(&WebModule::Impl::global_environment, base::Unretained(this)),
       base::Bind(&WebModule::Impl::InjectKeyboardEvent, base::Unretained(this)),
       base::Bind(&WebModule::Impl::InjectPointerEvent, base::Unretained(this)),
-      base::Bind(&WebModule::Impl::InjectWheelEvent, base::Unretained(this)),
       base::MessageLoopProxy::current()));
 }
 #endif  // defined(ENABLE_WEBDRIVER)
diff --git a/src/cobalt/browser/web_module_stat_tracker.cc b/src/cobalt/browser/web_module_stat_tracker.cc
index 4151969..187c076 100644
--- a/src/cobalt/browser/web_module_stat_tracker.cc
+++ b/src/cobalt/browser/web_module_stat_tracker.cc
@@ -73,6 +73,10 @@
     current_event_type_ = kEventTypeKeyDown;
   } else if (event->type() == base::Tokens::keyup()) {
     current_event_type_ = kEventTypeKeyUp;
+  } else if (event->type() == base::Tokens::pointerdown()) {
+    current_event_type_ = kEventTypePointerDown;
+  } else if (event->type() == base::Tokens::pointerup()) {
+    current_event_type_ = kEventTypePointerUp;
   } else {
     current_event_type_ = kEventTypeInvalid;
   }
@@ -399,6 +403,10 @@
       return "KeyDown";
     case WebModuleStatTracker::kEventTypeKeyUp:
       return "KeyUp";
+    case WebModuleStatTracker::kEventTypePointerDown:
+      return "PointerDown";
+    case WebModuleStatTracker::kEventTypePointerUp:
+      return "PointerUp";
     case WebModuleStatTracker::kEventTypeInvalid:
     case WebModuleStatTracker::kNumEventTypes:
     default:
diff --git a/src/cobalt/browser/web_module_stat_tracker.h b/src/cobalt/browser/web_module_stat_tracker.h
index 08ae658..79045e3 100644
--- a/src/cobalt/browser/web_module_stat_tracker.h
+++ b/src/cobalt/browser/web_module_stat_tracker.h
@@ -67,6 +67,8 @@
     kEventTypeInvalid = -1,
     kEventTypeKeyDown,
     kEventTypeKeyUp,
+    kEventTypePointerDown,
+    kEventTypePointerUp,
     kNumEventTypes,
   };
 
diff --git a/src/cobalt/build/build.id b/src/cobalt/build/build.id
index 6b70bdc..ef49ee3 100644
--- a/src/cobalt/build/build.id
+++ b/src/cobalt/build/build.id
@@ -1 +1 @@
-95843
\ No newline at end of file
+97306
\ No newline at end of file
diff --git a/src/cobalt/build/config/BUILD.gn b/src/cobalt/build/config/BUILD.gn
index f0af403..3851714 100644
--- a/src/cobalt/build/config/BUILD.gn
+++ b/src/cobalt/build/config/BUILD.gn
@@ -156,7 +156,6 @@
     "ENABLE_PARTIAL_LAYOUT_CONTROL",
     "ENABLE_TEST_RUNNER",
     "__LB_SHELL__ENABLE_SCREENSHOT__",
-    "__LB_SHELL__FOR_QA__",
     "NDEBUG",
   ]
 }
@@ -167,7 +166,6 @@
     "COBALT_BUILD_TYPE_GOLD",
     "COBALT_FORCE_CSP",
     "COBALT_FORCE_HTTPS",
-    "__LB_SHELL__FOR_RELEASE__",
     "NDEBUG",
     "TRACING_DISABLED",
   ]
diff --git a/src/cobalt/build/config/base.gypi b/src/cobalt/build/config/base.gypi
index 77cba3a..4a1dcad 100644
--- a/src/cobalt/build/config/base.gypi
+++ b/src/cobalt/build/config/base.gypi
@@ -317,6 +317,10 @@
     # Blitter API).
     'skia_cache_size_in_bytes%': 4 * 1024 * 1024,
 
+    # Determines whether shaders for skia will be preloaded on first draw
+    # call.
+    'skia_preload_shaders%': 0,
+
     # Determines the capacity of the scratch surface cache.  The scratch
     # surface cache facilitates the reuse of temporary offscreen surfaces
     # within a single frame.  This setting is only relevant when using the
@@ -391,12 +395,12 @@
     'skia_glyph_atlas_width%': '-1',
     'skia_glyph_atlas_height%': '-1',
 
-    # Determines the size of garbage collection threshold. After this many bytes
-    # have been allocated, the mozjs garbage collector will run. Lowering this
-    # has been found to reduce performance and decrease JavaScript memory usage.
-    # For example, we have measured on at least one platform that performance
-    # becomes 7% worse on average in certain cases when adjusting this number
-    # from 8MB to 1MB.
+    # Determines the size of garbage collection threshold. After this many
+    # bytes have been allocated, the SpiderMonkey garbage collector will run.
+    # Lowering this has been found to reduce performance and decrease
+    # JavaScript memory usage. For example, we have measured on at least one
+    # platform that performance becomes 7% worse on average in certain cases
+    # when adjusting this number from 8MB to 1MB.
     'mozjs_garbage_collection_threshold_in_bytes%': 8 * 1024 * 1024,
 
     # Max Cobalt CPU usage specifies that the cobalt program should
@@ -761,7 +765,6 @@
           'ENABLE_PARTIAL_LAYOUT_CONTROL',
           'ENABLE_TEST_RUNNER',
           '__LB_SHELL__ENABLE_SCREENSHOT__',
-          '__LB_SHELL__FOR_QA__',
           'NDEBUG',
         ],
       }, # end of devel_base
@@ -777,7 +780,6 @@
           'COBALT_BUILD_TYPE_GOLD',
           'COBALT_FORCE_CSP',
           'COBALT_FORCE_HTTPS',
-          '__LB_SHELL__FOR_RELEASE__',
           'NDEBUG',
           'TRACING_DISABLED',
         ],
diff --git a/src/cobalt/cssom/scale_function.h b/src/cobalt/cssom/scale_function.h
index ae84a80..69da6dc 100644
--- a/src/cobalt/cssom/scale_function.h
+++ b/src/cobalt/cssom/scale_function.h
@@ -40,6 +40,12 @@
   float y_factor() const { return y_factor_; }
 
   std::string ToString() const OVERRIDE {
+    if (y_factor_ == 1.0f) {
+      return base::StringPrintf("scaleX(%.7g)", x_factor_);
+    }
+    if (x_factor_ == 1.0f) {
+      return base::StringPrintf("scaleY(%.7g)", y_factor_);
+    }
     return base::StringPrintf("scale(%.7g, %.7g)", x_factor_, y_factor_);
   }
 
diff --git a/src/cobalt/dom/document.cc b/src/cobalt/dom/document.cc
index 85603a2..b534312 100644
--- a/src/cobalt/dom/document.cc
+++ b/src/cobalt/dom/document.cc
@@ -57,6 +57,7 @@
 #include "cobalt/dom/node_descendants_iterator.h"
 #include "cobalt/dom/text.h"
 #include "cobalt/dom/ui_event.h"
+#include "cobalt/dom/wheel_event.h"
 #include "cobalt/dom/window.h"
 #include "cobalt/script/global_environment.h"
 #include "nb/memory_scope.h"
@@ -91,7 +92,8 @@
       user_agent_style_sheet_(options.user_agent_style_sheet),
       initial_computed_style_declaration_(
           new cssom::CSSComputedStyleDeclaration()),
-      dom_max_element_depth_(options.dom_max_element_depth) {
+      dom_max_element_depth_(options.dom_max_element_depth),
+      render_postponed_(false) {
   DCHECK(html_element_context_);
   DCHECK(options.url.is_empty() || options.url.is_valid());
   html_element_context_->page_visibility_state()->AddObserver(this);
@@ -243,6 +245,10 @@
   } else if (base::strcasecmp(interface_name.c_str(), "uievent") == 0 ||
              base::strcasecmp(interface_name.c_str(), "uievents") == 0) {
     return new UIEvent(Event::Uninitialized);
+  } else if (base::strcasecmp(interface_name.c_str(), "wheelevent") == 0) {
+    // This not in the spec, but commonly implemented to create a WheelEvent.
+    //   https://www.w3.org/TR/2016/WD-uievents-20160804/#interface-wheelevent
+    return new WheelEvent(Event::Uninitialized);
   } else if (base::strcasecmp(interface_name.c_str(), "customevent") == 0) {
     return new CustomEvent(Event::Uninitialized);
   }
@@ -900,6 +906,14 @@
   tracer->Trace(initial_computed_style_declaration_);
 }
 
+void Document::set_render_postponed(bool render_postponed) {
+  bool unpostponed = render_postponed_ && !render_postponed;
+  render_postponed_ = render_postponed;
+  if (unpostponed) {
+    RecordMutation();
+  }
+}
+
 void Document::DispatchOnLoadEvent() {
   TRACE_EVENT0("cobalt::dom", "Document::DispatchOnLoadEvent()");
 
diff --git a/src/cobalt/dom/document.h b/src/cobalt/dom/document.h
index 5291806..cf5ef5b 100644
--- a/src/cobalt/dom/document.h
+++ b/src/cobalt/dom/document.h
@@ -390,6 +390,11 @@
 
   PointerState* pointer_state() { return &pointer_state_; }
 
+  // render_postponed is a Cobalt-specific Web API.
+  bool render_postponed() const { return render_postponed_; }
+
+  void set_render_postponed(bool render_postponed);
+
   DEFINE_WRAPPABLE_TYPE(Document);
 
  protected:
@@ -495,6 +500,9 @@
 
   // Various state related to pointer and mouse support.
   PointerState pointer_state_;
+
+  // Whether or not rendering is currently postponed.
+  bool render_postponed_;
 };
 
 }  // namespace dom
diff --git a/src/cobalt/dom/document_cobalt.idl b/src/cobalt/dom/document_cobalt.idl
new file mode 100644
index 0000000..3d5adba
--- /dev/null
+++ b/src/cobalt/dom/document_cobalt.idl
@@ -0,0 +1,19 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Custom API for postponing and resuming production of render trees.
+
+partial interface Document {
+  attribute boolean renderPostponed;
+};
diff --git a/src/cobalt/dom/html_link_element.cc b/src/cobalt/dom/html_link_element.cc
index 224cc16..c04e519 100644
--- a/src/cobalt/dom/html_link_element.cc
+++ b/src/cobalt/dom/html_link_element.cc
@@ -193,10 +193,12 @@
   // named error at the link element.
   PostToDispatchEvent(FROM_HERE, base::Tokens::error());
 
-  // The element must delay the load event of the element's document until all
-  // the attempts to obtain the resource and its critical subresources are
-  // complete.
-  node_document()->DecreaseLoadingCounterAndMaybeDispatchLoadEvent();
+  if (IsRelContentCriticalResource(rel())) {
+    // The element must delay the load event of the element's document until all
+    // the attempts to obtain the resource and its critical subresources are
+    // complete.
+    node_document()->DecreaseLoadingCounterAndMaybeDispatchLoadEvent();
+  }
 
   MessageLoop::current()->PostTask(
       FROM_HERE, base::Bind(&HTMLLinkElement::ReleaseLoader, this));
diff --git a/src/cobalt/dom/html_media_element.cc b/src/cobalt/dom/html_media_element.cc
index 779f7d3..429e3e3 100644
--- a/src/cobalt/dom/html_media_element.cc
+++ b/src/cobalt/dom/html_media_element.cc
@@ -1662,7 +1662,13 @@
                     "HTMLMediaElement or not. Perhaps the HTMLMediaElement is "
                     "not attached to the document?  Falling back to checking "
                     "the inline style instead.";
-    filter = style()->data()->GetPropertyValue(cssom::kFilterProperty);
+    if (style() && style()->data()) {
+      filter = style()->data()->GetPropertyValue(cssom::kFilterProperty);
+    }
+  }
+
+  if (!filter) {
+    return false;
   }
 
   const cssom::MapToMeshFunction* map_to_mesh_filter =
diff --git a/src/cobalt/dom/wheel_event.cc b/src/cobalt/dom/wheel_event.cc
index 7f991fe..9aa48fc 100644
--- a/src/cobalt/dom/wheel_event.cc
+++ b/src/cobalt/dom/wheel_event.cc
@@ -42,6 +42,13 @@
       delta_z_(init_dict.delta_z()),
       delta_mode_(init_dict.delta_mode()) {}
 
+WheelEvent::WheelEvent(UninitializedFlag uninitialized_flag)
+    : MouseEvent(uninitialized_flag),
+      delta_x_(0),
+      delta_y_(0),
+      delta_z_(0),
+      delta_mode_(kDomDeltaPixel) {}
+
 void WheelEvent::InitWheelEvent(
     const std::string& type, bool bubbles, bool cancelable,
     const scoped_refptr<Window>& view, int32 detail, int32 screen_x,
diff --git a/src/cobalt/dom/wheel_event.h b/src/cobalt/dom/wheel_event.h
index a421c84..02f8872 100644
--- a/src/cobalt/dom/wheel_event.h
+++ b/src/cobalt/dom/wheel_event.h
@@ -46,10 +46,8 @@
   WheelEvent(base::Token type, const scoped_refptr<Window>& view,
              const WheelEventInit& init_dict);
 
-  double delta_x() const { return delta_x_; }
-  double delta_y() const { return delta_y_; }
-  double delta_z() const { return delta_z_; }
-  DeltaMode delta_mode() const { return delta_mode_; }
+  // Creates an event with its "initialized flag" unset.
+  explicit WheelEvent(UninitializedFlag uninitialized_flag);
 
   void InitWheelEvent(const std::string& type, bool bubbles, bool cancelable,
                       const scoped_refptr<Window>& view, int32 detail,
@@ -59,6 +57,11 @@
                       const std::string& modifierslist, double delta_x,
                       double delta_y, double delta_z, uint32 delta_mode);
 
+  double delta_x() const { return delta_x_; }
+  double delta_y() const { return delta_y_; }
+  double delta_z() const { return delta_z_; }
+  DeltaMode delta_mode() const { return delta_mode_; }
+
   DEFINE_WRAPPABLE_TYPE(WheelEvent);
 
  private:
diff --git a/src/cobalt/input/input_device_manager_desktop.cc b/src/cobalt/input/input_device_manager_desktop.cc
index 91213b7..d49fb15 100644
--- a/src/cobalt/input/input_device_manager_desktop.cc
+++ b/src/cobalt/input/input_device_manager_desktop.cc
@@ -100,33 +100,36 @@
   event->set_meta_key(modifiers & system_window::InputEvent::kMetaKey);
 }
 
-void UpdateMouseEventInitButton(int key_code, MouseEventInit* event) {
+void UpdateMouseEventInitButtons(const system_window::InputEvent* input_event,
+                                 MouseEventInit* event) {
   // The value of the button attribute MUST be as follows:
   //  https://www.w3.org/TR/uievents/#ref-for-dom-mouseevent-button-1
-  if (key_code == kSbKeyMouse1) {
-    // 0 MUST indicate the primary button of the device (in general, the left
-    // button or the only button on single-button devices, used to activate a
-    // user interface control or select text) or the un-initialized value.
-    event->set_button(0);
-    event->set_buttons(1);
-  } else if (key_code == kSbKeyMouse2) {
-    // 1 MUST indicate the auxiliary button (in general, the middle button,
-    // often combined with a mouse wheel).
-    event->set_button(1);
-    event->set_buttons(2);
-  } else if (key_code == kSbKeyMouse3) {
-    // 2 MUST indicate the secondary button (in general, the right button, often
-    // used to display a context menu).
-    event->set_button(2);
-    event->set_buttons(4);
+  switch (input_event->key_code()) {
+    case kSbKeyMouse1:
+      // 0 MUST indicate the primary button of the device (in general, the left
+      // button or the only button on single-button devices, used to activate a
+      // user interface control or select text) or the un-initialized value.
+      event->set_button(0);
+      break;
+    case kSbKeyMouse2:
+      // 1 MUST indicate the auxiliary button (in general, the middle button,
+      // often combined with a mouse wheel).
+      event->set_button(1);
+      break;
+    case kSbKeyMouse3:
+      // 2 MUST indicate the secondary button (in general, the right button,
+      // often used to display a context menu).
+      event->set_button(2);
+      break;
+    default:
+      break;
   }
-}
 
-void UpdateMouseEventInitButtons(uint32 modifiers, MouseEventInit* event) {
   // The value of the buttons attribute MUST be as follows:
   //  https://www.w3.org/TR/uievents/#ref-for-dom-mouseevent-buttons-3
 
   // 0 MUST indicate no button is currently active.
+  uint32 modifiers = input_event->modifiers();
   uint16 buttons = 0;
   if (modifiers & system_window::InputEvent::kLeftButton) {
     // 1 MUST indicate the primary button of the device (in general, the left
@@ -144,14 +147,34 @@
     // often combined with a mouse wheel).
     buttons |= 4;
   }
-  event->set_buttons(event->buttons() | buttons);
+
+  // The buttons attribute reflects the state of the mouse's buttons for any
+  // MouseEvent object (while it is being dispatched).
+  //   https://www.w3.org/TR/2016/WD-uievents-20160804/#ref-for-dom-mouseevent-buttons-2
+  switch (input_event->type()) {
+    case system_window::InputEvent::kTouchpadDown:
+    case system_window::InputEvent::kPointerDown:
+      // For 'down' events, ensure that the buttons state includes the currently
+      // reported button press.
+      buttons |= 1 << event->button();
+      break;
+    case system_window::InputEvent::kTouchpadUp:
+    case system_window::InputEvent::kPointerUp:
+      // For 'up' events, ensure that the buttons state excludes the currently
+      // reported button press.
+      buttons &= ~(1 << event->button());
+      break;
+    default:
+      break;
+  }
+
+  event->set_buttons(buttons);
 }
 
 void UpdateMouseEventInit(const system_window::InputEvent* input_event,
                           dom::MouseEventInit* mouse_event) {
   UpdateEventModifierInit(input_event, mouse_event);
-  UpdateMouseEventInitButton(input_event->key_code(), mouse_event);
-  UpdateMouseEventInitButtons(input_event->modifiers(), mouse_event);
+  UpdateMouseEventInitButtons(input_event, mouse_event);
 
   const math::PointF& position = input_event->position();
   mouse_event->set_screen_x(static_cast<float>(position.x()));
@@ -164,7 +187,6 @@
 float value_or(float value, float default_value) {
   return std::isnan(value) ? default_value : value;
 }
-
 }  // namespace
 
 void InputDeviceManagerDesktop::HandleKeyboardEvent(
diff --git a/src/cobalt/layout/layout_manager.cc b/src/cobalt/layout/layout_manager.cc
index 8f38f9e..2b48e1f 100644
--- a/src/cobalt/layout/layout_manager.cc
+++ b/src/cobalt/layout/layout_manager.cc
@@ -369,46 +369,33 @@
       are_computed_styles_and_box_tree_dirty_ = false;
     }
 
-    // If no render tree has been produced yet, check if html, head, and
-    // body display should block the first render tree.
-    if (!produced_render_tree_) {
-      bool displayed_html = document->html()->IsDisplayed();
-      if (!displayed_html) {
-        return;
-      }
-      bool displayed_head = true;
-      if (document->head()) {
-        displayed_head = document->head();
-      }
-      bool displayed_body = true;
-      if (document->body()) {
-        displayed_body = document->body();
-      }
-      if (!displayed_head && !displayed_body) {
-        return;
-      }
-    }
+    // If no render tree has been produced yet, check if html display
+    // should prevent the first render tree.
+    bool display_none_prevents_render =
+        !produced_render_tree_ && !document->html()->IsDisplayed();
 
-    scoped_refptr<render_tree::Node> render_tree_root =
-        layout::GenerateRenderTreeFromBoxTree(used_style_provider_.get(),
-                                              layout_stat_tracker_,
-                                              &initial_containing_block_);
-    bool run_on_render_tree_produced_callback = true;
-    produced_render_tree_ = true;
+    if (!document->render_postponed() && !display_none_prevents_render) {
+      scoped_refptr<render_tree::Node> render_tree_root =
+          layout::GenerateRenderTreeFromBoxTree(used_style_provider_.get(),
+                                                layout_stat_tracker_,
+                                                &initial_containing_block_);
+      bool run_on_render_tree_produced_callback = true;
+      produced_render_tree_ = true;
 #if defined(ENABLE_TEST_RUNNER)
-    if (layout_trigger_ == kTestRunnerMode &&
-        window_->test_runner()->should_wait()) {
-      run_on_render_tree_produced_callback = false;
-    }
+      if (layout_trigger_ == kTestRunnerMode &&
+          window_->test_runner()->should_wait()) {
+        run_on_render_tree_produced_callback = false;
+      }
 #endif  // ENABLE_TEST_RUNNER
 
-    if (run_on_render_tree_produced_callback) {
-      on_render_tree_produced_callback_.Run(LayoutResults(
-          render_tree_root, base::TimeDelta::FromMillisecondsD(
-                                *document->timeline()->current_time())));
-    }
+      if (run_on_render_tree_produced_callback) {
+        on_render_tree_produced_callback_.Run(LayoutResults(
+            render_tree_root, base::TimeDelta::FromMillisecondsD(
+                                  *document->timeline()->current_time())));
+      }
 
-    is_render_tree_pending_ = false;
+      is_render_tree_pending_ = false;
+    }
     TRACE_EVENT_END0("cobalt::layout", kBenchmarkStatLayout);
   }
 
diff --git a/src/cobalt/math/matrix3_f.cc b/src/cobalt/math/matrix3_f.cc
index 929340e..4abbe27 100644
--- a/src/cobalt/math/matrix3_f.cc
+++ b/src/cobalt/math/matrix3_f.cc
@@ -273,6 +273,7 @@
   float x = rhs.x() * data_[M00] + rhs.y() * data_[M01] + data_[M02];
   float y = rhs.x() * data_[M10] + rhs.y() * data_[M11] + data_[M12];
   float z = rhs.x() * data_[M20] + rhs.y() * data_[M21] + data_[M22];
+  DCHECK_NE(z, 0.f);
 
   return PointF(x / z, y / z);
 }
diff --git a/src/cobalt/media/base/pipeline.h b/src/cobalt/media/base/pipeline.h
index 1853ae5..fafb88f 100644
--- a/src/cobalt/media/base/pipeline.h
+++ b/src/cobalt/media/base/pipeline.h
@@ -25,6 +25,7 @@
 #include "cobalt/media/base/media_export.h"
 #include "cobalt/media/base/pipeline_status.h"
 #include "cobalt/media/base/ranges.h"
+#include "cobalt/media/base/video_dumper.h"
 #include "starboard/drm.h"
 #include "ui/gfx/rect.h"
 #include "ui/gfx/size.h"
@@ -40,8 +41,6 @@
 typedef void* PipelineWindow;
 #endif  // defined(COBALT_USE_SBPLAYER_PIPELINE)
 
-// #define COBALT_MEDIA_ENABLE_VIDEO_DUMPER 1
-
 namespace cobalt {
 namespace media {
 
diff --git a/src/cobalt/media/base/starboard_player.cc b/src/cobalt/media/base/starboard_player.cc
index 9cf382a..b3e9363 100644
--- a/src/cobalt/media/base/starboard_player.cc
+++ b/src/cobalt/media/base/starboard_player.cc
@@ -14,8 +14,6 @@
 
 #include "cobalt/media/base/starboard_player.h"
 
-#include <algorithm>
-
 #include "base/bind.h"
 #include "base/compiler_specific.h"
 #include "base/debug/trace_event.h"
@@ -387,33 +385,8 @@
   TRACE_EVENT0("cobalt::media", "StarboardPlayer::CreatePlayer");
   DCHECK(message_loop_->BelongsToCurrentThread());
 
-  SbMediaAudioHeader audio_header;
-  // TODO: Make this work with non AAC audio.
-  audio_header.format_tag = 0x00ff;
-  audio_header.number_of_channels =
-      ChannelLayoutToChannelCount(audio_config_.channel_layout());
-  audio_header.samples_per_second = audio_config_.samples_per_second();
-  audio_header.average_bytes_per_second = 1;
-  audio_header.block_alignment = 4;
-  audio_header.bits_per_sample = audio_config_.bits_per_channel();
-#if SB_API_VERSION >= SB_AUDIO_SPECIFIC_CONFIG_AS_POINTER
-  audio_header.audio_specific_config_size =
-      static_cast<uint16_t>(audio_config_.extra_data().size());
-  if (audio_header.audio_specific_config_size == 0) {
-    audio_header.audio_specific_config = NULL;
-  } else {
-    audio_header.audio_specific_config = &audio_config_.extra_data()[0];
-  }
-#else   // SB_API_VERSION >= SB_AUDIO_SPECIFIC_CONFIG_AS_POINTER
-  audio_header.audio_specific_config_size = static_cast<uint16_t>(
-      std::min(audio_config_.extra_data().size(),
-               sizeof(audio_header.audio_specific_config)));
-  if (audio_header.audio_specific_config_size > 0) {
-    SbMemoryCopy(audio_header.audio_specific_config,
-                 &audio_config_.extra_data()[0],
-                 audio_header.audio_specific_config_size);
-  }
-#endif  // SB_API_VERSION >= SB_AUDIO_SPECIFIC_CONFIG_AS_POINTER
+  SbMediaAudioHeader audio_header =
+      MediaAudioConfigToSbMediaAudioHeader(audio_config_);
 
   SbMediaAudioCodec audio_codec =
       MediaAudioCodecToSbMediaAudioCodec(audio_config_.codec());
diff --git a/src/cobalt/media/base/starboard_utils.cc b/src/cobalt/media/base/starboard_utils.cc
index bc6905a..f184538 100644
--- a/src/cobalt/media/base/starboard_utils.cc
+++ b/src/cobalt/media/base/starboard_utils.cc
@@ -14,6 +14,8 @@
 
 #include "cobalt/media/base/starboard_utils.h"
 
+#include <algorithm>
+
 #include "base/logging.h"
 #include "starboard/memory.h"
 
@@ -53,6 +55,41 @@
   return kSbMediaVideoCodecNone;
 }
 
+SbMediaAudioHeader MediaAudioConfigToSbMediaAudioHeader(
+    const AudioDecoderConfig& audio_decoder_config) {
+  SbMediaAudioHeader audio_header;
+
+  // TODO: Make this work with non AAC audio.
+  audio_header.format_tag = 0x00ff;
+  audio_header.number_of_channels =
+      ChannelLayoutToChannelCount(audio_decoder_config.channel_layout());
+  audio_header.samples_per_second = audio_decoder_config.samples_per_second();
+  audio_header.average_bytes_per_second = 1;
+  audio_header.block_alignment = 4;
+  audio_header.bits_per_sample = audio_decoder_config.bits_per_channel();
+
+#if SB_API_VERSION >= SB_AUDIO_SPECIFIC_CONFIG_AS_POINTER
+  audio_header.audio_specific_config_size =
+      static_cast<uint16_t>(audio_decoder_config.extra_data().size());
+  if (audio_header.audio_specific_config_size == 0) {
+    audio_header.audio_specific_config = NULL;
+  } else {
+    audio_header.audio_specific_config = &audio_decoder_config.extra_data()[0];
+  }
+#else   // SB_API_VERSION >= SB_AUDIO_SPECIFIC_CONFIG_AS_POINTER
+  audio_header.audio_specific_config_size = static_cast<uint16_t>(
+      std::min(audio_decoder_config.extra_data().size(),
+               sizeof(audio_header.audio_specific_config)));
+  if (audio_header.audio_specific_config_size > 0) {
+    SbMemoryCopy(audio_header.audio_specific_config,
+                 &audio_decoder_config.extra_data()[0],
+                 audio_header.audio_specific_config_size);
+  }
+#endif  // SB_API_VERSION >= SB_AUDIO_SPECIFIC_CONFIG_AS_POINTER
+
+  return audio_header;
+}
+
 TimeDelta SbMediaTimeToTimeDelta(SbMediaTime timestamp) {
   return TimeDelta::FromMicroseconds(timestamp * Time::kMicrosecondsPerSecond /
                                      kSbMediaTimeSecond);
diff --git a/src/cobalt/media/base/starboard_utils.h b/src/cobalt/media/base/starboard_utils.h
index 04196b5..aa13513 100644
--- a/src/cobalt/media/base/starboard_utils.h
+++ b/src/cobalt/media/base/starboard_utils.h
@@ -29,6 +29,9 @@
 SbMediaAudioCodec MediaAudioCodecToSbMediaAudioCodec(AudioCodec codec);
 SbMediaVideoCodec MediaVideoCodecToSbMediaVideoCodec(VideoCodec codec);
 
+SbMediaAudioHeader MediaAudioConfigToSbMediaAudioHeader(
+    const AudioDecoderConfig& audio_decoder_config);
+
 base::TimeDelta SbMediaTimeToTimeDelta(SbMediaTime timestamp);
 SbMediaTime TimeDeltaToSbMediaTime(base::TimeDelta timedelta);
 
diff --git a/src/cobalt/media/base/video_dmp_reader.cc b/src/cobalt/media/base/video_dmp_reader.cc
new file mode 100644
index 0000000..2566b74
--- /dev/null
+++ b/src/cobalt/media/base/video_dmp_reader.cc
@@ -0,0 +1,139 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file is deliberately not using any Cobalt/Starboard specific API so it
+// can be used in an independent application.
+#include "cobalt/media/base/video_dmp_reader.h"
+
+#include <algorithm>
+
+namespace {
+
+template <typename T>
+bool ReadUnchecked(VideoDmpReader* reader, bool reverse_byte_order, T* value) {
+  if (!value) {
+    reader->ReportFatalError();
+    return false;
+  }
+
+  int bytes_to_read = static_cast<int>(sizeof(*value));
+  int bytes_read = reader->Read(value, bytes_to_read);
+
+  if (reverse_byte_order) {
+    std::reverse(reinterpret_cast<uint8_t*>(value),
+                 reinterpret_cast<uint8_t*>(value + 1));
+  }
+
+  return bytes_to_read == bytes_read;
+}
+template <typename T>
+void ReadChecked(VideoDmpReader* reader, bool reverse_byte_order, T* value) {
+  if (!ReadUnchecked(reader, reverse_byte_order, value)) {
+    reader->ReportFatalError();
+  }
+}
+void ReadChecked(VideoDmpReader* reader, bool reverse_byte_order,
+                 std::vector<uint8_t>* value) {
+  if (!value) {
+    reader->ReportFatalError();
+  }
+
+  uint32_t size;
+  ReadChecked(reader, reverse_byte_order, &size);
+
+  value->resize(size);
+
+  if (size == 0) {
+    return;
+  }
+
+  int bytes_read = reader->Read(value->data(), size);
+  if (bytes_read != size) {
+    reader->ReportFatalError();
+  }
+}
+
+VideoDmpReader::AccessUnit ReadAccessUnitChecked(
+    VideoDmpReader* reader, bool reverse_byte_order,
+    VideoDmpReader::AccessUnitType access_unit_type) {
+  int64_t timestamp;
+  ReadChecked(reader, reverse_byte_order, &timestamp);
+
+  std::vector<uint8_t> key_id, iv;
+  ReadChecked(reader, reverse_byte_order, &key_id);
+  ReadChecked(reader, reverse_byte_order, &iv);
+
+  uint32_t subsample_count;
+  ReadChecked(reader, reverse_byte_order, &subsample_count);
+
+  VideoDmpReader::Subsamples subsamples(subsample_count);
+  for (auto& subsample : subsamples) {
+    ReadChecked(reader, reverse_byte_order, &subsample.clear_bytes);
+    ReadChecked(reader, reverse_byte_order, &subsample.encrypted_bytes);
+  }
+
+  std::vector<uint8_t> data;
+  ReadChecked(reader, reverse_byte_order, &data);
+
+  return VideoDmpReader::AccessUnit(access_unit_type, timestamp, key_id, iv,
+                                    subsamples, std::move(data));
+}
+
+}  // namespace
+
+void VideoDmpReader::Parse() {
+  reverse_byte_order_ = false;
+  uint32_t bom;
+  ReadChecked(this, reverse_byte_order_, &bom);
+  if (bom != kBOM) {
+    std::reverse(reinterpret_cast<uint8_t*>(&bom),
+                 reinterpret_cast<uint8_t*>(&bom + 1));
+    if (bom != kBOM) {
+      ReportFatalError();
+      return;
+    }
+    reverse_byte_order_ = true;
+  }
+  uint32_t type;
+  EmeInitData eme_init_data;
+  while (ReadUnchecked(this, reverse_byte_order_, &type)) {
+    uint32_t size;
+    switch (type) {
+      case kRecordTypeAudioConfig:
+        ReadChecked(this, reverse_byte_order_, &size);
+        if (size != 0) {
+          ReportFatalError();
+        }
+        break;
+      case kRecordTypeVideoConfig:
+        ReadChecked(this, reverse_byte_order_, &size);
+        if (size != 0) {
+          ReportFatalError();
+        }
+        break;
+      case kRecordTypeEmeInitData:
+        ReadChecked(this, reverse_byte_order_, &eme_init_data);
+        eme_init_datas_.push_back(eme_init_data);
+        break;
+      case kRecordTypeAudioAccessUnit:
+        access_units_.push_back(ReadAccessUnitChecked(this, reverse_byte_order_,
+                                                      kAccessUnitTypeAudio));
+        break;
+      case kRecordTypeVideoAccessUnit:
+        access_units_.push_back(ReadAccessUnitChecked(this, reverse_byte_order_,
+                                                      kAccessUnitTypeVideo));
+        break;
+    }
+  }
+}
diff --git a/src/cobalt/media/base/video_dmp_reader.h b/src/cobalt/media/base/video_dmp_reader.h
index 51c9f14..6cd4486 100644
--- a/src/cobalt/media/base/video_dmp_reader.h
+++ b/src/cobalt/media/base/video_dmp_reader.h
@@ -12,22 +12,42 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef COBALT_MEDIA_BASE_VIDEO_DMP_READER_H_
-#define COBALT_MEDIA_BASE_VIDEO_DMP_READER_H_
+// TODO: Move this into Starboard
 
 // This file is deliberately not using any Cobalt/Starboard specific API so it
 // can be used in an independent application.
+#ifndef COBALT_MEDIA_BASE_VIDEO_DMP_READER_H_
+#define COBALT_MEDIA_BASE_VIDEO_DMP_READER_H_
 
-#include <algorithm>
 #include <string>
 #include <vector>
 
 // File: <BOM> <Record>*
 //   BOM: 0x76543210
-//   Record: <4 bytes type> + <4 bytes size> + <|size| bytes binary data>
-//     type: 0: audio config, 1: video config, 2: eme init data,
-//           3: audio access unit, 4: video access unit.
+//   Record: <4 bytes fourcc type> + <4 bytes size> + <|size| bytes binary data>
+//
+//     audio config:
+//       fourcc type: 'acfg'
+//       2 bytes audio codec type in SbMediaAudioCodec
+//       2 bytes format_tag
+//       2 bytes number_of_channels
+//       4 bytes samples_per_second
+//       4 bytes average_bytes_per_second
+//       2 bytes block_alignment
+//       2 bytes bits_per_sample
+//       2 bytes audio_specific_config_size
+//       |audio_specific_config_size| bytes audio specific config
+//
+//     video config:
+//       fourcc type: 'vcfg'
+//       2 bytes video codec type in SbMediaVideoCodec
+//
+//     eme init data
+//       fourcc type: 'emei'
+//       4 bytes size
+//         |size| bytes eme init data
 //     audio/video access unit;
+//       fourcc type: 'adat'/'vdat'
 //       <8 bytes time stamp in microseconds>
 //       <4 bytes size of key_id> + |size| bytes of key id
 //       <4 bytes size of iv> + |size| bytes of iv
@@ -38,11 +58,11 @@
 class VideoDmpReader {
  public:
   enum {
-    kRecordTypeAudioConfig,
-    kRecordTypeVideoConfig,
-    kRecordTypeEmeInitData,
-    kRecordTypeAudioAccessUnit,
-    kRecordTypeVideoAccessUnit,
+    kRecordTypeAudioConfig = 'acfg',
+    kRecordTypeVideoConfig = 'vcfg',
+    kRecordTypeEmeInitData = 'emei',
+    kRecordTypeAudioAccessUnit = 'adat',
+    kRecordTypeVideoAccessUnit = 'vdat',
   };
 
   enum AccessUnitType { kAccessUnitTypeAudio, kAccessUnitTypeVideo };
@@ -98,119 +118,9 @@
   }
   const std::vector<AccessUnit>& access_units() const { return access_units_; }
 
-  void Parse() {
-    uint32_t bom;
-    ReadChecked(&bom);
-    if (bom != kBOM) {
-      std::reverse(reinterpret_cast<uint8_t*>(&bom),
-                   reinterpret_cast<uint8_t*>(&bom + 1));
-      if (bom != kBOM) {
-        ReportFatalError();
-        return;
-      }
-      reverse_byte_order_ = true;
-    }
-    uint32_t type;
-    EmeInitData eme_init_data;
-    while (ReadUnchecked(&type)) {
-      uint32_t size;
-      switch (type) {
-        case kRecordTypeAudioConfig:
-          ReadChecked(&size);
-          if (size != 0) {
-            ReportFatalError();
-          }
-          break;
-        case kRecordTypeVideoConfig:
-          ReadChecked(&size);
-          if (size != 0) {
-            ReportFatalError();
-          }
-          break;
-        case kRecordTypeEmeInitData:
-          ReadChecked(&eme_init_data);
-          eme_init_datas_.push_back(eme_init_data);
-          break;
-        case kRecordTypeAudioAccessUnit:
-          ReadChecked(&size);
-          ReadAndAppendAccessUnitChecked(kAccessUnitTypeAudio);
-          break;
-        case kRecordTypeVideoAccessUnit:
-          ReadChecked(&size);
-          ReadAndAppendAccessUnitChecked(kAccessUnitTypeVideo);
-          break;
-      }
-    }
-  }
+  void Parse();
 
  private:
-  void ReadAndAppendAccessUnitChecked(AccessUnitType access_unit_type) {
-    int64_t timestamp;
-    ReadChecked(&timestamp);
-
-    std::vector<uint8_t> key_id, iv;
-    ReadChecked(&key_id);
-    ReadChecked(&iv);
-
-    uint32_t subsample_count;
-    ReadChecked(&subsample_count);
-
-    Subsamples subsamples(subsample_count);
-    for (auto& subsample : subsamples) {
-      ReadChecked(&subsample.clear_bytes);
-      ReadChecked(&subsample.encrypted_bytes);
-    }
-
-    std::vector<uint8_t> data;
-    ReadChecked(&data);
-
-    access_units_.emplace_back(access_unit_type, timestamp, key_id, iv,
-                               subsamples, std::move(data));
-  }
-
-  template <typename T>
-  bool ReadUnchecked(T* value) {
-    if (!value) {
-      ReportFatalError();
-      return false;
-    }
-
-    int bytes_to_read = static_cast<int>(sizeof(*value));
-    int bytes_read = Read(value, bytes_to_read);
-
-    if (reverse_byte_order_) {
-      std::reverse(reinterpret_cast<uint8_t*>(value),
-                   reinterpret_cast<uint8_t*>(value + 1));
-    }
-
-    return bytes_to_read == bytes_read;
-  }
-  template <typename T>
-  void ReadChecked(T* value) {
-    if (!ReadUnchecked(value)) {
-      ReportFatalError();
-    }
-  }
-  void ReadChecked(std::vector<uint8_t>* value) {
-    if (!value) {
-      ReportFatalError();
-    }
-
-    uint32_t size;
-    ReadChecked(&size);
-
-    value->resize(size);
-
-    if (size == 0) {
-      return;
-    }
-
-    int bytes_read = Read(value->data(), size);
-    if (bytes_read != size) {
-      ReportFatalError();
-    }
-  }
-
   bool reverse_byte_order_;
   std::vector<EmeInitData> eme_init_datas_;
   std::vector<AccessUnit> access_units_;
diff --git a/src/cobalt/media/base/video_dumper.cc b/src/cobalt/media/base/video_dumper.cc
new file mode 100644
index 0000000..694f722
--- /dev/null
+++ b/src/cobalt/media/base/video_dumper.cc
@@ -0,0 +1,134 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "cobalt/media/base/video_dumper.h"
+
+#if COBALT_MEDIA_ENABLE_VIDEO_DUMPER
+
+#include "cobalt/media/base/demuxer_stream.h"
+#include "cobalt/media/base/starboard_utils.h"
+
+namespace cobalt {
+namespace media {
+
+namespace {
+
+template <typename T>
+void Write(SbFile file, const T& value) {
+  int bytes_to_write = static_cast<int>(sizeof(value));
+  int bytes_written =
+      SbFileWrite(file, reinterpret_cast<const char*>(&value), bytes_to_write);
+  DCHECK_EQ(bytes_to_write, bytes_written);
+}
+
+void Write(SbFile file, const void* buffer, size_t size) {
+  Write(file, reinterpret_cast<const char*>(buffer), size);
+}
+
+}  // namespace
+
+VideoDumper::VideoDumper(const char* file_name) {
+  bool created = false;
+  file_ =
+      SbFileOpen(file_name, kSbFileCreateAlways | kSbFileWrite, &created, NULL);
+  DCHECK(created);
+  DCHECK(SbFileIsValid(file_));
+
+  // Using a local variable to avoid addressing a constant which may cause
+  // link error.
+  uint32 bom = VideoDmpReader::kBOM;
+  Write<uint32>(file_, bom);
+}
+
+VideoDumper::~VideoDumper() { SbFileClose(file_); }
+
+void VideoDumper::DumpEmeInitData(
+    const std::vector<EmeInitData>& eme_init_datas) {
+  for (auto& eme_init_data : eme_init_datas) {
+    if (eme_init_data.empty()) {
+      continue;
+    }
+    Write<uint32>(file_, VideoDmpReader::kRecordTypeEmeInitData);
+    // EME init data size
+    Write<uint32>(file_, static_cast<uint32>(eme_init_data.size()));
+    Write(file_, eme_init_data.data(), eme_init_data.size());
+  }
+}
+
+void VideoDumper::DumpConfigs(const AudioDecoderConfig& audio_config,
+                              const VideoDecoderConfig& video_config) {
+  // Temporarily write empty audio/video configs
+  Write<uint32>(file_, VideoDmpReader::kRecordTypeAudioConfig);
+  Write<uint16_t>(file_,
+                  MediaAudioCodecToSbMediaAudioCodec(audio_config.codec()));
+  SbMediaAudioHeader audio_header =
+      MediaAudioConfigToSbMediaAudioHeader(audio_config);
+  Write<uint16_t>(file_, audio_header.format_tag);
+  Write<uint16_t>(file_, audio_header.number_of_channels);
+  Write<uint32_t>(file_, audio_header.samples_per_second);
+  Write<uint32_t>(file_, audio_header.average_bytes_per_second);
+  Write<uint16_t>(file_, audio_header.block_alignment);
+  Write<uint16_t>(file_, audio_header.bits_per_sample);
+  Write<uint16_t>(file_, audio_header.audio_specific_config_size);
+  Write(file_, audio_header.audio_specific_config,
+        audio_header.audio_specific_config_size);
+
+  Write<uint32>(file_, VideoDmpReader::kRecordTypeVideoConfig);
+  Write<uint16_t>(file_,
+                  MediaVideoCodecToSbMediaVideoCodec(video_config.codec()));
+}
+
+void VideoDumper::DumpAccessUnit(const scoped_refptr<DecoderBuffer>& buffer) {
+  DCHECK_EQ(buffer->allocations().number_of_buffers(), 1);
+
+  uint32 dump_type;
+  if (buffer->type() == DemuxerStream::AUDIO) {
+    dump_type = VideoDmpReader::kRecordTypeAudioAccessUnit;
+  } else if (buffer->type() == DemuxerStream::VIDEO) {
+    dump_type = VideoDmpReader::kRecordTypeVideoAccessUnit;
+  } else {
+    NOTREACHED() << buffer->type();
+  }
+  Write(file_, dump_type);
+
+  const DecryptConfig* decrypt_config = buffer->decrypt_config();
+  if (decrypt_config && decrypt_config->key_id().size() == 16 &&
+      decrypt_config->iv().size() == 16) {
+    Write(file_, buffer->timestamp().InMicroseconds());
+    Write<uint32>(file_, decrypt_config->key_id().size());  // key_id size
+    Write(file_, &decrypt_config->key_id()[0], decrypt_config->key_id().size());
+    Write<uint32>(file_, decrypt_config->iv().size());  // iv size
+    Write(file_, &decrypt_config->iv()[0], decrypt_config->iv().size());
+    // subsample count
+    Write<uint32>(file_, decrypt_config->subsamples().size());
+    for (size_t i = 0; i < decrypt_config->subsamples().size(); ++i) {
+      Write<uint32>(file_, decrypt_config->subsamples()[i].clear_bytes);
+      Write<uint32>(file_, decrypt_config->subsamples()[i].cypher_bytes);
+    }
+    Write<uint32>(file_, static_cast<uint32>(buffer->data_size()));
+    Write(file_, buffer->allocations().buffers()[0], buffer->data_size());
+  } else {
+    Write(file_, buffer->timestamp().InMicroseconds());
+    Write<uint32>(file_, 0);  // key_id size
+    Write<uint32>(file_, 0);  // iv size
+    Write<uint32>(file_, 0);  // subsample count
+    Write<uint32>(file_, static_cast<uint32>(buffer->data_size()));
+    Write(file_, buffer->allocations().buffers()[0], buffer->data_size());
+  }
+}
+
+}  // namespace media
+}  // namespace cobalt
+
+#endif  // COBALT_MEDIA_ENABLE_VIDEO_DUMPER
diff --git a/src/cobalt/media/base/video_dumper.h b/src/cobalt/media/base/video_dumper.h
index c547989..e5c49e1 100644
--- a/src/cobalt/media/base/video_dumper.h
+++ b/src/cobalt/media/base/video_dumper.h
@@ -15,12 +15,13 @@
 #ifndef COBALT_MEDIA_BASE_VIDEO_DUMPER_H_
 #define COBALT_MEDIA_BASE_VIDEO_DUMPER_H_
 
+// #define COBALT_MEDIA_ENABLE_VIDEO_DUMPER 1
+
 #include <string>
 #include <vector>
 
 #include "cobalt/media/base/audio_decoder_config.h"
 #include "cobalt/media/base/decoder_buffer.h"
-#include "cobalt/media/base/demuxer_stream.h"
 #include "cobalt/media/base/video_decoder_config.h"
 #include "cobalt/media/base/video_dmp_reader.h"
 #include "starboard/file.h"
@@ -36,118 +37,15 @@
  public:
   typedef VideoDmpReader::EmeInitData EmeInitData;
 
-  explicit VideoDumper(const char* file_name) {
-    bool created = false;
-    file_ = SbFileOpen(file_name, kSbFileCreateAlways | kSbFileWrite, &created,
-                       NULL);
-    DCHECK(created);
-    DCHECK(SbFileIsValid(file_));
+  explicit VideoDumper(const char* file_name);
+  ~VideoDumper();
 
-    // Using a local variable to avoid addressing a constant which may cause
-    // link error.
-    uint32 bom = VideoDmpReader::kBOM;
-    Write<uint32>(bom);
-  }
-
-  ~VideoDumper() { SbFileClose(file_); }
-
-  void DumpEmeInitData(const std::vector<EmeInitData>& eme_init_datas) {
-    for (auto& eme_init_data : eme_init_datas) {
-      if (eme_init_data.empty()) {
-        continue;
-      }
-      Write<uint32>(VideoDmpReader::kRecordTypeEmeInitData);
-      // EME init data size
-      Write<uint32>(static_cast<uint32>(eme_init_data.size()));
-      Write(eme_init_data.data(), eme_init_data.size());
-    }
-  }
-
+  void DumpEmeInitData(const std::vector<EmeInitData>& eme_init_datas);
   void DumpConfigs(const AudioDecoderConfig& audio_config,
-                   const VideoDecoderConfig& video_config) {
-    // Temporarily write empty audio/video configs
-    Write<uint32>(VideoDmpReader::kRecordTypeAudioConfig);
-    Write<uint32>(0);
-    Write<uint32>(VideoDmpReader::kRecordTypeVideoConfig);
-    Write<uint32>(0);
-  }
-
-  void DumpAccessUnit(const scoped_refptr<DecoderBuffer>& buffer) {
-    uint32 dump_type;
-    if (buffer->type() == DemuxerStream::AUDIO) {
-      dump_type = VideoDmpReader::kRecordTypeAudioAccessUnit;
-    } else if (buffer->type() == DemuxerStream::VIDEO) {
-      dump_type = VideoDmpReader::kRecordTypeVideoAccessUnit;
-    } else {
-      NOTREACHED() << buffer->type();
-    }
-    Write(dump_type);
-
-    const DecryptConfig* decrypt_config = buffer->decrypt_config();
-    if (decrypt_config && decrypt_config->key_id().size() == 16 &&
-        decrypt_config->iv().size() == 16) {
-      uint32 record_size =
-          sizeof(int64_t)                                       // timestamp
-          + sizeof(uint32_t)                                    // key_id size
-          + decrypt_config->key_id().size() + sizeof(uint32_t)  // iv size
-          + decrypt_config->iv().size() + sizeof(uint32_t)  // subsample count
-          +
-          sizeof(uint32_t) * 2 *
-              decrypt_config->subsamples().size()  // subsample count
-          + sizeof(uint32_t)                       // size of encoded data
-          + buffer->data_size();
-      Write(static_cast<uint32>(record_size));
-      Write(buffer->timestamp().InMicroseconds());
-      Write<uint32>(decrypt_config->key_id().size());  // key_id size
-      Write(&decrypt_config->key_id()[0], decrypt_config->key_id().size());
-      Write<uint32>(decrypt_config->iv().size());  // iv size
-      Write(&decrypt_config->iv()[0], decrypt_config->iv().size());
-      // subsample count
-      Write<uint32>(decrypt_config->subsamples().size());
-      for (size_t i = 0; i < decrypt_config->subsamples().size(); ++i) {
-        Write<uint32>(decrypt_config->subsamples()[i].clear_bytes);
-        Write<uint32>(decrypt_config->subsamples()[i].cypher_bytes);
-      }
-      Write<uint32>(static_cast<uint32>(buffer->data_size()));
-      Write(buffer->data(), buffer->data_size());
-    } else {
-      size_t record_size = sizeof(int64_t)     // timestamp
-                           + sizeof(uint32_t)  // key_id size
-                           + sizeof(uint32_t)  // iv size
-                           + sizeof(uint32_t)  // subsample count
-                           + sizeof(uint32_t)  // size of encoded data
-                           + buffer->data_size();
-      Write(static_cast<uint32>(record_size));
-      Write(buffer->timestamp().InMicroseconds());
-      Write<uint32>(0);  // key_id size
-      Write<uint32>(0);  // iv size
-      Write<uint32>(0);  // subsample count
-      Write<uint32>(static_cast<uint32>(buffer->data_size()));
-      Write(buffer->data(), buffer->data_size());
-    }
-  }
+                   const VideoDecoderConfig& video_config);
+  void DumpAccessUnit(const scoped_refptr<DecoderBuffer>& buffer);
 
  private:
-  template <typename T>
-  void Write(const T& value) {
-    int bytes_to_write = static_cast<int>(sizeof(value));
-    int bytes_written = SbFileWrite(
-        file_, reinterpret_cast<const char*>(&value), bytes_to_write);
-    DCHECK_EQ(bytes_to_write, bytes_written);
-  }
-
-  void Write(const char* buffer, size_t size) {
-    if (size == 0) {
-      return;
-    }
-    int bytes_written = SbFileWrite(file_, buffer, static_cast<int>(size));
-    DCHECK_EQ(static_cast<int>(size), bytes_written);
-  }
-
-  void Write(const uint8_t* buffer, size_t size) {
-    Write(reinterpret_cast<const char*>(buffer), size);
-  }
-
   SbFile file_;
 };
 
diff --git a/src/cobalt/media/media2.gyp b/src/cobalt/media/media2.gyp
index 60905ad..3530256 100644
--- a/src/cobalt/media/media2.gyp
+++ b/src/cobalt/media/media2.gyp
@@ -108,6 +108,10 @@
         'base/video_codecs.h',
         'base/video_decoder_config.cc',
         'base/video_decoder_config.h',
+        'base/video_dmp_reader.cc',
+        'base/video_dmp_reader.h',
+        'base/video_dumper.cc',
+        'base/video_dumper.h',
         'base/video_util.cc',
         'base/video_util.h',
         'filters/chunk_demuxer.cc',
diff --git a/src/cobalt/render_tree/border.h b/src/cobalt/render_tree/border.h
index 9b72706..a47646e 100644
--- a/src/cobalt/render_tree/border.h
+++ b/src/cobalt/render_tree/border.h
@@ -32,7 +32,7 @@
 
 // Style properties for one of four sides of a border around a rectangle.
 struct BorderSide {
-  explicit BorderSide(const BorderSide& that);
+  BorderSide(const BorderSide& that);
   BorderSide(float width, BorderStyle style, const ColorRGBA& color);
 
   bool operator==(const BorderSide& rhs) const {
diff --git a/src/cobalt/render_tree/composition_node.h b/src/cobalt/render_tree/composition_node.h
index d39da3f..92a54ec 100644
--- a/src/cobalt/render_tree/composition_node.h
+++ b/src/cobalt/render_tree/composition_node.h
@@ -66,7 +66,7 @@
     Builder() {}
     explicit Builder(const math::Vector2dF& offset) : offset_(offset) {}
 
-    explicit Builder(const Builder& other)
+    Builder(const Builder& other)
         : offset_(other.offset_), children_(other.children_) {}
     explicit Builder(Moved moved) : offset_(moved->offset_) {
       children_.swap(moved->children_);
diff --git a/src/cobalt/renderer/rasterizer/lib/exported/graphics.h b/src/cobalt/renderer/rasterizer/lib/exported/graphics.h
index 69e2125..0163934 100644
--- a/src/cobalt/renderer/rasterizer/lib/exported/graphics.h
+++ b/src/cobalt/renderer/rasterizer/lib/exported/graphics.h
@@ -45,6 +45,11 @@
 SB_EXPORT_PLATFORM void CbLibGraphicsSetBeginRenderFrameCallback(
     void* context, CbLibGraphicsBeginRenderFrameCallback callback);
 
+// Sets a callback which will be called at the end of rendering, after swap
+// buffers has been called.
+SB_EXPORT_PLATFORM void CbLibGraphicsSetEndRenderFrameCallback(
+    void* context, CbLibGraphicsEndRenderFrameCallback callback);
+
 // Returns the texture ID for the current RenderTree. This should be
 // re-retrieved each frame in the event that the underlying texture has
 // changed. This method will return 0 if there is not yet a valid texture ID.
@@ -54,11 +59,6 @@
 // rasterization thread only.
 SB_EXPORT_PLATFORM intptr_t CbLibGrapicsGetMainTextureHandle();
 
-// Sets a callback which will be called at the end of rendering, after swap
-// buffers has been called.
-SB_EXPORT_PLATFORM void CbLibGraphicsSetEndRenderFrameCallback(
-    void* context, CbLibGraphicsEndRenderFrameCallback callback);
-
 #ifdef __cplusplus
 }  // extern "C"
 #endif
diff --git a/src/cobalt/renderer/rasterizer/lib/external_rasterizer.cc b/src/cobalt/renderer/rasterizer/lib/external_rasterizer.cc
index fb2acaa..1ac6887 100644
--- a/src/cobalt/renderer/rasterizer/lib/external_rasterizer.cc
+++ b/src/cobalt/renderer/rasterizer/lib/external_rasterizer.cc
@@ -219,6 +219,7 @@
 
 ExternalRasterizer::Impl::~Impl() {
   graphics_context_->MakeCurrent();
+  g_external_rasterizer_impl = nullptr;
 }
 
 void ExternalRasterizer::Impl::Submit(
diff --git a/src/cobalt/renderer/rasterizer/skia/hardware_rasterizer.cc b/src/cobalt/renderer/rasterizer/skia/hardware_rasterizer.cc
index 603eb8e..ae6ee6d 100644
--- a/src/cobalt/renderer/rasterizer/skia/hardware_rasterizer.cc
+++ b/src/cobalt/renderer/rasterizer/skia/hardware_rasterizer.cc
@@ -29,6 +29,7 @@
 #include "cobalt/renderer/rasterizer/skia/hardware_resource_provider.h"
 #include "cobalt/renderer/rasterizer/skia/render_tree_node_visitor.h"
 #include "cobalt/renderer/rasterizer/skia/scratch_surface_cache.h"
+#include "cobalt/renderer/rasterizer/skia/shader_preload_tree.h"
 #include "cobalt/renderer/rasterizer/skia/surface_cache_delegate.h"
 #include "cobalt/renderer/rasterizer/skia/vertex_buffer_object.h"
 #include "third_party/glm/glm/gtc/matrix_inverse.hpp"
@@ -139,10 +140,19 @@
   // or not since Skia does not let us pull that information out of the
   // SkCanvas object (which Skia would internally use to get this information).
   base::optional<GrSurfaceOrigin> current_surface_origin_;
+  bool shaders_preloaded_;
 };
 
 namespace {
 
+bool SkiaAllowsShaderPreload() {
+#ifdef SKIA_PRELOAD_SHADERS
+  return true;
+#else
+  return false;
+#endif
+}
+
 SkSurfaceProps GetRenderTargetSurfaceProps() {
   return SkSurfaceProps(SkSurfaceProps::kUseDistanceFieldFonts_Flag,
                         SkSurfaceProps::kLegacyFontHost_InitType);
@@ -542,7 +552,8 @@
                                bool purge_skia_font_caches_on_destruction)
     : graphics_context_(
           base::polymorphic_downcast<backend::GraphicsContextEGL*>(
-              graphics_context)) {
+              graphics_context)),
+      shaders_preloaded_(false) {
   TRACE_EVENT0("cobalt::renderer", "HardwareRasterizer::Impl::Impl()");
 
   DLOG(INFO) << "skia_cache_size_in_bytes: " << skia_cache_size_in_bytes;
@@ -705,7 +716,6 @@
   SkSurface* sk_output_surface =
       CreateSkiaRenderTargetSurface(skia_render_target);
   SkCanvas* canvas = sk_output_surface->getCanvas();
-
   canvas->clear(SkColorSetARGB(0, 0, 0, 0));
 
   // Render to the canvas and clean up.
@@ -825,6 +835,35 @@
   base::optional<GrSurfaceOrigin> old_origin = current_surface_origin_;
   current_surface_origin_.emplace(origin);
 
+  // Generate a shader preload tree. This tree will be constructed
+  // in such as way that no pixels will be modified.
+  if (!shaders_preloaded_ && SkiaAllowsShaderPreload()) {
+    shaders_preloaded_ = true;
+
+    // Create a separate render tree visitor to avoid dirtying the visitor
+    // used for the actual render tree.
+    RenderTreeNodeVisitor::CreateScratchSurfaceFunction
+        create_scratch_surface_function =
+            base::Bind(&HardwareRasterizer::Impl::CreateScratchSurface,
+                       base::Unretained(this));
+    RenderTreeNodeVisitor visitor(
+        canvas, &create_scratch_surface_function,
+        base::Bind(&HardwareRasterizer::Impl::ResetSkiaState,
+                   base::Unretained(this)),
+        base::Bind(&HardwareRasterizer::Impl::RenderTextureEGL,
+                   base::Unretained(this)),
+        base::Bind(&HardwareRasterizer::Impl::RenderTextureWithMeshFilterEGL,
+                   base::Unretained(this)),
+        surface_cache_delegate_ ? &surface_cache_delegate_.value() : NULL,
+        surface_cache_ ? &surface_cache_.value() : NULL);
+
+    scoped_refptr<render_tree::Node> preload_tree =
+        GenerateShaderPreloadTree(GetResourceProvider());
+
+    preload_tree->Accept(&visitor);
+    canvas->clear(SK_ColorTRANSPARENT);
+  }
+
   RenderTreeNodeVisitor::CreateScratchSurfaceFunction
       create_scratch_surface_function =
           base::Bind(&HardwareRasterizer::Impl::CreateScratchSurface,
diff --git a/src/cobalt/renderer/rasterizer/skia/rasterizer.gyp b/src/cobalt/renderer/rasterizer/skia/rasterizer.gyp
index 95bc3e5..1bcefee 100644
--- a/src/cobalt/renderer/rasterizer/skia/rasterizer.gyp
+++ b/src/cobalt/renderer/rasterizer/skia/rasterizer.gyp
@@ -28,6 +28,8 @@
         'hardware_rasterizer.h',
         'hardware_resource_provider.cc',
         'hardware_resource_provider.h',
+        'shader_preload_tree.cc',
+        'shader_preload_tree.h',
         'vertex_buffer_object.cc',
         'vertex_buffer_object.h',
       ],
@@ -42,6 +44,14 @@
         '<(DEPTH)/third_party/ots/ots.gyp:ots',
         '<(DEPTH)/cobalt/renderer/rasterizer/common/common.gyp:common',
       ],
+
+      'conditions': [
+        ['skia_preload_shaders==1', {
+          'defines': [
+            'SKIA_PRELOAD_SHADERS'
+          ],
+        }],
+      ],
     },
   ],
 }
diff --git a/src/cobalt/renderer/rasterizer/skia/shader_preload_tree.cc b/src/cobalt/renderer/rasterizer/skia/shader_preload_tree.cc
new file mode 100644
index 0000000..b5be321
--- /dev/null
+++ b/src/cobalt/renderer/rasterizer/skia/shader_preload_tree.cc
@@ -0,0 +1,288 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "cobalt/renderer/rasterizer/skia/shader_preload_tree.h"
+
+#include <utility>
+#include <vector>
+
+#include "base/memory/ref_counted.h"
+#include "cobalt/math/matrix3_f.h"
+#include "cobalt/math/point_f.h"
+#include "cobalt/math/rect_f.h"
+#include "cobalt/math/vector2d_f.h"
+#include "cobalt/render_tree/border.h"
+#include "cobalt/render_tree/brush.h"
+#include "cobalt/render_tree/color_rgba.h"
+#include "cobalt/render_tree/composition_node.h"
+#include "cobalt/render_tree/filter_node.h"
+#include "cobalt/render_tree/font.h"
+#include "cobalt/render_tree/image_node.h"
+#include "cobalt/render_tree/matrix_transform_node.h"
+#include "cobalt/render_tree/node.h"
+#include "cobalt/render_tree/rect_node.h"
+#include "cobalt/render_tree/rect_shadow_node.h"
+#include "cobalt/render_tree/resource_provider.h"
+#include "cobalt/render_tree/rounded_corners.h"
+#include "cobalt/render_tree/text_node.h"
+#include "cobalt/render_tree/viewport_filter.h"
+#include "cobalt/renderer/rasterizer/skia/glyph_buffer.h"
+#include "nb/thread_local_boolean.h"
+#include "starboard/once.h"
+
+namespace cobalt {
+namespace renderer {
+namespace rasterizer {
+namespace skia {
+
+namespace {
+
+using math::Matrix3F;
+using math::PointF;
+using math::RectF;
+using math::Vector2dF;
+using render_tree::Border;
+using render_tree::BorderSide;
+using render_tree::BorderStyle;
+using render_tree::Brush;
+using render_tree::ColorRGBA;
+using render_tree::ColorStop;
+using render_tree::ColorStopList;
+using render_tree::CompositionNode;
+using render_tree::FilterNode;
+using render_tree::Image;
+using render_tree::ImageData;
+using render_tree::ImageNode;
+using render_tree::kAlphaFormatPremultiplied;
+using render_tree::kBorderStyleSolid;
+using render_tree::kPixelFormatBGRA8;
+using render_tree::kPixelFormatInvalid;
+using render_tree::kPixelFormatRGBA8;
+using render_tree::LinearGradientBrush;
+using render_tree::MatrixTransformNode;
+using render_tree::Node;
+using render_tree::NodeVisitor;
+using render_tree::OpacityFilter;
+using render_tree::PixelFormat;
+using render_tree::RectNode;
+using render_tree::RectShadowNode;
+using render_tree::ResourceProvider;
+using render_tree::RoundedCorner;
+using render_tree::RoundedCorners;
+using render_tree::Shadow;
+using render_tree::SolidColorBrush;
+using render_tree::ViewportFilter;
+
+class NodeGenerator {
+ public:
+  explicit NodeGenerator(ResourceProvider* provider)
+      : resource_provider_(provider), default_rect_(100, 100) {}
+
+  scoped_refptr<Image> CreateImage() {
+    scoped_refptr<Image> img = CreateDummyImage(resource_provider_);
+    return img;
+  }
+
+  ViewportFilter GetViewpointFilterRoundedCorners() {
+    RoundedCorners rounded_corners(50, 50);
+    ViewportFilter viewport_filter(default_rect_, rounded_corners);
+    return viewport_filter;
+  }
+
+  ViewportFilter GetViewpointFilter() {
+    ViewportFilter viewport_filter(default_rect_);
+    return viewport_filter;
+  }
+
+  math::Matrix3F GetMatrix() {
+    math::Matrix3F mat = math::Matrix3F::Identity();
+    mat.SetMatrix(1, 0, 0, 0, 1.34103739f, -0.170518711f, 0, 0, 1);
+    return mat;
+  }
+
+  scoped_refptr<Node> GetImageNodeMatrix() {
+    math::Matrix3F mat = GetMatrix();
+    scoped_refptr<ImageNode> img_node(
+        new ImageNode(CreateImage(), default_rect_, mat));
+    return img_node;
+  }
+
+  scoped_ptr<Brush> GetSolidColorBrush() {
+    scoped_ptr<SolidColorBrush> brush(
+        new SolidColorBrush(ColorRGBA(1, 1, 1, 1)));
+    return brush.PassAs<Brush>();
+  }
+
+  scoped_ptr<RoundedCorners> GetRoundedCorners() {
+    scoped_ptr<RoundedCorners> rounded_corners(new RoundedCorners(50, 50));
+    return rounded_corners.Pass();
+  }
+
+  scoped_refptr<Node> RectSolidColorBrush() {
+    scoped_refptr<Node> rect_node(
+        new RectNode(default_rect_, GetSolidColorBrush(),
+                     scoped_ptr<Border>(nullptr), GetRoundedCorners()));
+    return rect_node;
+  }
+
+  BorderSide GetSolidStyleBorderSide() {
+    return BorderSide(11.0f, kBorderStyleSolid, ColorRGBA(1, 1, 1, 1));
+  }
+
+  scoped_refptr<Node> RectSolidBorderWithRoundedCorners() {
+    BorderSide side = GetSolidStyleBorderSide();
+    scoped_ptr<Border> border(new Border(side, side, side, side));
+
+    scoped_refptr<Node> rect_node(
+        new RectNode(default_rect_, scoped_ptr<Brush>(nullptr), border.Pass(),
+                     GetRoundedCorners()));
+    return rect_node;
+  }
+
+  scoped_refptr<Node> GetDoubleFilteredImageNode() {
+    math::Matrix3F mat = GetMatrix();
+
+    scoped_refptr<Node> filt_inner(
+        new FilterNode(GetViewpointFilterRoundedCorners(),
+                       new ImageNode(CreateImage(), default_rect_, mat)));
+
+    OpacityFilter opacity(0.05f);
+    scoped_refptr<Node> filt_outer(new FilterNode(opacity, filt_inner));
+    return filt_outer;
+  }
+
+  scoped_refptr<Node> GetViewpointFilteredImageNode() {
+    math::Matrix3F mat = math::Matrix3F::Identity();
+    scoped_refptr<Node> source(
+        new FilterNode(GetViewpointFilterRoundedCorners(),
+                       new ImageNode(CreateImage(), default_rect_, mat)));
+
+    return new MatrixTransformNode(source, mat);
+  }
+
+  scoped_refptr<Node> GetRectShadowNodeWithInsetRoundedCorners() {
+    const float spread = 3.95f;
+    const bool inset = true;
+    const float blur_sigma = 5.91f;
+    Shadow shadow(math::Vector2dF(1.95f, 1.95f), blur_sigma,
+                  ColorRGBA(0, 0, 0, 1));
+    RectShadowNode::Builder rect_shadow_node_builder(default_rect_, shadow,
+                                                     inset, spread);
+
+    rect_shadow_node_builder.rounded_corners = RoundedCorners(50, 50);
+
+    scoped_refptr<Node> shadow_node(
+        new RectShadowNode(rect_shadow_node_builder));
+    return shadow_node;
+  }
+
+  scoped_refptr<Node> GetRectShadowNodeWithInset() {
+    const float spread = 3.95f;
+    const bool inset = true;
+    const float blur_sigma = 5.91f;
+    Shadow shadow(math::Vector2dF(1.95f, 1.95f), blur_sigma,
+                  ColorRGBA(0, 0, 0, 1));
+    RectShadowNode::Builder rect_shadow_node_builder(default_rect_, shadow,
+                                                     inset, spread);
+
+    scoped_refptr<Node> shadow_node(
+        new RectShadowNode(rect_shadow_node_builder));
+    return shadow_node;
+  }
+
+  scoped_refptr<Node> GetRectShadowNodeWithoutInset() {
+    const float spread = 3.95f;
+    const bool inset = false;
+    const float blur_sigma = 5.91f;
+    Shadow shadow(math::Vector2dF(1.95f, 1.95f), blur_sigma,
+                  ColorRGBA(0, 0, 0, 1));
+    RectShadowNode::Builder rect_shadow_node_builder(default_rect_, shadow,
+                                                     inset, spread);
+
+    scoped_refptr<Node> shadow_node(
+        new RectShadowNode(rect_shadow_node_builder));
+    return shadow_node;
+  }
+
+  scoped_refptr<Node> RectNodeLinearGradientOpacity() {
+    math::PointF a(0.0f, 0.0f);
+    math::PointF b(0.0f, 383.40f);
+
+    OpacityFilter opacity(0.06f);
+
+    ColorStopList color_list;
+    color_list.push_back(ColorStop(0, ColorRGBA(0, 0, 0, 0.74902f)));
+    color_list.push_back(ColorStop(1, ColorRGBA(0, 0, 0, 0)));
+
+    scoped_refptr<RectNode> rect_node(new RectNode(
+        default_rect_,
+        scoped_ptr<Brush>(new LinearGradientBrush(a, b, color_list))));
+
+    scoped_refptr<render_tree::Node> node(new FilterNode(opacity, rect_node));
+    return node;
+  }
+
+ private:
+  scoped_refptr<Image> CreateDummyImage(ResourceProvider* resource_provider) {
+    // Initialize the image data and store a predictable, testable pattern
+    // of image data into it.
+    math::Size image_size(16, 16);
+
+    PixelFormat pixel_format = kPixelFormatInvalid;
+    if (resource_provider->PixelFormatSupported(kPixelFormatRGBA8)) {
+      pixel_format = kPixelFormatRGBA8;
+    } else if (resource_provider->PixelFormatSupported(kPixelFormatBGRA8)) {
+      pixel_format = kPixelFormatBGRA8;
+    } else {
+      NOTREACHED() << "Unsupported pixel format.";
+    }
+
+    scoped_ptr<ImageData> image_data = resource_provider->AllocateImageData(
+        image_size, pixel_format, kAlphaFormatPremultiplied);
+
+    // Write 128 for every pixel component.
+    memset(image_data->GetMemory(), 128, image_size.GetArea() * 4);
+
+    // Create and return the new image.
+    return resource_provider->CreateImage(image_data.Pass());
+  }
+
+  ResourceProvider* resource_provider_;
+  RectF default_rect_;
+};
+}  // namespace.
+
+// Generates a tree which includes common shaders that skia will generate
+// and use.
+scoped_refptr<Node> GenerateShaderPreloadTree(
+    ResourceProvider* resource_provider) {
+  NodeGenerator generator(resource_provider);
+  CompositionNode::Builder builder;
+  builder.AddChild(generator.RectNodeLinearGradientOpacity());
+  builder.AddChild(generator.GetImageNodeMatrix());
+  builder.AddChild(generator.RectSolidColorBrush());
+  builder.AddChild(generator.RectSolidBorderWithRoundedCorners());
+  builder.AddChild(generator.GetRectShadowNodeWithInset());
+  builder.AddChild(generator.GetRectShadowNodeWithoutInset());
+  builder.AddChild(generator.GetRectShadowNodeWithInsetRoundedCorners());
+  builder.AddChild(generator.GetDoubleFilteredImageNode());
+  builder.AddChild(generator.GetViewpointFilteredImageNode());
+  scoped_refptr<Node> composite_node(new CompositionNode(builder.Pass()));
+  return composite_node;
+}
+
+}  // namespace skia
+}  // namespace rasterizer
+}  // namespace renderer
+}  // namespace cobalt
diff --git a/src/cobalt/renderer/rasterizer/skia/shader_preload_tree.h b/src/cobalt/renderer/rasterizer/skia/shader_preload_tree.h
new file mode 100644
index 0000000..ccc77ad
--- /dev/null
+++ b/src/cobalt/renderer/rasterizer/skia/shader_preload_tree.h
@@ -0,0 +1,38 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef COBALT_RENDERER_RASTERIZER_SKIA_SHADER_PRELOAD_TREE_H_
+#define COBALT_RENDERER_RASTERIZER_SKIA_SHADER_PRELOAD_TREE_H_
+
+#include "base/memory/ref_counted.h"
+#include "cobalt/render_tree/node.h"
+#include "cobalt/render_tree/resource_provider.h"
+
+namespace cobalt {
+namespace renderer {
+namespace rasterizer {
+namespace skia {
+
+// Generates a tree which includes common shaders that skia will generate
+// and use. Submitting this tree to the skia renderer will cause the
+// shaders to generated and compiled.
+scoped_refptr<render_tree::Node> GenerateShaderPreloadTree(
+    render_tree::ResourceProvider* resource_provider);
+
+}  // namespace skia
+}  // namespace rasterizer
+}  // namespace renderer
+}  // namespace cobalt
+
+#endif  // COBALT_RENDERER_RASTERIZER_SKIA_SHADER_PRELOAD_TREE_H_
diff --git a/src/cobalt/script/engine.gyp b/src/cobalt/script/engine.gyp
index ddb6e3e..d5423b8 100644
--- a/src/cobalt/script/engine.gyp
+++ b/src/cobalt/script/engine.gyp
@@ -31,9 +31,7 @@
       # building 'all'.
       'target_name': 'all_engines',
       'type': 'none',
-      'dependencies': [
-        'mozjs/mozjs.gyp:*',
-      ],
+      'dependencies': [],
     },
   ],
 }
diff --git a/src/cobalt/script/engine_variables.gypi b/src/cobalt/script/engine_variables.gypi
index 98f413c..d60625c 100644
--- a/src/cobalt/script/engine_variables.gypi
+++ b/src/cobalt/script/engine_variables.gypi
@@ -14,7 +14,6 @@
 
 {
   'includes': [
-    'mozjs/mozjs_variables.gypi',
     'mozjs-45/mozjs-45_variables.gypi',
   ],
 }
diff --git a/src/cobalt/script/mozjs-45/mozjs_engine.cc b/src/cobalt/script/mozjs-45/mozjs_engine.cc
index 6a09beb..fd3ca39 100644
--- a/src/cobalt/script/mozjs-45/mozjs_engine.cc
+++ b/src/cobalt/script/mozjs-45/mozjs_engine.cc
@@ -141,7 +141,7 @@
 }  // namespace
 
 MozjsEngine::MozjsEngine(const Options& options)
-    : accumulated_extra_memory_cost_(0), options_(options) {
+    : context_(nullptr), accumulated_extra_memory_cost_(0), options_(options) {
   TRACE_EVENT0("cobalt::script", "MozjsEngine::MozjsEngine()");
   SbOnce(&g_js_init_once_control, CallInitAndRegisterShutDownOnce);
   runtime_ = JS_NewRuntime(options_.js_options.gc_threshold_bytes);
@@ -250,13 +250,11 @@
   MozjsEngine* engine = reinterpret_cast<MozjsEngine*>(data);
   DCHECK(engine->thread_checker_.CalledOnValidThread());
   if (context_op == JSCONTEXT_NEW) {
-    engine->contexts_.push_back(context);
+    DCHECK(engine->context_ == nullptr);
+    engine->context_ = context;
   } else if (context_op == JSCONTEXT_DESTROY) {
-    ContextVector::iterator it =
-        std::find(engine->contexts_.begin(), engine->contexts_.end(), context);
-    if (it != engine->contexts_.end()) {
-      engine->contexts_.erase(it);
-    }
+    DCHECK(engine->context_ == context);
+    engine->context_ = nullptr;
   }
   return true;
 }
@@ -271,16 +269,17 @@
       engine->gc_timer_.Reset();
     }
   }
-  for (int i = 0; i < engine->contexts_.size(); ++i) {
-    MozjsGlobalEnvironment* global_environment =
-        MozjsGlobalEnvironment::GetFromContext(engine->contexts_[i]);
-    if (status == JSGC_BEGIN) {
-      TRACE_EVENT_BEGIN0("cobalt::script", "SpiderMonkey Garbage Collection");
-      global_environment->BeginGarbageCollection();
-    } else if (status == JSGC_END) {
-      global_environment->EndGarbageCollection();
-      TRACE_EVENT_END0("cobalt::script", "SpiderMonkey Garbage Collection");
-    }
+  if (!engine->context_) {
+    return;
+  }
+  MozjsGlobalEnvironment* global_environment =
+      MozjsGlobalEnvironment::GetFromContext(engine->context_);
+  if (status == JSGC_BEGIN) {
+    TRACE_EVENT_BEGIN0("cobalt::script", "SpiderMonkey Garbage Collection");
+    global_environment->BeginGarbageCollection();
+  } else if (status == JSGC_END) {
+    global_environment->EndGarbageCollection();
+    TRACE_EVENT_END0("cobalt::script", "SpiderMonkey Garbage Collection");
   }
 }
 
@@ -289,12 +288,10 @@
   TRACE_EVENT0("cobalt::script", "MozjsEngine::FinalizeCallback()");
   MozjsEngine* engine = reinterpret_cast<MozjsEngine*>(data);
   DCHECK(engine->thread_checker_.CalledOnValidThread());
-  if (status == JSFINALIZE_GROUP_START) {
-    for (int i = 0; i < engine->contexts_.size(); ++i) {
-      MozjsGlobalEnvironment* global_environment =
-          MozjsGlobalEnvironment::GetFromContext(engine->contexts_[i]);
-      global_environment->DoSweep();
-    }
+  if (status == JSFINALIZE_GROUP_START && engine->context_) {
+    MozjsGlobalEnvironment* global_environment =
+        MozjsGlobalEnvironment::GetFromContext(engine->context_);
+    global_environment->DoSweep();
   }
 }
 
@@ -327,6 +324,7 @@
 
 }  // namespace mozjs
 
+// static
 scoped_ptr<JavaScriptEngine> JavaScriptEngine::CreateEngine(
     const JavaScriptEngine::Options& options) {
   TRACE_EVENT0("cobalt::script", "JavaScriptEngine::CreateEngine()");
@@ -334,6 +332,7 @@
   return make_scoped_ptr<JavaScriptEngine>(new mozjs::MozjsEngine(moz_options));
 }
 
+// static
 size_t JavaScriptEngine::UpdateMemoryStatsAndReturnReserved() {
   return mozjs::EngineStats::GetInstance()
       ->UpdateMemoryStatsAndReturnReserved();
diff --git a/src/cobalt/script/mozjs-45/mozjs_engine.h b/src/cobalt/script/mozjs-45/mozjs_engine.h
index 98094f1..b432000 100644
--- a/src/cobalt/script/mozjs-45/mozjs_engine.h
+++ b/src/cobalt/script/mozjs-45/mozjs_engine.h
@@ -58,9 +58,8 @@
   // one per process, but it's allowed to have multiple.
   JSRuntime* runtime_;
 
-  // A list of all contexts created for this JSRuntime.
-  typedef std::vector<JSContext*> ContextVector;
-  ContextVector contexts_;
+  // The sole context created for this JSRuntime.
+  JSContext* context_;
 
   // The amount of externally allocated memory since last forced GC.
   size_t accumulated_extra_memory_cost_;
diff --git a/src/cobalt/script/mozjs/callback_function_conversion.h b/src/cobalt/script/mozjs/callback_function_conversion.h
deleted file mode 100644
index 84da21e..0000000
--- a/src/cobalt/script/mozjs/callback_function_conversion.h
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_CALLBACK_FUNCTION_CONVERSION_H_
-#define COBALT_SCRIPT_MOZJS_CALLBACK_FUNCTION_CONVERSION_H_
-
-#include "base/logging.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/logging_exception_state.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_callback_function.h"
-#include "cobalt/script/script_value.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// CallbackFunction -> JSValue
-template <typename Signature>
-void ToJSValue(
-    JSContext* context,
-    const ScriptValue<CallbackFunction<Signature> >* callback_function,
-    JS::MutableHandleValue out_value) {
-  if (!callback_function) {
-    out_value.set(JS::NullValue());
-    return;
-  }
-  // Downcast to MozjsUserObjectHolder<T> so we can get the underlying JSObject.
-  typedef MozjsUserObjectHolder<MozjsCallbackFunction<Signature> >
-      MozjsUserObjectHolderClass;
-  const MozjsUserObjectHolderClass* user_object_holder =
-      base::polymorphic_downcast<const MozjsUserObjectHolderClass*>(
-          callback_function);
-
-  DCHECK(user_object_holder->js_object());
-  out_value.set(OBJECT_TO_JSVAL(user_object_holder->js_object()));
-}
-
-// JSValue -> CallbackFunction
-template <typename Signature>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 MozjsUserObjectHolder<MozjsCallbackFunction<Signature> >*
-                     out_callback_function) {
-  typedef MozjsUserObjectHolder<MozjsCallbackFunction<Signature> >
-      MozjsCallbackHolderClass;
-
-  DCHECK_EQ(conversion_flags & ~kConversionFlagsCallbackFunction, 0)
-      << "Unexpected conversion flags.";
-
-  if (value.isNull()) {
-    if (!(conversion_flags & kConversionFlagNullable)) {
-      exception_state->SetSimpleException(kNotNullableType);
-    }
-    // If it is a nullable type, just return.
-    return;
-  }
-
-  // https://www.w3.org/TR/WebIDL/#es-callback-function
-  // 1. If V is not a Function object, throw a TypeError
-  JS::RootedObject object(context);
-  if (value.isObject()) {
-    object = JSVAL_TO_OBJECT(value);
-  }
-  if (!object || !JS_ObjectIsFunction(context, object)) {
-    exception_state->SetSimpleException(kNotFunctionValue);
-    return;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  *out_callback_function = MozjsCallbackHolderClass(
-      object, context, global_environment->wrapper_factory());
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_CALLBACK_FUNCTION_CONVERSION_H_
diff --git a/src/cobalt/script/mozjs/conversion_helpers.cc b/src/cobalt/script/mozjs/conversion_helpers.cc
deleted file mode 100644
index aac1422..0000000
--- a/src/cobalt/script/mozjs/conversion_helpers.cc
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/conversion_helpers.h"
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-#include "nb/memory_scope.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// JSValue -> std::string
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 std::string* out_string) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK_EQ(conversion_flags & ~kConversionFlagsString, 0)
-      << "Unexpected conversion flags found: ";
-
-  if (value.isNull() &&
-      conversion_flags & kConversionFlagTreatNullAsEmptyString) {
-    *out_string = "";
-    return;
-  }
-
-  if (value.isUndefined() &&
-      conversion_flags & kConversionFlagTreatUndefinedAsEmptyString) {
-    *out_string = "";
-    return;
-  }
-
-  JS::RootedString string(context, JS_ValueToString(context, value));
-  if (!string) {
-    exception_state->SetSimpleException(kConvertToStringFailed);
-    return;
-  }
-
-  JSAutoByteString auto_byte_string;
-  char* utf8_chars = auto_byte_string.encodeUtf8(context, string);
-  if (!utf8_chars) {
-    exception_state->SetSimpleException(kConvertToUTF8Failed);
-    return;
-  }
-
-  *out_string = utf8_chars;
-}
-
-// OpaqueHandle -> JSValue
-void ToJSValue(JSContext* context,
-               const OpaqueHandleHolder* opaque_handle_holder,
-               JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  JS::RootedObject js_object(context);
-  if (opaque_handle_holder) {
-    // Downcast to MozjsObjectHandleHolder so we can get the JS object.
-    const MozjsObjectHandleHolder* mozjs_object_handle_holder =
-        base::polymorphic_downcast<const MozjsObjectHandleHolder*>(
-            opaque_handle_holder);
-    js_object = mozjs_object_handle_holder->js_object();
-  }
-  // OBJECT_TO_JSVAL handles the case where this is NULL.
-  out_value.set(OBJECT_TO_JSVAL(js_object));
-}
-
-// JSValue -> OpaqueHandle
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 MozjsObjectHandleHolder* out_holder) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK_EQ(conversion_flags & ~kConversionFlagsObject, 0)
-      << "Unexpected conversion flags found.";
-  JS::RootedObject js_object(context);
-  // https://www.w3.org/TR/WebIDL/#es-object
-  // 1. If Type(V) is not Object, throw a TypeError
-  // We'll handle the null case below.
-  if (!value.isObjectOrNull()) {
-    exception_state->SetSimpleException(kNotObjectType);
-    return;
-  }
-
-  js_object = JSVAL_TO_OBJECT(value);
-  if (!js_object) {
-    // Set an exception if this is not nullable.
-    if (!(conversion_flags & kConversionFlagNullable)) {
-      exception_state->SetSimpleException(kNotNullableType);
-    }
-    // Return here even for the non-exception case.
-    return;
-  }
-
-  DCHECK(js_object);
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  *out_holder = MozjsObjectHandleHolder(value, context,
-                                        global_environment->wrapper_factory());
-}
-
-// ValueHandle -> JSValue
-void ToJSValue(JSContext* context, const ValueHandleHolder* value_handle_holder,
-               JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  JS::RootedValue js_value(context);
-  if (value_handle_holder) {
-    // Downcast to MozjsValueHandleHolder so we can get the JS object.
-    const MozjsValueHandleHolder* mozjs_value_handle_holder =
-        base::polymorphic_downcast<const MozjsValueHandleHolder*>(
-            value_handle_holder);
-    js_value = mozjs_value_handle_holder->js_value();
-  }
-
-  // OBJECT_TO_JSVAL handles the case where this is NULL.
-  out_value.set(js_value);
-}
-
-// JSValue -> ValueHandle
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 MozjsValueHandleHolder* out_holder) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK_EQ(conversion_flags & ~kConversionFlagsObject, 0)
-      << "Unexpected conversion flags found.";
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  *out_holder = MozjsValueHandleHolder(value, context,
-                                       global_environment->wrapper_factory());
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/conversion_helpers.h b/src/cobalt/script/mozjs/conversion_helpers.h
deleted file mode 100644
index bb5a90d..0000000
--- a/src/cobalt/script/mozjs/conversion_helpers.h
+++ /dev/null
@@ -1,704 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_CONVERSION_HELPERS_H_
-#define COBALT_SCRIPT_MOZJS_CONVERSION_HELPERS_H_
-
-#include <limits>
-#include <string>
-
-#include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/optional.h"
-#include "base/stringprintf.h"
-#include "cobalt/base/enable_if.h"
-#include "cobalt/base/token.h"
-#include "cobalt/script/mozjs/mozjs_callback_interface_holder.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/mozjs_value_handle.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/union_type_conversion_forward.h"
-#include "cobalt/script/mozjs/util/algorithm_helpers.h"
-#include "cobalt/script/sequence.h"
-#include "nb/memory_scope.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsarray.h"
-#include "third_party/mozjs/js/src/jscntxt.h"
-#include "third_party/mozjs/js/src/jsproxy.h"
-#include "third_party/mozjs/js/src/jsstr.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Flags that can be used as a bitmask for special conversion behaviour.
-enum ConversionFlags {
-  kNoConversionFlags = 0,
-  kConversionFlagRestricted = 1 << 0,
-  kConversionFlagNullable = 1 << 1,
-  kConversionFlagTreatNullAsEmptyString = 1 << 2,
-  kConversionFlagTreatUndefinedAsEmptyString = 1 << 3,
-  kConversionFlagClamped = 1 << 4,
-
-  // Valid conversion flags for numeric values.
-  kConversionFlagsNumeric = kConversionFlagRestricted | kConversionFlagClamped,
-
-  // Valid conversion flags for string types.
-  kConversionFlagsString = kConversionFlagTreatNullAsEmptyString |
-                           kConversionFlagTreatUndefinedAsEmptyString,
-
-  // Valid conversion flags for objects.
-  kConversionFlagsObject = kConversionFlagNullable,
-
-  // Valid conversion flags for callback functions.
-  kConversionFlagsCallbackFunction = kConversionFlagNullable,
-
-  // Valid conversion flags for callback interfaces.
-  kConversionFlagsCallbackInterface = kConversionFlagNullable,
-};
-
-// std::string -> JSValue
-inline void ToJSValue(JSContext* context, const std::string& in_string,
-                      JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  size_t length = in_string.length();
-  jschar* inflated_buffer =
-      js::InflateUTF8String(context, in_string.c_str(), &length);
-
-  if (!inflated_buffer) {
-    LOG(ERROR) << "Failed to inflate UTF8 string.";
-    out_value.setNull();
-    return;
-  }
-
-  JS::RootedString rooted_string(
-      context, JS_NewUCStringCopyN(context, inflated_buffer, length));
-  js_free(inflated_buffer);
-
-  out_value.set(JS::StringValue(rooted_string));
-}
-
-// JSValue -> std::string
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 std::string* out_string);
-
-// base::Token -> JSValue
-inline void ToJSValue(JSContext* context, const base::Token& token,
-                      JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  ToJSValue(context, std::string(token.c_str()), out_value);
-}
-
-// bool -> JSValue
-inline void ToJSValue(JSContext* context, bool in_boolean,
-                      JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  out_value.set(JS::BooleanValue(in_boolean));
-}
-
-// JSValue -> bool
-inline void FromJSValue(JSContext* context, JS::HandleValue value,
-                        int conversion_flags, ExceptionState* exception_state,
-                        bool* out_boolean) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK_EQ(conversion_flags, kNoConversionFlags)
-      << "No conversion flags supported.";
-  DCHECK(out_boolean);
-  // ToBoolean implements the ECMAScript ToBoolean operation.
-  *out_boolean = JS::ToBoolean(value);
-}
-
-// signed integers <= 4 bytes -> JSValue
-template <typename T>
-inline void ToJSValue(
-    JSContext* context, T in_number, JS::MutableHandleValue out_value,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 std::numeric_limits<T>::is_integer &&
-                                 std::numeric_limits<T>::is_signed &&
-                                 (sizeof(T) <= 4),
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  out_value.set(INT_TO_JSVAL(in_number));
-}
-
-template <typename T>
-inline const double UpperBound() {
-  return std::numeric_limits<T>::max();
-}
-
-template <typename T>
-inline const double LowerBound() {
-  return std::numeric_limits<T>::min();
-}
-
-// The below specializations of UpperBound<T> and LowerBound<T> for 64
-// bit integers use the (2^(53) - 1) and similar bounds specified in
-// step 1 of ConvertToInt, see:
-// https://heycam.github.io/webidl/#abstract-opdef-converttoint
-template <>
-inline const double UpperBound<int64_t>() {
-  const double kInt64UpperBound = static_cast<double>((1ll << 53) - 1);
-  return kInt64UpperBound;
-}
-
-template <>
-inline const double LowerBound<int64_t>() {
-  const double kInt64LowerBound = static_cast<double>(-(1ll << 53) + 1);
-  return kInt64LowerBound;
-}
-
-template <>
-inline const double UpperBound<uint64_t>() {
-  const double kUInt64UpperBound = static_cast<double>((1ll << 53) - 1);
-  return kUInt64UpperBound;
-}
-
-template <typename T>
-void ClampedValue(JSContext* context, JS::HandleValue value,
-                  JS::MutableHandleValue clamped_value) {
-  double value_double;
-  JS::ToNumber(context, value, &value_double);
-  if (value_double > UpperBound<T>()) {
-    clamped_value.set(DOUBLE_TO_JSVAL(UpperBound<T>()));
-  } else if (value_double < LowerBound<T>()) {
-    clamped_value.set(DOUBLE_TO_JSVAL(LowerBound<T>()));
-  } else {
-    clamped_value.set(value);
-  }
-}
-
-// JSValue -> signed integers <= 4 bytes
-template <typename T>
-inline void FromJSValue(
-    JSContext* context, JS::HandleValue value, int conversion_flags,
-    ExceptionState* exception_state, T* out_number,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 std::numeric_limits<T>::is_integer &&
-                                 std::numeric_limits<T>::is_signed &&
-                                 (sizeof(T) <= 4),
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK(out_number);
-
-  int32_t out;
-  // Convert a JavaScript value to an integer type as specified by the
-  // ECMAScript standard.
-  JS::RootedValue value_to_convert(context);
-  if (conversion_flags & kConversionFlagClamped) {
-    ClampedValue<T>(context, value, &value_to_convert);
-  } else {
-    value_to_convert.set(value);
-  }
-  JSBool success = JS_ValueToECMAInt32(context, value_to_convert, &out);
-  DCHECK(success);
-
-  *out_number = static_cast<T>(out);
-}
-
-// JSValue -> signed integers > 4 bytes
-template <typename T>
-inline void FromJSValue(
-    JSContext* context, JS::HandleValue value, int conversion_flags,
-    ExceptionState* exception_state, T* out_number,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 std::numeric_limits<T>::is_integer &&
-                                 std::numeric_limits<T>::is_signed &&
-                                 (sizeof(T) > 4),
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  double to_number;
-  JS::ToNumber(context, value, &to_number);
-
-  std::string value_str;
-  FromJSValue(context, value, conversion_flags, exception_state, &value_str);
-  DCHECK(out_number);
-  int64_t out;
-  // This produces and IDL unsigned long long.
-  JS::RootedValue value_to_convert(context);
-  if (conversion_flags & kConversionFlagClamped) {
-    ClampedValue<T>(context, value, &value_to_convert);
-  } else {
-    value_to_convert.set(value);
-  }
-  JSBool success = JS_ValueToInt64(context, value_to_convert, &out);
-  DCHECK(success);
-  if (!success) {
-    exception_state->SetSimpleException(kNotInt64Type);
-    return;
-  }
-  *out_number = static_cast<T>(out);
-}
-
-// signed integers > 4 bytes -> JSValue
-template <typename T>
-inline void ToJSValue(
-    JSContext* context, T in_number, JS::MutableHandleValue out_value,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 std::numeric_limits<T>::is_integer &&
-                                 std::numeric_limits<T>::is_signed &&
-                                 (sizeof(T) > 4),
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  out_value.set(JS_NumberValue(in_number));
-}
-
-// unsigned integers <= 4 bytes -> JSValue
-template <typename T>
-inline void ToJSValue(
-    JSContext* context, T in_number, JS::MutableHandleValue out_value,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 std::numeric_limits<T>::is_integer &&
-                                 !std::numeric_limits<T>::is_signed &&
-                                 (sizeof(T) <= 4),
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  out_value.set(UINT_TO_JSVAL(in_number));
-}
-
-// JSValue -> unsigned integers <= 4 bytes
-template <typename T>
-inline void FromJSValue(
-    JSContext* context, JS::HandleValue value, int conversion_flags,
-    ExceptionState* exception_state, T* out_number,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 std::numeric_limits<T>::is_integer &&
-                                 !std::numeric_limits<T>::is_signed &&
-                                 (sizeof(T) <= 4),
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK(out_number);
-
-  uint32_t out;
-  // Convert a JavaScript value to an integer type as specified by the
-  // ECMAScript standard.
-  JS::RootedValue value_to_convert(context);
-  if (conversion_flags & kConversionFlagClamped) {
-    ClampedValue<T>(context, value, &value_to_convert);
-  } else {
-    value_to_convert.set(value);
-  }
-  JSBool success = JS_ValueToECMAUint32(context, value_to_convert, &out);
-  DCHECK(success);
-
-  *out_number = static_cast<T>(out);
-}
-
-// JSValue -> unsigned integers > 4 bytes
-template <typename T>
-inline void FromJSValue(
-    JSContext* context, JS::HandleValue value, int conversion_flags,
-    ExceptionState* exception_state, T* out_number,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 std::numeric_limits<T>::is_integer &&
-                                 !std::numeric_limits<T>::is_signed &&
-                                 (sizeof(T) > 4),
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK(out_number);
-
-  uint64_t out;
-  // This produces and IDL unsigned long long.
-  JS::RootedValue value_to_convert(context);
-  if (conversion_flags & kConversionFlagClamped) {
-    ClampedValue<T>(context, value, &value_to_convert);
-  } else {
-    value_to_convert.set(value);
-  }
-  JSBool success = JS_ValueToUint64(context, value_to_convert, &out);
-  DCHECK(success);
-  if (!success) {
-    exception_state->SetSimpleException(kNotUint64Type);
-    return;
-  }
-  *out_number = static_cast<T>(out);
-}
-
-// unsigned integers > 4 bytes -> JSValue
-template <typename T>
-inline void ToJSValue(
-    JSContext* context, T in_number, JS::MutableHandleValue out_value,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 std::numeric_limits<T>::is_integer &&
-                                 !std::numeric_limits<T>::is_signed &&
-                                 (sizeof(T) > 4),
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  out_value.set(JS_NumberValue(in_number));
-}
-
-// double -> JSValue
-template <typename T>
-inline void ToJSValue(
-    JSContext* context, T in_number, JS::MutableHandleValue out_value,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 !std::numeric_limits<T>::is_integer,
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  out_value.set(DOUBLE_TO_JSVAL(in_number));
-}
-
-// JSValue -> double
-template <typename T>
-inline void FromJSValue(
-    JSContext* context, JS::HandleValue value, int conversion_flags,
-    ExceptionState* exception_state, T* out_number,
-    typename base::enable_if<std::numeric_limits<T>::is_specialized &&
-                                 !std::numeric_limits<T>::is_integer,
-                             T>::type* = NULL) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK_EQ(conversion_flags & ~kConversionFlagsNumeric, 0)
-      << "Unexpected conversion flags found.";
-  DCHECK(out_number);
-  double double_value;
-  if (!JS::ToNumber(context, value, &double_value)) {
-    exception_state->SetSimpleException(kNotNumberType);
-    return;
-  }
-
-  if (!mozilla::IsFinite(double_value) &&
-      (conversion_flags & kConversionFlagRestricted)) {
-    exception_state->SetSimpleException(kNotFinite);
-    return;
-  }
-
-  *out_number = double_value;
-}
-
-// optional<T> -> JSValue
-template <typename T>
-inline void ToJSValue(JSContext* context, const base::optional<T>& in_optional,
-                      JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  if (!in_optional) {
-    out_value.setNull();
-    return;
-  }
-  ToJSValue(context, in_optional.value(), out_value);
-}
-
-// JSValue -> optional<T>
-template <typename T>
-inline void FromJSValue(JSContext* context, JS::HandleValue value,
-                        int conversion_flags, ExceptionState* exception_state,
-                        base::optional<T>* out_optional) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  if (value.isNull()) {
-    *out_optional = base::nullopt;
-  } else if (value.isUndefined()) {
-    *out_optional = base::nullopt;
-  } else {
-    *out_optional = T();
-    FromJSValue(context, value, conversion_flags & ~kConversionFlagNullable,
-                exception_state, &(out_optional->value()));
-  }
-}
-
-// JSValue -> optional<std::string>
-template <>
-inline void FromJSValue(JSContext* context, JS::HandleValue value,
-                        int conversion_flags, ExceptionState* exception_state,
-                        base::optional<std::string>* out_optional) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  if (value.isNull()) {
-    *out_optional = base::nullopt;
-  } else if (value.isUndefined() &&
-             !(conversion_flags & kConversionFlagTreatUndefinedAsEmptyString)) {
-    // If TreatUndefinedAs=EmptyString is set, skip the default conversion
-    // of undefined to null.
-    *out_optional = base::nullopt;
-  } else {
-    *out_optional = std::string();
-    FromJSValue(context, value, conversion_flags & ~kConversionFlagNullable,
-                exception_state, &(out_optional->value()));
-  }
-}
-
-// OpaqueHandle -> JSValue
-void ToJSValue(JSContext* context,
-               const OpaqueHandleHolder* opaque_handle_holder,
-               JS::MutableHandleValue out_value);
-
-// JSValue -> OpaqueHandle
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 MozjsObjectHandleHolder* out_holder);
-
-// ValueHandle -> JSValue
-void ToJSValue(JSContext* context, const ValueHandleHolder* value_handle_holder,
-               JS::MutableHandleValue out_value);
-
-// JSValue -> ValueHandle
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 MozjsValueHandleHolder* out_holder);
-
-// object -> JSValue
-template <typename T>
-inline void ToJSValue(JSContext* context, const scoped_refptr<T>& in_object,
-                      JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  if (!in_object) {
-    out_value.setNull();
-    return;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  JS::RootedObject object(
-      context,
-      global_environment->wrapper_factory()->GetWrapperProxy(in_object));
-  DCHECK(object);
-  JS::RootedObject proxy_target(context, js::GetProxyTargetObject(object));
-  if (JS_IsGlobalObject(proxy_target)) {
-    object = proxy_target;
-  }
-
-  out_value.set(OBJECT_TO_JSVAL(object));
-}
-
-// raw object pointer -> JSValue
-template <typename T>
-inline void ToJSValue(JSContext* context, T* in_object,
-                      JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  ToJSValue(context, scoped_refptr<T>(in_object), out_value);
-}
-
-// JSValue -> object
-template <typename T>
-inline void FromJSValue(JSContext* context, JS::HandleValue value,
-                        int conversion_flags, ExceptionState* exception_state,
-                        scoped_refptr<T>* out_object) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK_EQ(conversion_flags & ~kConversionFlagsObject, 0)
-      << "Unexpected conversion flags found.";
-  JS::RootedObject js_object(context);
-  if (value.isNull() || value.isUndefined()) {
-    if (!(conversion_flags & kConversionFlagNullable)) {
-      exception_state->SetSimpleException(kNotNullableType);
-    }
-    return;
-  }
-  if (!JS_ValueToObject(context, value, js_object.address())) {
-    exception_state->SetSimpleException(kNotObjectType);
-    return;
-  }
-  DCHECK(js_object);
-  JS::RootedObject wrapper(context, js::IsProxy(js_object)
-                                        ? js::GetProxyTargetObject(js_object)
-                                        : js_object);
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  const WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (wrapper_factory->IsWrapper(wrapper)) {
-    bool object_implements_interface =
-        wrapper_factory->DoesObjectImplementInterface(js_object,
-                                                      base::GetTypeId<T>());
-    if (!object_implements_interface) {
-      exception_state->SetSimpleException(kDoesNotImplementInterface);
-      return;
-    }
-    WrapperPrivate* wrapper_private =
-        WrapperPrivate::GetFromWrapperObject(wrapper);
-    *out_object = wrapper_private->wrappable<T>();
-    return;
-  }
-  // This is not a platform object. Return a type error.
-  exception_state->SetSimpleException(kDoesNotImplementInterface);
-}
-
-// CallbackInterface -> JSValue
-template <typename T>
-inline void ToJSValue(JSContext* context,
-                      const ScriptValue<T>* callback_interface,
-                      JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  if (!callback_interface) {
-    out_value.set(JS::NullValue());
-    return;
-  }
-  typedef typename CallbackInterfaceTraits<T>::MozjsCallbackInterfaceClass
-      MozjsCallbackInterfaceClass;
-  // Downcast to MozjsUserObjectHolder<T> so we can get the underlying JSObject.
-  typedef MozjsUserObjectHolder<MozjsCallbackInterfaceClass>
-      MozjsUserObjectHolderClass;
-  const MozjsUserObjectHolderClass* user_object_holder =
-      base::polymorphic_downcast<const MozjsUserObjectHolderClass*>(
-          callback_interface);
-
-  // Shouldn't be NULL. If the callback was NULL then NULL should have been
-  // passed as an argument into this function.
-  // Downcast to the corresponding MozjsCallbackInterface type, from which we
-  // can get the implementing object.
-  const MozjsCallbackInterfaceClass* mozjs_callback_interface =
-      base::polymorphic_downcast<const MozjsCallbackInterfaceClass*>(
-          user_object_holder->GetScriptValue());
-  DCHECK(mozjs_callback_interface);
-  out_value.set(mozjs_callback_interface->value());
-}
-
-// JSValue -> CallbackInterface
-template <typename T>
-inline void FromJSValue(
-    JSContext* context, JS::HandleValue value, int conversion_flags,
-    ExceptionState* out_exception,
-    MozjsCallbackInterfaceHolder<T>* out_callback_interface) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  typedef T MozjsCallbackInterfaceClass;
-  DCHECK_EQ(conversion_flags & ~kConversionFlagsCallbackFunction, 0)
-      << "No conversion flags supported.";
-  if (value.isNull()) {
-    if (!(conversion_flags & kConversionFlagNullable)) {
-      out_exception->SetSimpleException(kNotNullableType);
-    }
-    // If it is a nullable type, just return.
-    return;
-  }
-
-  // https://www.w3.org/TR/WebIDL/#es-user-objects
-  // Any user object can be considered to implement a user interface. Actually
-  // checking if the correct properties exist will happen when the operation
-  // on the callback interface is run.
-  if (!value.isObject()) {
-    out_exception->SetSimpleException(kNotObjectType);
-    return;
-  }
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-
-  JS::RootedObject implementing_object(context, JSVAL_TO_OBJECT(value));
-  DCHECK(implementing_object);
-  *out_callback_interface = MozjsCallbackInterfaceHolder<T>(
-      implementing_object, context, global_environment->wrapper_factory());
-}
-
-template <typename T>
-void ToJSValue(JSContext* context, const script::Sequence<T>& sequence,
-               JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  // 1. Let n be the length of S.
-  typedef typename script::Sequence<T>::size_type size_type;
-  size_type count = sequence.size();
-
-  // 2. Let A be a new Array object created as if by the expression [].
-  JS::RootedObject array(context, NewDenseEmptyArray(context));
-
-  // 3. Initialize i to be 0.
-  // 4. While i < n:
-  for (size_type index = 0; index < count; ++index) {
-    // 4.1. Let V be the value in S at index i.
-    // 4.2. Let E be the result of converting V to an ECMAScript value.
-    JS::RootedValue element(context);
-    ToJSValue(context, sequence.at(index), &element);
-
-    std::string property =
-        base::StringPrintf("%" PRIu64, static_cast<uint64_t>(index));
-
-    // 4.3. Let P be the result of calling ToString(i).
-    // 4.4. Call CreateDataProperty(A, P, E).
-    JS_SetProperty(context, array, property.c_str(), element.address());
-
-    // 4.5. Set i to i + 1.
-  }
-
-  // 5. Return A.
-  out_value.set(OBJECT_TO_JSVAL(array));
-}
-
-template <typename T>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 script::Sequence<T>* out_sequence) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK_EQ(0, conversion_flags);
-  DCHECK(out_sequence);
-
-  // JS -> IDL type conversion procedure described here:
-  // https://heycam.github.io/webidl/#es-sequence
-
-  // 1. If Type(V) is not Object, throw a TypeError.
-  JS::RootedObject iterable(context);
-  if (!value.isObject() ||
-      !JS_ValueToObject(context, value, iterable.address())) {
-    exception_state->SetSimpleException(kNotObjectType);
-    return;
-  }
-
-  // 2. Let method be the result of GetMethod(V, @@iterator).
-  // 3. ReturnIfAbrupt(method).
-  // 4. If method is undefined, throw a TypeError.
-  // 5. Return the result of creating a sequence from V and method.
-  // https://heycam.github.io/webidl/#create-sequence-from-iterable
-  // 5.1. Let iter be GetIterator(iterable, method).
-  JS::RootedObject iter(context);
-  if (!util::GetIterator(context, iterable, &iter)) {
-    exception_state->SetSimpleException(kNotIterableType);
-    return;
-  }
-
-  // 5.2. ReturnIfAbrupt(iter).
-  // 5.3. Initialize i to be 0.
-  // 5.4. Repeat
-  while (true) {
-    // 5.4.1. Let next be IteratorStep(iter).
-    // 5.4.2. ReturnIfAbrupt(next).
-    // 5.4.3. If next is false, then return an IDL sequence value of type
-    //        sequence<T> of length i, where the value of the element at index j
-    //        is Sj.
-    JS::RootedObject next(context);
-    if (!util::IteratorStep(context, iter, &next)) {
-      break;
-    }
-
-    // 5.4.4. Let nextItem be IteratorValue(next).
-    // 5.4.5. ReturnIfAbrupt(nextItem).
-    JS::RootedValue next_item(context);
-    if (!util::IteratorValue(context, next, &next_item)) {
-      exception_state->SetSimpleException(kDoesNotImplementInterface);
-      util::IteratorClose(context, iter);
-      return;
-    }
-
-    // 5.4.6. Initialize Si to the result of converting nextItem to an IDL value
-    //        of type T.
-    T idl_next_item;
-    FromJSValue(context, next_item, conversion_flags, exception_state,
-                &idl_next_item);
-    if (context->isExceptionPending()) {
-      // Exception converting element into to sequence element type.
-      util::IteratorClose(context, iter);
-      return;
-    }
-    out_sequence->push_back(idl_next_item);
-
-    // 5.4.7. Set i to i + 1.
-  }
-
-  util::IteratorClose(context, iter);
-  return;
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-// Union type conversion is generated by a pump script.
-#include "cobalt/script/mozjs/union_type_conversion_impl.h"
-
-#endif  // COBALT_SCRIPT_MOZJS_CONVERSION_HELPERS_H_
diff --git a/src/cobalt/script/mozjs/convert_callback_return_value.h b/src/cobalt/script/mozjs/convert_callback_return_value.h
deleted file mode 100644
index a0b1564..0000000
--- a/src/cobalt/script/mozjs/convert_callback_return_value.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_CONVERT_CALLBACK_RETURN_VALUE_H_
-#define COBALT_SCRIPT_MOZJS_CONVERT_CALLBACK_RETURN_VALUE_H_
-
-#include "base/logging.h"
-#include "cobalt/script/callback_function.h"
-#include "cobalt/script/logging_exception_state.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Helper template functions for Callback functions' return values before being
-// returned to Cobalt.
-// Converts the return value from JavaScript into the correct Cobalt type, or
-// sets the exception bit if conversion fails.
-template <typename R>
-CallbackResult<R> ConvertCallbackReturnValue(JSContext* context,
-                                             JS::HandleValue value) {
-  // TODO: Pass conversion flags to callback function return value if
-  // appropriate.
-  const int kConversionFlags = 0;
-  CallbackResult<R> callback_result;
-  LoggingExceptionState exception_state;
-  FromJSValue(context, value, kConversionFlags, &exception_state,
-              &callback_result.result);
-  callback_result.exception = exception_state.is_exception_set();
-  return callback_result;
-}
-
-template <>
-inline CallbackResult<void> ConvertCallbackReturnValue(JSContext* context,
-                                                       JS::HandleValue value) {
-  // No conversion necessary.
-  return CallbackResult<void>();
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_CONVERT_CALLBACK_RETURN_VALUE_H_
diff --git a/src/cobalt/script/mozjs/interface_data.h b/src/cobalt/script/mozjs/interface_data.h
deleted file mode 100644
index 613780f..0000000
--- a/src/cobalt/script/mozjs/interface_data.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_INTERFACE_DATA_H_
-#define COBALT_SCRIPT_MOZJS_INTERFACE_DATA_H_
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Data that is cached on a per-interface basis.
-struct InterfaceData {
-  // Some process must visit these handles to ensure that they are not
-  // garbage collected and that they are updated appropriately if the GC
-  // moves them.
-  JS::Heap<JSObject*> prototype;
-  JS::Heap<JSObject*> interface_object;
-
-  // In newer versions of SpiderMonkey, these are passed into the
-  // JS_NewObject* API functions as const pointers, so they may not need to be
-  // thread local.
-  JSClass instance_class_definition;
-  JSClass prototype_class_definition;
-  JSClass interface_object_class_definition;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_INTERFACE_DATA_H_
diff --git a/src/cobalt/script/mozjs/mozjs.cc b/src/cobalt/script/mozjs/mozjs.cc
deleted file mode 100644
index 36bb288..0000000
--- a/src/cobalt/script/mozjs/mozjs.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <iostream>
-
-#include "base/command_line.h"
-#include "base/file_path.h"
-#include "base/string_util.h"
-#include "cobalt/base/wrap_main.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/source_code.h"
-#include "cobalt/script/standalone_javascript_runner.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsproxy.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace {
-
-JSBool Print(JSContext* context, uint32_t argc, JS::Value* arguments_value) {
-  std::vector<std::string> string_args;
-
-  JS::CallArgs call_args = CallArgsFromVp(argc, arguments_value);
-  for (uint32_t i = 0; i < call_args.length(); ++i) {
-    JSString* js_string = JS_ValueToString(context, call_args[i]);
-    DCHECK(js_string);
-    JSAutoByteString auto_byte_string;
-    char* utf8_chars = auto_byte_string.encodeUtf8(context, js_string);
-    DCHECK(utf8_chars);
-    string_args.push_back(utf8_chars);
-  }
-
-  std::string joined = JoinString(string_args, ' ');
-  std::cout << joined << std::endl;
-
-  call_args.rval().setUndefined();
-  return true;
-}
-
-void SetupBindings(JSContext* context, JSObject* global_object) {
-  DCHECK(JS_IsGlobalObject(global_object));
-
-  JSAutoRequest auto_request(context);
-  JSAutoCompartment auto_comparment(context, global_object);
-  JS_DefineFunction(context, global_object, "print", &Print, 0,
-                    JSPROP_ENUMERATE | JSFUN_STUB_GSOPS);
-}
-
-int MozjsMain(int argc, char** argv) {
-  cobalt::script::StandaloneJavascriptRunner standalone_runner;
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(
-          standalone_runner.global_environment().get());
-
-  SetupBindings(global_environment->context(),
-                global_environment->global_object());
-
-  if (argc > 1) {
-    // Command line arguments will be flag-value pairs of the form
-    // -f filename
-    // and
-    // -e "inline script"
-    // and will be evaluated in order.
-    for (int i = 1; (i + 1) < argc; ++i) {
-      if (std::string(argv[i]) == "-f") {
-        std::string filename = std::string(argv[i + 1]);
-        // Execute source file.
-        FilePath source_file(filename);
-        standalone_runner.ExecuteFile(source_file);
-        ++i;
-      } else if (std::string(argv[i]) == "-e") {
-        // Execute inline script.
-        scoped_refptr<SourceCode> source = SourceCode::CreateSourceCode(
-            argv[i + 1], base::SourceLocation("[stdin]", 1, 1));
-
-        // Execute the script and get the results of execution.
-        std::string result;
-        bool success = global_environment->EvaluateScript(source, &result);
-        // Echo the results to stdout.
-        if (!success) {
-          std::cout << "Exception: ";
-        }
-        std::cout << result << std::endl;
-        ++i;
-      }
-    }
-  } else {
-    standalone_runner.RunInteractive();
-  }
-  return 0;
-}
-
-}  // namespace
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-COBALT_WRAP_SIMPLE_MAIN(cobalt::script::mozjs::MozjsMain);
diff --git a/src/cobalt/script/mozjs/mozjs.gyp b/src/cobalt/script/mozjs/mozjs.gyp
deleted file mode 100644
index 1a2a752..0000000
--- a/src/cobalt/script/mozjs/mozjs.gyp
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-{
-  'targets': [
-    {
-      'target_name': 'engine',
-      'type': 'static_library',
-      'sources': [
-        'conversion_helpers.cc',
-        'mozjs_callback_interface.cc',
-        'mozjs_debugger.cc',
-        'mozjs_engine.cc',
-        'mozjs_exception_state.cc',
-        'mozjs_global_environment.cc',
-        'mozjs_property_enumerator.cc',
-        'mozjs_script_value_factory.cc',
-        'mozjs_source_code.cc',
-        'mozjs_trace_logging.cc',
-        'promise_wrapper.cc',
-        'proxy_handler.cc',
-        'referenced_object_map.cc',
-        'util/algorithm_helpers.cc',
-        'util/exception_helpers.cc',
-        'util/stack_trace_helpers.cc',
-        'util/stack_trace_helpers.h',
-        'weak_heap_object.cc',
-        'weak_heap_object.h',
-        'weak_heap_object_manager.cc',
-        'weak_heap_object_manager.h',
-        'wrapper_factory.cc',
-        'wrapper_private.cc',
-      ],
-      'dependencies': [
-        '<(DEPTH)/cobalt/script/script.gyp:script',
-        '<(DEPTH)/third_party/mozjs/mozjs.gyp:mozjs_lib',
-        'embed_mozjs_resources_as_header_files',
-      ],
-      'defines': [
-        'ENGINE_SUPPORTS_INT64',
-      ],
-      'all_dependent_settings': {
-        'defines': [
-          # SpiderMonkey bindings implements indexed deleters.
-          'ENGINE_SUPPORTS_INDEXED_DELETERS',
-          'ENGINE_SUPPORTS_INT64',
-          'ENGINE_SUPPORTS_STACK_TRACE_COLUMNS',
-          # TODO: Remove this when exact rooting and generational GC is enabled.
-          'ENGINE_USES_CONSERVATIVE_ROOTING',
-        ],
-      },
-      'conditions' :[
-        ['cobalt_enable_jit == 1', {
-          'defines': [ 'ENGINE_SUPPORTS_JIT', ],
-        }],
-      ],
-    },
-
-    {
-      # Standalone executable for JS engine
-      'target_name': 'mozjs',
-      'type': '<(final_executable_type)',
-      'sources': [
-        'mozjs.cc',
-      ],
-      'dependencies': [
-        ':engine',
-        '<(DEPTH)/cobalt/base/base.gyp:base',
-        '<(DEPTH)/cobalt/script/script.gyp:standalone_javascript_runner',
-        '<(DEPTH)/third_party/mozjs/mozjs.gyp:mozjs_lib',
-      ],
-    },
-
-    {
-      'target_name': 'mozjs_engine_test',
-      'type': '<(gtest_target_type)',
-      'sources': [
-        'native_promise_test.cc',
-        '<(DEPTH)/third_party/mozjs/test/jscustomallocator_test.cc',
-      ],
-      'dependencies': [
-        'engine',
-        '<(DEPTH)/cobalt/base/base.gyp:base',
-        '<(DEPTH)/cobalt/test/test.gyp:run_all_unittests',
-        '<(DEPTH)/testing/gtest.gyp:gtest',
-        '<(DEPTH)/third_party/mozjs/mozjs.gyp:mozjs_lib',
-      ],
-    },
-
-    {
-      'target_name': 'mozjs_engine_test_deploy',
-      'type': 'none',
-      'dependencies': [
-        'mozjs_engine_test',
-      ],
-      'variables': {
-        'executable_name': 'mozjs_engine_test',
-      },
-      'includes': [ '../../../starboard/build/deploy.gypi' ],
-    },
-
-    {
-      # This target takes specified files and embeds them as header files for
-      # inclusion into the binary. The script currently requires all resources
-      # to be embedded to live in the same directory.
-      'target_name': 'embed_mozjs_resources_as_header_files',
-      'type': 'none',
-      # Because we generate a header, we must set the hard_dependency flag.
-      'hard_dependency': 1,
-      'variables': {
-        'script_path': '<(DEPTH)/cobalt/build/generate_data_header.py',
-        'output_path': '<(SHARED_INTERMEDIATE_DIR)/cobalt/script/mozjs/embedded_resources.h',
-      },
-      'sources': [
-        '<(DEPTH)/third_party/promise-polyfill/promise.min.js',
-      ],
-      'actions': [
-        {
-          'action_name': 'embed_mozjs_resources_as_header_files',
-          'inputs': [
-            '<(script_path)',
-            '<@(_sources)',
-          ],
-          'outputs': [
-            '<(output_path)',
-          ],
-          'action': ['python', '<(script_path)', 'MozjsEmbeddedResources', '<(output_path)', '<@(_sources)' ],
-          'message': 'Embedding MozJS resources in into header file, "<(output_path)".',
-        },
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<(SHARED_INTERMEDIATE_DIR)',
-        ],
-      },
-    },
-  ],
-}
diff --git a/src/cobalt/script/mozjs/mozjs_callback_function.h b/src/cobalt/script/mozjs/mozjs_callback_function.h
deleted file mode 100644
index 1046f62..0000000
--- a/src/cobalt/script/mozjs/mozjs_callback_function.h
+++ /dev/null
@@ -1,650 +0,0 @@
-// This file was GENERATED by command:
-//     pump.py mozjs_callback_function.h.pump
-// DO NOT EDIT BY HAND!!!
-
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_FUNCTION_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_FUNCTION_H_
-
-#include "base/logging.h"
-#include "cobalt/script/callback_function.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/convert_callback_return_value.h"
-#include "cobalt/script/mozjs/util/exception_helpers.h"
-#include "cobalt/script/mozjs/util/stack_trace_helpers.h"
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "nb/memory_scope.h"
-#include "third_party/mozjs/js/jsd/jsd.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jscntxt.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// First, we forward declare the Callback class template. This informs the
-// compiler that the template only has 1 type parameter which is the base
-// CallbackFunction template class with parameters.
-//
-// See base/callback.h.pump for further discussion on this pattern.
-template <typename Sig>
-class MozjsCallbackFunction;
-
-template <typename R>
-class MozjsCallbackFunction<R(void)>
-    : public CallbackFunction<R(void)> {
- public:
-  typedef CallbackFunction<R()> BaseType;
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleObject function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(JS_ObjectIsFunction(context_, function));
-  }
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleValue function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(function.isObject());
-    DCHECK(JS_ObjectIsFunction(context_, JSVAL_TO_OBJECT(function)));
-  }
-
-  CallbackResult<R> Run()
-      const OVERRIDE {
-    ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-    TRACK_MEMORY_SCOPE("Javascript");
-    TRACE_EVENT0("cobalt::script::mozjs", "MozjsCallbackFunction::Run");
-    CallbackResult<R> callback_result;
-    JSAutoRequest auto_request(context_);
-    JS::RootedObject function(context_, weak_function_.GetObject());
-    if (!function) {
-      DLOG(WARNING) << "Function was garbage collected.";
-      callback_result.exception = true;
-      return callback_result;
-    }
-
-    JSAutoCompartment auto_compartment(context_, function);
-    AutoSaveExceptionState auto_save_exception_state(context_);
-
-    // https://www.w3.org/TR/WebIDL/#es-invoking-callback-functions
-    // Callback 'this' is set to null, unless overridden by other specifications
-    JS::Value this_value(JS::NullValue());
-    JS::RootedValue return_value(context_);
-    const int kNumArguments = 0;
-    JSBool call_result = JS::Call(context_, this_value, function, 0, NULL,
-        return_value.address());
-    if (!call_result) {
-      DLOG(WARNING) << "Exception in callback: "
-                    << util::GetExceptionString(context_);
-      callback_result.exception = true;
-    } else {
-      callback_result = ConvertCallbackReturnValue<R>(context_, return_value);
-    }
-
-    return callback_result;
-  }
-
-  JSObject* handle() const { return weak_function_.GetObject(); }
-  const JS::Value& value() const { return weak_function_.GetValue(); }
-  bool WasCollected() const { return weak_function_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_function_;
-};
-
-template <typename R, typename A1>
-class MozjsCallbackFunction<R(A1)>
-    : public CallbackFunction<R(A1)> {
- public:
-  typedef CallbackFunction<R(A1)> BaseType;
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleObject function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(JS_ObjectIsFunction(context_, function));
-  }
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleValue function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(function.isObject());
-    DCHECK(JS_ObjectIsFunction(context_, JSVAL_TO_OBJECT(function)));
-  }
-
-  CallbackResult<R> Run(
-      typename base::internal::CallbackParamTraits<A1>::ForwardType a1)
-      const OVERRIDE {
-    ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-    TRACK_MEMORY_SCOPE("Javascript");
-    TRACE_EVENT0("cobalt::script::mozjs", "MozjsCallbackFunction::Run");
-    CallbackResult<R> callback_result;
-    JSAutoRequest auto_request(context_);
-    JS::RootedObject function(context_, weak_function_.GetObject());
-    if (!function) {
-      DLOG(WARNING) << "Function was garbage collected.";
-      callback_result.exception = true;
-      return callback_result;
-    }
-
-    JSAutoCompartment auto_compartment(context_, function);
-    AutoSaveExceptionState auto_save_exception_state(context_);
-
-    // https://www.w3.org/TR/WebIDL/#es-invoking-callback-functions
-    // Callback 'this' is set to null, unless overridden by other specifications
-    JS::Value this_value(JS::NullValue());
-    JS::RootedValue return_value(context_);
-    const int kNumArguments = 1;
-    JS::Value args[1];
-    js::SetValueRangeToNull(args, kNumArguments);
-    js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-    ToJSValue(context_, a1, auto_array_rooter.handleAt(0));
-
-    JSBool call_result = JS::Call(context_, this_value, function,
-        kNumArguments, args, return_value.address());
-    if (!call_result) {
-      DLOG(WARNING) << "Exception in callback: "
-                    << util::GetExceptionString(context_);
-      callback_result.exception = true;
-    } else {
-      callback_result = ConvertCallbackReturnValue<R>(context_, return_value);
-    }
-
-    return callback_result;
-  }
-
-  JSObject* handle() const { return weak_function_.GetObject(); }
-  const JS::Value& value() const { return weak_function_.GetValue(); }
-  bool WasCollected() const { return weak_function_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_function_;
-};
-
-template <typename R, typename A1, typename A2>
-class MozjsCallbackFunction<R(A1, A2)>
-    : public CallbackFunction<R(A1, A2)> {
- public:
-  typedef CallbackFunction<R(A1, A2)> BaseType;
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleObject function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(JS_ObjectIsFunction(context_, function));
-  }
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleValue function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(function.isObject());
-    DCHECK(JS_ObjectIsFunction(context_, JSVAL_TO_OBJECT(function)));
-  }
-
-  CallbackResult<R> Run(
-      typename base::internal::CallbackParamTraits<A1>::ForwardType a1,
-      typename base::internal::CallbackParamTraits<A2>::ForwardType a2)
-      const OVERRIDE {
-    ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-    TRACK_MEMORY_SCOPE("Javascript");
-    TRACE_EVENT0("cobalt::script::mozjs", "MozjsCallbackFunction::Run");
-    CallbackResult<R> callback_result;
-    JSAutoRequest auto_request(context_);
-    JS::RootedObject function(context_, weak_function_.GetObject());
-    if (!function) {
-      DLOG(WARNING) << "Function was garbage collected.";
-      callback_result.exception = true;
-      return callback_result;
-    }
-
-    JSAutoCompartment auto_compartment(context_, function);
-    AutoSaveExceptionState auto_save_exception_state(context_);
-
-    // https://www.w3.org/TR/WebIDL/#es-invoking-callback-functions
-    // Callback 'this' is set to null, unless overridden by other specifications
-    JS::Value this_value(JS::NullValue());
-    JS::RootedValue return_value(context_);
-    const int kNumArguments = 2;
-    JS::Value args[2];
-    js::SetValueRangeToNull(args, kNumArguments);
-    js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-    ToJSValue(context_, a1, auto_array_rooter.handleAt(0));
-    ToJSValue(context_, a2, auto_array_rooter.handleAt(1));
-
-    JSBool call_result = JS::Call(context_, this_value, function,
-        kNumArguments, args, return_value.address());
-    if (!call_result) {
-      DLOG(WARNING) << "Exception in callback: "
-                    << util::GetExceptionString(context_);
-      callback_result.exception = true;
-    } else {
-      callback_result = ConvertCallbackReturnValue<R>(context_, return_value);
-    }
-
-    return callback_result;
-  }
-
-  JSObject* handle() const { return weak_function_.GetObject(); }
-  const JS::Value& value() const { return weak_function_.GetValue(); }
-  bool WasCollected() const { return weak_function_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_function_;
-};
-
-template <typename R, typename A1, typename A2, typename A3>
-class MozjsCallbackFunction<R(A1, A2, A3)>
-    : public CallbackFunction<R(A1, A2, A3)> {
- public:
-  typedef CallbackFunction<R(A1, A2, A3)> BaseType;
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleObject function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(JS_ObjectIsFunction(context_, function));
-  }
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleValue function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(function.isObject());
-    DCHECK(JS_ObjectIsFunction(context_, JSVAL_TO_OBJECT(function)));
-  }
-
-  CallbackResult<R> Run(
-      typename base::internal::CallbackParamTraits<A1>::ForwardType a1,
-      typename base::internal::CallbackParamTraits<A2>::ForwardType a2,
-      typename base::internal::CallbackParamTraits<A3>::ForwardType a3)
-      const OVERRIDE {
-    ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-    TRACK_MEMORY_SCOPE("Javascript");
-    TRACE_EVENT0("cobalt::script::mozjs", "MozjsCallbackFunction::Run");
-    CallbackResult<R> callback_result;
-    JSAutoRequest auto_request(context_);
-    JS::RootedObject function(context_, weak_function_.GetObject());
-    if (!function) {
-      DLOG(WARNING) << "Function was garbage collected.";
-      callback_result.exception = true;
-      return callback_result;
-    }
-
-    JSAutoCompartment auto_compartment(context_, function);
-    AutoSaveExceptionState auto_save_exception_state(context_);
-
-    // https://www.w3.org/TR/WebIDL/#es-invoking-callback-functions
-    // Callback 'this' is set to null, unless overridden by other specifications
-    JS::Value this_value(JS::NullValue());
-    JS::RootedValue return_value(context_);
-    const int kNumArguments = 3;
-    JS::Value args[3];
-    js::SetValueRangeToNull(args, kNumArguments);
-    js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-    ToJSValue(context_, a1, auto_array_rooter.handleAt(0));
-    ToJSValue(context_, a2, auto_array_rooter.handleAt(1));
-    ToJSValue(context_, a3, auto_array_rooter.handleAt(2));
-
-    JSBool call_result = JS::Call(context_, this_value, function,
-        kNumArguments, args, return_value.address());
-    if (!call_result) {
-      DLOG(WARNING) << "Exception in callback: "
-                    << util::GetExceptionString(context_);
-      callback_result.exception = true;
-    } else {
-      callback_result = ConvertCallbackReturnValue<R>(context_, return_value);
-    }
-
-    return callback_result;
-  }
-
-  JSObject* handle() const { return weak_function_.GetObject(); }
-  const JS::Value& value() const { return weak_function_.GetValue(); }
-  bool WasCollected() const { return weak_function_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_function_;
-};
-
-template <typename R, typename A1, typename A2, typename A3, typename A4>
-class MozjsCallbackFunction<R(A1, A2, A3, A4)>
-    : public CallbackFunction<R(A1, A2, A3, A4)> {
- public:
-  typedef CallbackFunction<R(A1, A2, A3, A4)> BaseType;
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleObject function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(JS_ObjectIsFunction(context_, function));
-  }
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleValue function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(function.isObject());
-    DCHECK(JS_ObjectIsFunction(context_, JSVAL_TO_OBJECT(function)));
-  }
-
-  CallbackResult<R> Run(
-      typename base::internal::CallbackParamTraits<A1>::ForwardType a1,
-      typename base::internal::CallbackParamTraits<A2>::ForwardType a2,
-      typename base::internal::CallbackParamTraits<A3>::ForwardType a3,
-      typename base::internal::CallbackParamTraits<A4>::ForwardType a4)
-      const OVERRIDE {
-    ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-    TRACK_MEMORY_SCOPE("Javascript");
-    TRACE_EVENT0("cobalt::script::mozjs", "MozjsCallbackFunction::Run");
-    CallbackResult<R> callback_result;
-    JSAutoRequest auto_request(context_);
-    JS::RootedObject function(context_, weak_function_.GetObject());
-    if (!function) {
-      DLOG(WARNING) << "Function was garbage collected.";
-      callback_result.exception = true;
-      return callback_result;
-    }
-
-    JSAutoCompartment auto_compartment(context_, function);
-    AutoSaveExceptionState auto_save_exception_state(context_);
-
-    // https://www.w3.org/TR/WebIDL/#es-invoking-callback-functions
-    // Callback 'this' is set to null, unless overridden by other specifications
-    JS::Value this_value(JS::NullValue());
-    JS::RootedValue return_value(context_);
-    const int kNumArguments = 4;
-    JS::Value args[4];
-    js::SetValueRangeToNull(args, kNumArguments);
-    js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-    ToJSValue(context_, a1, auto_array_rooter.handleAt(0));
-    ToJSValue(context_, a2, auto_array_rooter.handleAt(1));
-    ToJSValue(context_, a3, auto_array_rooter.handleAt(2));
-    ToJSValue(context_, a4, auto_array_rooter.handleAt(3));
-
-    JSBool call_result = JS::Call(context_, this_value, function,
-        kNumArguments, args, return_value.address());
-    if (!call_result) {
-      DLOG(WARNING) << "Exception in callback: "
-                    << util::GetExceptionString(context_);
-      callback_result.exception = true;
-    } else {
-      callback_result = ConvertCallbackReturnValue<R>(context_, return_value);
-    }
-
-    return callback_result;
-  }
-
-  JSObject* handle() const { return weak_function_.GetObject(); }
-  const JS::Value& value() const { return weak_function_.GetValue(); }
-  bool WasCollected() const { return weak_function_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_function_;
-};
-
-template <typename R, typename A1, typename A2, typename A3, typename A4,
-    typename A5>
-class MozjsCallbackFunction<R(A1, A2, A3, A4, A5)>
-    : public CallbackFunction<R(A1, A2, A3, A4, A5)> {
- public:
-  typedef CallbackFunction<R(A1, A2, A3, A4, A5)> BaseType;
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleObject function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(JS_ObjectIsFunction(context_, function));
-  }
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleValue function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(function.isObject());
-    DCHECK(JS_ObjectIsFunction(context_, JSVAL_TO_OBJECT(function)));
-  }
-
-  CallbackResult<R> Run(
-      typename base::internal::CallbackParamTraits<A1>::ForwardType a1,
-      typename base::internal::CallbackParamTraits<A2>::ForwardType a2,
-      typename base::internal::CallbackParamTraits<A3>::ForwardType a3,
-      typename base::internal::CallbackParamTraits<A4>::ForwardType a4,
-      typename base::internal::CallbackParamTraits<A5>::ForwardType a5)
-      const OVERRIDE {
-    ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-    TRACK_MEMORY_SCOPE("Javascript");
-    TRACE_EVENT0("cobalt::script::mozjs", "MozjsCallbackFunction::Run");
-    CallbackResult<R> callback_result;
-    JSAutoRequest auto_request(context_);
-    JS::RootedObject function(context_, weak_function_.GetObject());
-    if (!function) {
-      DLOG(WARNING) << "Function was garbage collected.";
-      callback_result.exception = true;
-      return callback_result;
-    }
-
-    JSAutoCompartment auto_compartment(context_, function);
-    AutoSaveExceptionState auto_save_exception_state(context_);
-
-    // https://www.w3.org/TR/WebIDL/#es-invoking-callback-functions
-    // Callback 'this' is set to null, unless overridden by other specifications
-    JS::Value this_value(JS::NullValue());
-    JS::RootedValue return_value(context_);
-    const int kNumArguments = 5;
-    JS::Value args[5];
-    js::SetValueRangeToNull(args, kNumArguments);
-    js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-    ToJSValue(context_, a1, auto_array_rooter.handleAt(0));
-    ToJSValue(context_, a2, auto_array_rooter.handleAt(1));
-    ToJSValue(context_, a3, auto_array_rooter.handleAt(2));
-    ToJSValue(context_, a4, auto_array_rooter.handleAt(3));
-    ToJSValue(context_, a5, auto_array_rooter.handleAt(4));
-
-    JSBool call_result = JS::Call(context_, this_value, function,
-        kNumArguments, args, return_value.address());
-    if (!call_result) {
-      DLOG(WARNING) << "Exception in callback: "
-                    << util::GetExceptionString(context_);
-      callback_result.exception = true;
-    } else {
-      callback_result = ConvertCallbackReturnValue<R>(context_, return_value);
-    }
-
-    return callback_result;
-  }
-
-  JSObject* handle() const { return weak_function_.GetObject(); }
-  const JS::Value& value() const { return weak_function_.GetValue(); }
-  bool WasCollected() const { return weak_function_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_function_;
-};
-
-template <typename R, typename A1, typename A2, typename A3, typename A4,
-    typename A5, typename A6>
-class MozjsCallbackFunction<R(A1, A2, A3, A4, A5, A6)>
-    : public CallbackFunction<R(A1, A2, A3, A4, A5, A6)> {
- public:
-  typedef CallbackFunction<R(A1, A2, A3, A4, A5, A6)> BaseType;
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleObject function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(JS_ObjectIsFunction(context_, function));
-  }
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleValue function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(function.isObject());
-    DCHECK(JS_ObjectIsFunction(context_, JSVAL_TO_OBJECT(function)));
-  }
-
-  CallbackResult<R> Run(
-      typename base::internal::CallbackParamTraits<A1>::ForwardType a1,
-      typename base::internal::CallbackParamTraits<A2>::ForwardType a2,
-      typename base::internal::CallbackParamTraits<A3>::ForwardType a3,
-      typename base::internal::CallbackParamTraits<A4>::ForwardType a4,
-      typename base::internal::CallbackParamTraits<A5>::ForwardType a5,
-      typename base::internal::CallbackParamTraits<A6>::ForwardType a6)
-      const OVERRIDE {
-    ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-    TRACK_MEMORY_SCOPE("Javascript");
-    TRACE_EVENT0("cobalt::script::mozjs", "MozjsCallbackFunction::Run");
-    CallbackResult<R> callback_result;
-    JSAutoRequest auto_request(context_);
-    JS::RootedObject function(context_, weak_function_.GetObject());
-    if (!function) {
-      DLOG(WARNING) << "Function was garbage collected.";
-      callback_result.exception = true;
-      return callback_result;
-    }
-
-    JSAutoCompartment auto_compartment(context_, function);
-    AutoSaveExceptionState auto_save_exception_state(context_);
-
-    // https://www.w3.org/TR/WebIDL/#es-invoking-callback-functions
-    // Callback 'this' is set to null, unless overridden by other specifications
-    JS::Value this_value(JS::NullValue());
-    JS::RootedValue return_value(context_);
-    const int kNumArguments = 6;
-    JS::Value args[6];
-    js::SetValueRangeToNull(args, kNumArguments);
-    js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-    ToJSValue(context_, a1, auto_array_rooter.handleAt(0));
-    ToJSValue(context_, a2, auto_array_rooter.handleAt(1));
-    ToJSValue(context_, a3, auto_array_rooter.handleAt(2));
-    ToJSValue(context_, a4, auto_array_rooter.handleAt(3));
-    ToJSValue(context_, a5, auto_array_rooter.handleAt(4));
-    ToJSValue(context_, a6, auto_array_rooter.handleAt(5));
-
-    JSBool call_result = JS::Call(context_, this_value, function,
-        kNumArguments, args, return_value.address());
-    if (!call_result) {
-      DLOG(WARNING) << "Exception in callback: "
-                    << util::GetExceptionString(context_);
-      callback_result.exception = true;
-    } else {
-      callback_result = ConvertCallbackReturnValue<R>(context_, return_value);
-    }
-
-    return callback_result;
-  }
-
-  JSObject* handle() const { return weak_function_.GetObject(); }
-  const JS::Value& value() const { return weak_function_.GetValue(); }
-  bool WasCollected() const { return weak_function_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_function_;
-};
-
-template <typename R, typename A1, typename A2, typename A3, typename A4,
-    typename A5, typename A6, typename A7>
-class MozjsCallbackFunction<R(A1, A2, A3, A4, A5, A6, A7)>
-    : public CallbackFunction<R(A1, A2, A3, A4, A5, A6, A7)> {
- public:
-  typedef CallbackFunction<R(A1, A2, A3, A4, A5, A6, A7)> BaseType;
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleObject function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(JS_ObjectIsFunction(context_, function));
-  }
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleValue function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(function.isObject());
-    DCHECK(JS_ObjectIsFunction(context_, JSVAL_TO_OBJECT(function)));
-  }
-
-  CallbackResult<R> Run(
-      typename base::internal::CallbackParamTraits<A1>::ForwardType a1,
-      typename base::internal::CallbackParamTraits<A2>::ForwardType a2,
-      typename base::internal::CallbackParamTraits<A3>::ForwardType a3,
-      typename base::internal::CallbackParamTraits<A4>::ForwardType a4,
-      typename base::internal::CallbackParamTraits<A5>::ForwardType a5,
-      typename base::internal::CallbackParamTraits<A6>::ForwardType a6,
-      typename base::internal::CallbackParamTraits<A7>::ForwardType a7)
-      const OVERRIDE {
-    ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-    TRACK_MEMORY_SCOPE("Javascript");
-    TRACE_EVENT0("cobalt::script::mozjs", "MozjsCallbackFunction::Run");
-    CallbackResult<R> callback_result;
-    JSAutoRequest auto_request(context_);
-    JS::RootedObject function(context_, weak_function_.GetObject());
-    if (!function) {
-      DLOG(WARNING) << "Function was garbage collected.";
-      callback_result.exception = true;
-      return callback_result;
-    }
-
-    JSAutoCompartment auto_compartment(context_, function);
-    AutoSaveExceptionState auto_save_exception_state(context_);
-
-    // https://www.w3.org/TR/WebIDL/#es-invoking-callback-functions
-    // Callback 'this' is set to null, unless overridden by other specifications
-    JS::Value this_value(JS::NullValue());
-    JS::RootedValue return_value(context_);
-    const int kNumArguments = 7;
-    JS::Value args[7];
-    js::SetValueRangeToNull(args, kNumArguments);
-    js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-    ToJSValue(context_, a1, auto_array_rooter.handleAt(0));
-    ToJSValue(context_, a2, auto_array_rooter.handleAt(1));
-    ToJSValue(context_, a3, auto_array_rooter.handleAt(2));
-    ToJSValue(context_, a4, auto_array_rooter.handleAt(3));
-    ToJSValue(context_, a5, auto_array_rooter.handleAt(4));
-    ToJSValue(context_, a6, auto_array_rooter.handleAt(5));
-    ToJSValue(context_, a7, auto_array_rooter.handleAt(6));
-
-    JSBool call_result = JS::Call(context_, this_value, function,
-        kNumArguments, args, return_value.address());
-    if (!call_result) {
-      DLOG(WARNING) << "Exception in callback: "
-                    << util::GetExceptionString(context_);
-      callback_result.exception = true;
-    } else {
-      callback_result = ConvertCallbackReturnValue<R>(context_, return_value);
-    }
-
-    return callback_result;
-  }
-
-  JSObject* handle() const { return weak_function_.GetObject(); }
-  const JS::Value& value() const { return weak_function_.GetValue(); }
-  bool WasCollected() const { return weak_function_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_function_;
-};
-
-template <typename Signature>
-struct TypeTraits<CallbackFunction<Signature> > {
-  typedef MozjsUserObjectHolder<MozjsCallbackFunction<Signature> >
-      ConversionType;
-  typedef const ScriptValue<CallbackFunction<Signature> >* ReturnType;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_FUNCTION_H_
diff --git a/src/cobalt/script/mozjs/mozjs_callback_function.h.pump b/src/cobalt/script/mozjs/mozjs_callback_function.h.pump
deleted file mode 100644
index 3cfea93..0000000
--- a/src/cobalt/script/mozjs/mozjs_callback_function.h.pump
+++ /dev/null
@@ -1,155 +0,0 @@
-$$ This is a pump file for generating file templates.  Pump is a python
-$$ script that is part of the Google Test suite of utilities.  Description
-$$ can be found here:
-$$
-$$ http://code.google.com/p/googletest/wiki/PumpManual
-$$
-
-$$ This should be no larger than MAX_ARITY in base/bind.h.pump.
-$var MAX_ARITY = 7
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// clang-format off
-
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_FUNCTION_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_FUNCTION_H_
-
-#include "base/logging.h"
-#include "cobalt/script/callback_function.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/convert_callback_return_value.h"
-#include "cobalt/script/mozjs/util/exception_helpers.h"
-#include "cobalt/script/mozjs/util/stack_trace_helpers.h"
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "nb/memory_scope.h"
-#include "third_party/mozjs/js/jsd/jsd.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jscntxt.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// First, we forward declare the Callback class template. This informs the
-// compiler that the template only has 1 type parameter which is the base
-// CallbackFunction template class with parameters.
-//
-// See base/callback.h.pump for further discussion on this pattern.
-template <typename Sig>
-class MozjsCallbackFunction;
-
-$range ARITY 0..MAX_ARITY
-$for ARITY [[
-$range ARG 1..ARITY
-
-
-$if ARITY == 0 [[
-template <typename R>
-class MozjsCallbackFunction<R(void)>
-    : public CallbackFunction<R(void)> {
-]] $else [[
-template <typename R, $for ARG , [[typename A$(ARG)]]>
-class MozjsCallbackFunction<R($for ARG , [[A$(ARG)]])>
-    : public CallbackFunction<R($for ARG , [[A$(ARG)]])> {
-]]
-
- public:
-  typedef CallbackFunction<R($for ARG , [[A$(ARG)]])> BaseType;
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleObject function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(JS_ObjectIsFunction(context_, function));
-  }
-
-  explicit MozjsCallbackFunction(JSContext* context, JS::HandleValue function)
-      : context_(context), weak_function_(context, function) {
-    DCHECK(context_);
-    DCHECK(function.isObject());
-    DCHECK(JS_ObjectIsFunction(context_, JSVAL_TO_OBJECT(function)));
-  }
-
-  CallbackResult<R> Run($for ARG , [[
-
-      typename base::internal::CallbackParamTraits<A$(ARG)>::ForwardType a$(ARG)]])
-      const OVERRIDE {
-    ENABLE_JS_STACK_TRACE_IN_SCOPE(context_);
-    TRACK_MEMORY_SCOPE("Javascript");
-    TRACE_EVENT0("cobalt::script::mozjs", "MozjsCallbackFunction::Run");
-    CallbackResult<R> callback_result;
-    JSAutoRequest auto_request(context_);
-    JS::RootedObject function(context_, weak_function_.GetObject());
-    if (!function) {
-      DLOG(WARNING) << "Function was garbage collected.";
-      callback_result.exception = true;
-      return callback_result;
-    }
-
-    JSAutoCompartment auto_compartment(context_, function);
-    AutoSaveExceptionState auto_save_exception_state(context_);
-
-    // https://www.w3.org/TR/WebIDL/#es-invoking-callback-functions
-    // Callback 'this' is set to null, unless overridden by other specifications
-    JS::Value this_value(JS::NullValue());
-    JS::RootedValue return_value(context_);
-    const int kNumArguments = $(ARITY);
-
-$if ARITY > 0 [[
-    JS::Value args[$(ARITY)];
-    js::SetValueRangeToNull(args, kNumArguments);
-    js::AutoValueArray auto_array_rooter(context_, args, kNumArguments);
-    $for ARG [[ToJSValue(context_, a$(ARG), auto_array_rooter.handleAt($(ARG - 1)));
-    ]]
-
-    JSBool call_result = JS::Call(context_, this_value, function,
-        kNumArguments, args, return_value.address());
-]] $else [[
-    JSBool call_result = JS::Call(context_, this_value, function, 0, NULL,
-        return_value.address());
-]]
-
-    if (!call_result) {
-      DLOG(WARNING) << "Exception in callback: "
-                    << util::GetExceptionString(context_);
-      callback_result.exception = true;
-    } else {
-      callback_result = ConvertCallbackReturnValue<R>(context_, return_value);
-    }
-
-    return callback_result;
-  }
-
-  JSObject* handle() const { return weak_function_.GetObject(); }
-  const JS::Value& value() const { return weak_function_.GetValue(); }
-  bool WasCollected() const { return weak_function_.WasCollected(); }
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_function_;
-};
-
-]]
-
-template <typename Signature>
-struct TypeTraits<CallbackFunction<Signature> > {
-  typedef MozjsUserObjectHolder<MozjsCallbackFunction<Signature> > ConversionType;
-  typedef const ScriptValue<CallbackFunction<Signature> >* ReturnType;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_FUNCTION_H_
diff --git a/src/cobalt/script/mozjs/mozjs_callback_interface.cc b/src/cobalt/script/mozjs/mozjs_callback_interface.cc
deleted file mode 100644
index 99b7a7f..0000000
--- a/src/cobalt/script/mozjs/mozjs_callback_interface.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/mozjs_callback_interface.h"
-
-#include "base/logging.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Helper class to get the actual callable object from a JSObject implementing
-// a callback interface.
-// Returns true if a callable was found, and false if not.
-bool GetCallableForCallbackInterface(JSContext* context,
-                                     JS::HandleObject implementing_object,
-                                     const char* property_name,
-                                     JS::MutableHandleValue out_callable) {
-  DCHECK(implementing_object);
-  DCHECK(property_name);
-
-  if (JS_ObjectIsCallable(context, implementing_object)) {
-    out_callable.set(OBJECT_TO_JSVAL(implementing_object));
-    return true;
-  }
-  // Implementing object is not callable. Check for a callable property of the
-  // specified name.
-  JS::RootedValue property(context);
-  if (JS_GetProperty(context, implementing_object, property_name,
-                     property.address())) {
-    if (property.isObject() &&
-        JS_ObjectIsCallable(context, JSVAL_TO_OBJECT(property))) {
-      out_callable.set(property);
-      return true;
-    }
-  }
-
-  // Implementing object is not callable, nor does it have a callable property
-  // of the specified name.
-  return false;
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/mozjs_callback_interface.h b/src/cobalt/script/mozjs/mozjs_callback_interface.h
deleted file mode 100644
index a6d3f6f..0000000
--- a/src/cobalt/script/mozjs/mozjs_callback_interface.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_INTERFACE_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_INTERFACE_H_
-
-#include "cobalt/script/callback_interface_traits.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Helper class to get the actual callable object from a JSObject implementing
-// a callback interface.
-// Returns true if a callable was found, and false if not.
-bool GetCallableForCallbackInterface(JSContext* context,
-                                     JS::HandleObject implementing_object,
-                                     const char* property_name,
-                                     JS::MutableHandleValue out_callable);
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_INTERFACE_H_
diff --git a/src/cobalt/script/mozjs/mozjs_callback_interface_holder.h b/src/cobalt/script/mozjs/mozjs_callback_interface_holder.h
deleted file mode 100644
index 74505f0..0000000
--- a/src/cobalt/script/mozjs/mozjs_callback_interface_holder.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_INTERFACE_HOLDER_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_INTERFACE_HOLDER_H_
-
-#include "base/memory/scoped_ptr.h"
-#include "cobalt/script/callback_interface_traits.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/type_traits.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-template <typename MozjsCallbackInterface>
-class MozjsCallbackInterfaceHolder
-    : public MozjsUserObjectHolder<MozjsCallbackInterface> {
- public:
-  typedef MozjsUserObjectHolder<MozjsCallbackInterface> BaseClass;
-  MozjsCallbackInterfaceHolder() {}
-  MozjsCallbackInterfaceHolder(JS::HandleObject object, JSContext* context,
-                               WrapperFactory* wrapper_factory)
-      : BaseClass(object, context, wrapper_factory) {}
-  MozjsCallbackInterfaceHolder(JS::HandleValue value, JSContext* context,
-                               WrapperFactory* wrapper_factory)
-      : BaseClass(value, context, wrapper_factory) {}
-};
-
-template <typename CallbackInterface>
-struct TypeTraits<CallbackInterfaceTraits<CallbackInterface> > {
-  typedef MozjsCallbackInterfaceHolder<typename CallbackInterfaceTraits<
-      CallbackInterface>::MozjsCallbackInterfaceClass> ConversionType;
-  typedef const ScriptValue<CallbackInterface>* ReturnType;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_CALLBACK_INTERFACE_HOLDER_H_
diff --git a/src/cobalt/script/mozjs/mozjs_debugger.cc b/src/cobalt/script/mozjs/mozjs_debugger.cc
deleted file mode 100644
index 347508d..0000000
--- a/src/cobalt/script/mozjs/mozjs_debugger.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/mozjs_debugger.h"
-
-#include "base/logging.h"
-
-namespace cobalt {
-namespace script {
-
-// Static factory method declared in public interface.
-scoped_ptr<ScriptDebugger> ScriptDebugger::CreateDebugger(
-    GlobalEnvironment* global_environment, Delegate* delegate) {
-  return scoped_ptr<ScriptDebugger>(
-      new mozjs::MozjsDebugger(global_environment, delegate));
-}
-
-namespace mozjs {
-
-MozjsDebugger::MozjsDebugger(GlobalEnvironment* global_environment,
-                             Delegate* delegate) {
-  NOTIMPLEMENTED();
-}
-
-MozjsDebugger::~MozjsDebugger() { NOTIMPLEMENTED(); }
-
-void MozjsDebugger::Attach() { NOTIMPLEMENTED(); }
-
-void MozjsDebugger::Detach() { NOTIMPLEMENTED(); }
-
-void MozjsDebugger::Pause() { NOTIMPLEMENTED(); }
-
-void MozjsDebugger::Resume() { NOTIMPLEMENTED(); }
-
-void MozjsDebugger::SetBreakpoint(const std::string& script_id, int line_number,
-                                  int column_number) {
-  NOTIMPLEMENTED();
-}
-
-script::ScriptDebugger::PauseOnExceptionsState
-MozjsDebugger::SetPauseOnExceptions(PauseOnExceptionsState state) {
-  NOTIMPLEMENTED();
-  return kNone;
-}
-
-void MozjsDebugger::StepInto() { NOTIMPLEMENTED(); }
-
-void MozjsDebugger::StepOut() { NOTIMPLEMENTED(); }
-
-void MozjsDebugger::StepOver() { NOTIMPLEMENTED(); }
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/mozjs_debugger.h b/src/cobalt/script/mozjs/mozjs_debugger.h
deleted file mode 100644
index 473a7e9..0000000
--- a/src/cobalt/script/mozjs/mozjs_debugger.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_DEBUGGER_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_DEBUGGER_H_
-
-#include <string>
-
-#include "cobalt/script/script_debugger.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-class MozjsDebugger : public ScriptDebugger {
- public:
-  MozjsDebugger(GlobalEnvironment* global_environment, Delegate* delegate);
-  ~MozjsDebugger() OVERRIDE;
-
-  // Implementation of ScriptDebugger.
-  void Attach() OVERRIDE;
-  void Detach() OVERRIDE;
-  void Pause() OVERRIDE;
-  void Resume() OVERRIDE;
-  void SetBreakpoint(const std::string& script_id, int line_number,
-                     int column_number) OVERRIDE;
-  PauseOnExceptionsState SetPauseOnExceptions(
-      PauseOnExceptionsState state) OVERRIDE;
-  void StepInto() OVERRIDE;
-  void StepOut() OVERRIDE;
-  void StepOver() OVERRIDE;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_DEBUGGER_H_
diff --git a/src/cobalt/script/mozjs/mozjs_engine.cc b/src/cobalt/script/mozjs/mozjs_engine.cc
deleted file mode 100644
index cfc1c5e..0000000
--- a/src/cobalt/script/mozjs/mozjs_engine.cc
+++ /dev/null
@@ -1,307 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/mozjs_engine.h"
-
-#include <algorithm>
-#include <string>
-
-#include "base/debug/trace_event.h"
-#include "base/file_path.h"
-#include "base/logging.h"
-#include "base/message_loop.h"
-#include "cobalt/base/c_val.h"
-#include "cobalt/browser/stack_size_constants.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/util/stack_trace_helpers.h"
-#include "third_party/mozjs/cobalt_config/include/jscustomallocator.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jscntxt.h"
-#include "third_party/mozjs/js/src/jsdbgapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace {
-// Trigger garbage collection this many seconds after the last one.
-const int kGarbageCollectionIntervalSeconds = 60;
-
-JSBool CheckAccessStub(JSContext*, JS::Handle<JSObject*>, JS::Handle<jsid>,
-                       JSAccessMode, JS::MutableHandle<JS::Value>) {
-  return true;
-}
-
-JSSecurityCallbacks security_callbacks = {
-  CheckAccessStub,
-  MozjsGlobalEnvironment::CheckEval
-};
-
-class EngineStats {
- public:
-  EngineStats();
-
-  static EngineStats* GetInstance() {
-    return Singleton<EngineStats,
-                     StaticMemorySingletonTraits<EngineStats> >::get();
-  }
-
-  void EngineCreated() { ++engine_count_; }
-  void EngineDestroyed() { --engine_count_; }
-
-  size_t UpdateMemoryStatsAndReturnReserved() {
-    // Accessing CVals triggers a lock, so rely on local variables when
-    // possible to avoid unecessary locking.
-    size_t allocated_memory =
-        MemoryAllocatorReporter::Get()->GetCurrentBytesAllocated();
-    size_t mapped_memory =
-        MemoryAllocatorReporter::Get()->GetCurrentBytesMapped();
-
-    allocated_memory_ = allocated_memory;
-    mapped_memory_ = mapped_memory;
-
-    return allocated_memory + mapped_memory;
-  }
-
- private:
-  base::CVal<int> engine_count_;
-  base::CVal<base::cval::SizeInBytes, base::CValPublic> allocated_memory_;
-  base::CVal<base::cval::SizeInBytes, base::CValPublic> mapped_memory_;
-};
-
-EngineStats::EngineStats()
-    : engine_count_("Count.JS.Engine", 0,
-                    "Total JavaScript engine registered."),
-      allocated_memory_("Memory.JS.AllocatedMemory", 0,
-                        "JS memory occupied by the Mozjs allocator."),
-      mapped_memory_("Memory.JS.MappedMemory", 0, "JS mapped memory.") {}
-
-// Pretend we always preserve wrappers since we never call
-// SetPreserveWrapperCallback anywhere else. This is necessary for
-// TryPreserveReflector called by WeakMap to not crash. Disabling
-// bindings to WeakMap does not appear to be an easy option because
-// of its use in selfhosted.js. See bugzilla discussion linked where
-// they decided to include a similar dummy in the mozjs shell.
-// https://bugzilla.mozilla.org/show_bug.cgi?id=829798
-bool DummyPreserveWrapperCallback(JSContext *cx, JSObject *obj) {
-  return true;
-}
-}  // namespace
-
-MozjsEngine::MozjsEngine(const Options& options)
-    : accumulated_extra_memory_cost_(0),
-      moz_options_(options) {
-  TRACE_EVENT0("cobalt::script", "MozjsEngine::MozjsEngine()");
-  // TODO: Investigate the benefit of helper threads and things like
-  // parallel compilation.
-  runtime_ = JS_NewRuntime(moz_options_.js_options.gc_threshold_bytes,
-                           JS_NO_HELPER_THREADS);
-  CHECK(runtime_);
-
-  // Sets the size of the native stack that should not be exceeded.
-  // Setting three quarters of the web module stack size to ensure that native
-  // stack won't exceed the stack size.
-  JS_SetNativeStackQuota(runtime_,
-                         cobalt::browser::kWebModuleStackSize / 4 * 3);
-
-  JS_SetRuntimePrivate(runtime_, this);
-
-  JS_SetSecurityCallbacks(runtime_, &security_callbacks);
-
-  // Use incremental garbage collection.
-  JS_SetGCParameter(runtime_, JSGC_MODE, JSGC_MODE_INCREMENTAL);
-
-  // Allow Spidermonkey to allocate as much memory as it needs. If this limit
-  // is set we could limit the memory used by JS and "gracefully" restart,
-  // for example.
-  JS_SetGCParameter(runtime_, JSGC_MAX_BYTES, 0xffffffff);
-
-  // Callback to be called whenever a JSContext is created or destroyed for this
-  // JSRuntime.
-  JS_SetContextCallback(runtime_, &MozjsEngine::ContextCallback);
-
-  // Callback to be called at different points during garbage collection.
-  JS_SetGCCallback(runtime_, &MozjsEngine::GCCallback);
-
-  // Callback to be called during garbage collection during the sweep phase.
-  JS_SetFinalizeCallback(runtime_, &MozjsEngine::FinalizeCallback);
-
-  js::SetPreserveWrapperCallback(runtime_, DummyPreserveWrapperCallback);
-
-  EngineStats::GetInstance()->EngineCreated();
-
-  if (MessageLoop::current()) {
-    gc_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(
-                                   kGarbageCollectionIntervalSeconds),
-                    this, &MozjsEngine::TimerGarbageCollect);
-  }
-}
-
-MozjsEngine::~MozjsEngine() {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  EngineStats::GetInstance()->EngineDestroyed();
-  JS_DestroyRuntime(runtime_);
-}
-
-scoped_refptr<GlobalEnvironment> MozjsEngine::CreateGlobalEnvironment() {
-  TRACE_EVENT0("cobalt::script", "MozjsEngine::CreateGlobalEnvironment()");
-  DCHECK(thread_checker_.CalledOnValidThread());
-  return new MozjsGlobalEnvironment(runtime_, moz_options_.js_options);
-}
-
-void MozjsEngine::CollectGarbage() {
-  TRACE_EVENT0("cobalt::script", "MozjsEngine::CollectGarbage()");
-  DCHECK(thread_checker_.CalledOnValidThread());
-  JS_GC(runtime_);
-}
-
-void MozjsEngine::ReportExtraMemoryCost(size_t bytes) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  accumulated_extra_memory_cost_ += bytes;
-
-  const bool do_collect_garbage = accumulated_extra_memory_cost_ >
-                                  moz_options_.js_options.gc_threshold_bytes;
-  if (do_collect_garbage) {
-    accumulated_extra_memory_cost_ = 0;
-    CollectGarbage();
-  }
-}
-
-bool MozjsEngine::RegisterErrorHandler(JavaScriptEngine::ErrorHandler handler) {
-  error_handler_ = handler;
-  JSDebugErrorHook hook = ErrorHookCallback;
-  void* closure = this;
-  JS_SetDebugErrorHook(runtime_, hook, closure);
-  return true;
-}
-
-void MozjsEngine::SetGcThreshold(int64_t bytes) {
-  runtime_->setGCMaxMallocBytes(static_cast<size_t>(bytes));
-}
-
-void MozjsEngine::TimerGarbageCollect() {
-  TRACE_EVENT0("cobalt::script", "MozjsEngine::TimerGarbageCollect()");
-  CollectGarbage();
-}
-
-JSBool MozjsEngine::ContextCallback(JSContext* context, unsigned context_op) {
-  JSRuntime* runtime = JS_GetRuntime(context);
-  MozjsEngine* engine =
-      static_cast<MozjsEngine*>(JS_GetRuntimePrivate(runtime));
-  DCHECK(engine->thread_checker_.CalledOnValidThread());
-  if (context_op == JSCONTEXT_NEW) {
-    engine->contexts_.push_back(context);
-  } else if (context_op == JSCONTEXT_DESTROY) {
-    ContextVector::iterator it =
-        std::find(engine->contexts_.begin(), engine->contexts_.end(), context);
-    if (it != engine->contexts_.end()) {
-      engine->contexts_.erase(it);
-    }
-  }
-  return true;
-}
-
-void MozjsEngine::GCCallback(JSRuntime* runtime, JSGCStatus status) {
-  MozjsEngine* engine =
-      static_cast<MozjsEngine*>(JS_GetRuntimePrivate(runtime));
-  if (status == JSGC_END) {
-    engine->accumulated_extra_memory_cost_ = 0;
-    // Reset the GC timer to avoid having the timed GC come soon after this one.
-    if (engine->gc_timer_.IsRunning()) {
-      engine->gc_timer_.Reset();
-    }
-  }
-  for (int i = 0; i < engine->contexts_.size(); ++i) {
-    MozjsGlobalEnvironment* global_environment =
-        MozjsGlobalEnvironment::GetFromContext(engine->contexts_[i]);
-    if (status == JSGC_BEGIN) {
-      TRACE_EVENT_BEGIN0("cobalt::script", "SpiderMonkey Garbage Collection");
-      global_environment->BeginGarbageCollection();
-    } else if (status == JSGC_END) {
-      global_environment->EndGarbageCollection();
-      TRACE_EVENT_END0("cobalt::script", "SpiderMonkey Garbage Collection");
-    }
-  }
-}
-
-void MozjsEngine::FinalizeCallback(JSFreeOp* free_op, JSFinalizeStatus status,
-                                   JSBool is_compartment) {
-  TRACE_EVENT0("cobalt::script", "MozjsEngine::FinalizeCallback()");
-  MozjsEngine* engine =
-      static_cast<MozjsEngine*>(JS_GetRuntimePrivate(free_op->runtime()));
-  DCHECK(engine->thread_checker_.CalledOnValidThread());
-  if (status == JSFINALIZE_GROUP_START) {
-    for (int i = 0; i < engine->contexts_.size(); ++i) {
-      MozjsGlobalEnvironment* global_environment =
-          MozjsGlobalEnvironment::GetFromContext(engine->contexts_[i]);
-      global_environment->DoSweep();
-    }
-  }
-}
-
-JSBool MozjsEngine::ErrorHookCallback(JSContext* context, const char* message,
-                                      JSErrorReport* report, void* closure) {
-  MozjsEngine* this_ptr = static_cast<MozjsEngine*>(closure);
-  return this_ptr->ReportJSError(context, message, report);
-}
-
-JSBool MozjsEngine::ReportJSError(JSContext* context, const char* message,
-                                  JSErrorReport* report) {
-  const bool is_invalid =
-      error_handler_.is_null() || !report || !report->filename;
-
-  if (is_invalid) {
-    return true;  // Allow error to propagate in the mozilla engine.
-  }
-
-  // Report errors, warnings and uncaught exceptions. All other errors
-  // (like strict warnings) are ignored.
-  const bool do_report_error =
-      (report->flags == JSREPORT_ERROR) ||
-      (report->flags & JSREPORT_WARNING) ||
-      (report->errorNumber == JSMSG_UNCAUGHT_EXCEPTION);
-
-  if (do_report_error) {
-    std::string file_name = report->filename;
-    // Line/column can be zero for internal javascript exceptions. In this
-    // case set the values to 1, otherwise the base::SourceLocation object
-    // below will dcheck.
-    int line = std::max<int>(1, report->lineno);
-    int column = std::max<int>(1, report->column);
-    if (file_name.empty()) {
-      file_name = "<internal exception>";
-    }
-    base::SourceLocation source_location(file_name, line, column);
-    error_handler_.Run(source_location, message);
-  }
-
-  return true;  // Allow error to propagate in the mozilla engine.
-}
-
-}  // namespace mozjs
-
-scoped_ptr<JavaScriptEngine> JavaScriptEngine::CreateEngine(
-    const JavaScriptEngine::Options& options) {
-  TRACE_EVENT0("cobalt::script", "JavaScriptEngine::CreateEngine()");
-  mozjs::MozjsEngine::Options moz_options(options);
-  return make_scoped_ptr<JavaScriptEngine>(
-      new mozjs::MozjsEngine(moz_options));
-}
-
-size_t JavaScriptEngine::UpdateMemoryStatsAndReturnReserved() {
-  return mozjs::EngineStats::GetInstance()
-      ->UpdateMemoryStatsAndReturnReserved();
-}
-
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/mozjs_engine.h b/src/cobalt/script/mozjs/mozjs_engine.h
deleted file mode 100644
index 9dda81a..0000000
--- a/src/cobalt/script/mozjs/mozjs_engine.h
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_ENGINE_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_ENGINE_H_
-
-#include <vector>
-
-#include "base/threading/thread_checker.h"
-#include "base/timer.h"
-#include "cobalt/script/javascript_engine.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-class MozjsEngine : public JavaScriptEngine {
- public:
-  struct Options {
-    Options() {}
-    explicit Options(const JavaScriptEngine::Options& opt) : js_options(opt) {}
-    JavaScriptEngine::Options js_options;  // Generic settings.
-  };
-
-  explicit MozjsEngine(const Options& options);
-  ~MozjsEngine() OVERRIDE;
-
-  scoped_refptr<GlobalEnvironment> CreateGlobalEnvironment() OVERRIDE;
-
-  void CollectGarbage() OVERRIDE;
-  void ReportExtraMemoryCost(size_t bytes) OVERRIDE;
-  bool RegisterErrorHandler(JavaScriptEngine::ErrorHandler handler) OVERRIDE;
-  void SetGcThreshold(int64_t bytes) OVERRIDE;
-
- private:
-  void TimerGarbageCollect();
-  static JSBool ContextCallback(JSContext* context, unsigned context_op);
-  static void GCCallback(JSRuntime* runtime, JSGCStatus status);
-  static void FinalizeCallback(JSFreeOp* free_op, JSFinalizeStatus status,
-                               JSBool is_compartment);
-  static JSBool ErrorHookCallback(JSContext* context, const char* message,
-                                  JSErrorReport* report, void* closure);
-  JSBool ReportJSError(JSContext* context, const char* message,
-                       JSErrorReport* report);
-
-  base::ThreadChecker thread_checker_;
-
-  // Top-level object that represents the Javascript engine. Typically there is
-  // one per process, but it's allowed to have multiple.
-  JSRuntime* runtime_;
-
-  // A list of all contexts created for this JSRuntime.
-  typedef std::vector<JSContext*> ContextVector;
-  ContextVector contexts_;
-
-  // The amount of externally allocated memory since last forced GC.
-  size_t accumulated_extra_memory_cost_;
-
-  // Used to trigger a garbage collection periodically.
-  base::RepeatingTimer<MozjsEngine> gc_timer_;
-
-  // Used to handle javascript errors.
-  ErrorHandler error_handler_;
-
-  Options moz_options_;
-};
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_ENGINE_H_
diff --git a/src/cobalt/script/mozjs/mozjs_exception_state.cc b/src/cobalt/script/mozjs/mozjs_exception_state.cc
deleted file mode 100644
index ab6387d..0000000
--- a/src/cobalt/script/mozjs/mozjs_exception_state.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-
-#include <string>
-#include <vector>
-
-#include "base/logging.h"
-#include "base/string_number_conversions.h"
-#include "base/string_util.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "third_party/mozjs/js/src/jsexn.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-namespace {
-
-JSExnType ConvertToMozjsExceptionType(SimpleExceptionType type) {
-  switch (type) {
-    case kError:
-      return JSEXN_ERR;
-    case kTypeError:
-      return JSEXN_TYPEERR;
-    case kRangeError:
-      return JSEXN_RANGEERR;
-    case kReferenceError:
-      return JSEXN_REFERENCEERR;
-    case kSyntaxError:
-      return JSEXN_SYNTAXERR;
-    case kURIError:
-      return JSEXN_URIERR;
-  }
-  NOTREACHED();
-  return JSEXN_ERR;
-}
-
-// JSErrorCallback.
-const JSErrorFormatString* GetErrorMessage(void* user_ref, const char* locale,
-                                           const unsigned error_number) {
-  return static_cast<JSErrorFormatString*>(user_ref);
-}
-
-}  // namespace
-
-void MozjsExceptionState::SetException(
-    const scoped_refptr<ScriptException>& exception) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  DCHECK(!is_exception_set_);
-
-  MozjsGlobalEnvironment* global_environment =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context_));
-
-  JS::RootedObject exception_object(
-      context_,
-      global_environment->wrapper_factory()->GetWrapperProxy(exception));
-  JS::RootedValue exception_value(context_, OBJECT_TO_JSVAL(exception_object));
-  JS_SetPendingException(context_, exception_value);
-
-  is_exception_set_ = true;
-}
-
-void MozjsExceptionState::SetSimpleExceptionVA(SimpleExceptionType type,
-                                               const char* format,
-                                               va_list arguments) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  DCHECK(!is_exception_set_);
-
-  std::string error_message = base::StringPrintV(format, arguments);
-  JSErrorFormatString format_string;
-  format_string.format = error_message.c_str();
-  // Already fed arguments for format.
-  format_string.argCount = 0;
-  format_string.exnType = ConvertToMozjsExceptionType(type);
-
-  // This function creates a JSErrorReport, populate it with an error message
-  // obtained from the given JSErrorCallback. The resulting error message is
-  // passed to the context's JSErrorReporter callback.
-  JS_ReportErrorNumber(context_, GetErrorMessage,
-                       static_cast<void*>(&format_string), type);
-  is_exception_set_ = true;
-}
-
-JSObject* MozjsExceptionState::CreateErrorObject(JSContext* context,
-                                                 SimpleExceptionType type) {
-  JSExnType mozjs_type = ConvertToMozjsExceptionType(type);
-  JS::RootedObject error_prototype(context);
-  if (!JS_GetClassPrototype(context, GetExceptionProtoKey(mozjs_type),
-                            error_prototype.address())) {
-    DLOG(ERROR) << "Failed to get Error prototype.";
-    return NULL;
-  }
-  return JS_NewObject(context, NULL, error_prototype, NULL);
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/mozjs_exception_state.h b/src/cobalt/script/mozjs/mozjs_exception_state.h
deleted file mode 100644
index 440c6b7..0000000
--- a/src/cobalt/script/mozjs/mozjs_exception_state.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_EXCEPTION_STATE_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_EXCEPTION_STATE_H_
-
-#include <string>
-
-#include "base/threading/thread_checker.h"
-#include "cobalt/script/exception_state.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-class MozjsExceptionState : public ExceptionState {
- public:
-  explicit MozjsExceptionState(JSContext* context)
-      : is_exception_set_(false), context_(context) {}
-  // ExceptionState interface
-  void SetException(const scoped_refptr<ScriptException>& exception) OVERRIDE;
-  void SetSimpleExceptionVA(SimpleExceptionType type, const char* format,
-                            va_list arguments) OVERRIDE;
-
-  bool is_exception_set() const { return is_exception_set_; }
-
-  static JSObject* CreateErrorObject(JSContext* context,
-                                     SimpleExceptionType type);
-
- private:
-  bool is_exception_set_;
-  JSContext* context_;
-  base::ThreadChecker thread_checker_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_EXCEPTION_STATE_H_
diff --git a/src/cobalt/script/mozjs/mozjs_global_environment.cc b/src/cobalt/script/mozjs/mozjs_global_environment.cc
deleted file mode 100644
index 52af1fe..0000000
--- a/src/cobalt/script/mozjs/mozjs_global_environment.cc
+++ /dev/null
@@ -1,528 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-
-#include <algorithm>
-#include <utility>
-
-#include "base/lazy_instance.h"
-#include "base/stringprintf.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/embedded_resources.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_script_value_factory.h"
-#include "cobalt/script/mozjs/mozjs_source_code.h"
-#include "cobalt/script/mozjs/mozjs_wrapper_handle.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/referenced_object_map.h"
-#include "cobalt/script/mozjs/util/exception_helpers.h"
-#include "nb/memory_scope.h"
-#include "third_party/mozjs/js/jsd/jsd.h"
-#include "third_party/mozjs/js/public/RootingAPI.h"
-#include "third_party/mozjs/js/src/jsfriendapi.h"
-#include "third_party/mozjs/js/src/jsfun.h"
-#include "third_party/mozjs/js/src/jsobj.h"
-
-// A note on CompartmentOptions and Principals.
-// These concepts are an integral part of Gecko's security implementation, but
-// we don't need to be concerned with this for Cobalt.
-//
-// Compartments are separate regions of memory. Each global object has a
-// separate compartment. Since Cobalt will use a different JSRuntime for each
-// thread and each global object cannot access another directly anyways, this
-// shouldn't be an issue even in our development workflow.
-// If we support multiple windows in some form, a cross-compartment wrapper is
-// needed to access another global object. If they are same-origin this is
-// simpler.
-// Principals (or Security principals) are used to determine the security
-// relationship between two compartments. Since Cobalt does not have multiple
-// global objects there is no need to define Security principals. Even so,
-// it we'd likely want to implement such a security policy in an engine
-// independent way anyways.
-// See https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Script_security
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace {
-// Class definition for global object with no bindings.
-JSClass simple_global_class = {
-    "global",               // name
-    JSCLASS_GLOBAL_FLAGS,   // flags
-    JS_PropertyStub,        // addProperty
-    JS_DeletePropertyStub,  // delProperty
-    JS_PropertyStub,        // getProperty
-    JS_StrictPropertyStub,  // setProperty
-    JS_EnumerateStub,       // enumerate
-    JS_ResolveStub,         // resolve
-    JS_ConvertStub,         // convert
-};
-
-// 8192 is the recommended default value.
-const uint32_t kStackChunkSize = 8192;
-
-// This is the default in the spidermonkey shell.
-const uint32_t kMaxCodeCacheBytes = 16 * 1024 * 1024;
-
-// DOM proxies have an extra slot for the expando object at index
-// kJSProxySlotExpando.
-// The expando object is a plain JSObject whose properties correspond to
-// "expandos" (custom properties set by the script author).
-// The exact value stored in the kJSProxySlotExpando slot depends on whether
-// the interface is annotated with the [OverrideBuiltins] extended attribute.
-const uint32_t kJSProxySlotExpando = 0;
-
-// The DOMProxyShadowsCheck function will be called to check if the property for
-// id should be gotten from the prototype, or if there is an own property that
-// shadows it.
-js::DOMProxyShadowsResult DOMProxyShadowsCheck(JSContext* context,
-                                               JS::HandleObject proxy,
-                                               JS::HandleId id) {
-  DCHECK(IsProxy(proxy));
-  JS::Value value = js::GetProxyExtra(proxy, kJSProxySlotExpando);
-  DCHECK(value.isUndefined() || value.isObject());
-
-  // [OverrideBuiltins] extended attribute is not supported.
-  NOTIMPLEMENTED();
-
-  // If DoesntShadow is returned then the slot at listBaseExpandoSlot should
-  // either be undefined or point to an expando object that would contain the
-  // own property.
-  return js::DoesntShadow;
-}
-
-class MozjsStubHandler : public ProxyHandler {
- public:
-  MozjsStubHandler()
-      : ProxyHandler(indexed_property_hooks, named_property_hooks) {}
-
- private:
-  static NamedPropertyHooks named_property_hooks;
-  static IndexedPropertyHooks indexed_property_hooks;
-};
-
-ProxyHandler::NamedPropertyHooks MozjsStubHandler::named_property_hooks = {
-    NULL, NULL, NULL, NULL, NULL,
-};
-ProxyHandler::IndexedPropertyHooks MozjsStubHandler::indexed_property_hooks = {
-    NULL, NULL, NULL, NULL, NULL,
-};
-
-static base::LazyInstance<MozjsStubHandler> proxy_handler;
-}  // namespace
-
-MozjsGlobalEnvironment::MozjsGlobalEnvironment(
-     JSRuntime* runtime, const JavaScriptEngine::Options& options)
-    : context_(NULL),
-      garbage_collection_count_(0),
-      cached_interface_data_deleter_(&cached_interface_data_),
-      context_destructor_(&context_),
-      environment_settings_(NULL),
-      last_error_message_(NULL),
-      eval_enabled_(false) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  context_ = JS_NewContext(runtime, kStackChunkSize);
-  DCHECK(context_);
-  // Set a pointer to this class inside the JSContext.
-  JS_SetContextPrivate(context_, this);
-
-  JS_SetGCParameterForThread(context_, JSGC_MAX_CODE_CACHE_BYTES,
-                             kMaxCodeCacheBytes);
-  uint32_t moz_options =
-      JSOPTION_TYPE_INFERENCE |
-      JSOPTION_VAROBJFIX |       // Recommended to enable this in the API docs.
-      JSOPTION_COMPILE_N_GO |    // Compiled scripts will be run only once.
-      JSOPTION_UNROOTED_GLOBAL;  // Global handle must be visited to ensure it
-                                 // is not GC'd.
-#if ENGINE_SUPPORTS_JIT
-  if (!options.disable_jit) {
-    moz_options |= JSOPTION_BASELINE |  // Enable baseline compiler.
-                   JSOPTION_ION;        // Enable IonMonkey
-    // This is required by baseline and IonMonkey.
-    js::SetDOMProxyInformation(0 /*domProxyHandlerFamily*/, kJSProxySlotExpando,
-                               DOMProxyShadowsCheck);
-  }
-#endif
-
-  JS_SetOptions(context_, moz_options);
-
-  JS_SetErrorReporter(context_, &MozjsGlobalEnvironment::ReportErrorHandler);
-
-  wrapper_factory_.reset(new WrapperFactory(context_));
-  script_value_factory_.reset(new MozjsScriptValueFactory(this));
-  referenced_objects_.reset(new ReferencedObjectMap(context_));
-
-  JS_AddExtraGCRootsTracer(runtime, TraceFunction, this);
-}
-
-MozjsGlobalEnvironment::~MozjsGlobalEnvironment() {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  JS_RemoveExtraGCRootsTracer(JS_GetRuntime(context_), TraceFunction, this);
-}
-
-void MozjsGlobalEnvironment::CreateGlobalObject() {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK(thread_checker_.CalledOnValidThread());
-  DCHECK(!global_object_proxy_);
-
-  // The global object is automatically rooted unless the
-  // JSOPTION_UNROOTED_GLOBAL option is set.
-  JSAutoRequest auto_request(context_);
-
-  // NULL JSPrincipals and default JS::CompartmentOptions. See the comment
-  // above for rationale.
-  JS::RootedObject global_object(
-      context_, JS_NewGlobalObject(context_, &simple_global_class, NULL));
-  DCHECK(global_object);
-
-  // Initialize standard JS constructors prototypes and top-level functions such
-  // as Object, isNan, etc.
-  JSAutoCompartment auto_compartment(context_, global_object);
-  bool success = JS_InitStandardClasses(context_, global_object);
-  DCHECK(success);
-
-  JS::RootedObject proxy(
-      context_, ProxyHandler::NewProxy(context_, global_object, NULL, NULL,
-                                       proxy_handler.Pointer()));
-  global_object_proxy_ = proxy;
-
-  EvaluateAutomatics();
-}
-
-bool MozjsGlobalEnvironment::EvaluateScript(
-    const scoped_refptr<SourceCode>& source_code,
-    std::string* out_result_utf8) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK(thread_checker_.CalledOnValidThread());
-
-  JSAutoRequest auto_request(context_);
-  JSAutoCompartment auto_compartment(context_, global_object_proxy_);
-  AutoSaveExceptionState auto_save_exception_state(context_);
-  JS::RootedValue result_value(context_);
-
-  std::string error_message;
-  last_error_message_ = &error_message;
-
-  bool success = EvaluateScriptInternal(source_code, &result_value);
-  if (out_result_utf8) {
-    if (success) {
-      MozjsExceptionState exception_state(context_);
-      FromJSValue(context_, result_value, kNoConversionFlags, &exception_state,
-                  out_result_utf8);
-    } else if (last_error_message_) {
-      *out_result_utf8 = *last_error_message_;
-    } else {
-      DLOG(ERROR) << "Script execution failed.";
-    }
-  }
-  last_error_message_ = NULL;
-  return success;
-}
-
-bool MozjsGlobalEnvironment::EvaluateScript(
-    const scoped_refptr<SourceCode>& source_code,
-    const scoped_refptr<Wrappable>& owning_object,
-    base::optional<OpaqueHandleHolder::Reference>* out_opaque_handle) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK(thread_checker_.CalledOnValidThread());
-  JSAutoRequest auto_request(context_);
-  JSAutoCompartment auto_compartment(context_, global_object_proxy_);
-  AutoSaveExceptionState auto_save_exception_state(context_);
-  JS::RootedValue result_value(context_);
-  bool success = EvaluateScriptInternal(source_code, &result_value);
-  if (success && out_opaque_handle) {
-    MozjsObjectHandleHolder mozjs_object_holder(result_value, context_,
-                                                wrapper_factory());
-    out_opaque_handle->emplace(owning_object.get(), mozjs_object_holder);
-  }
-  return success;
-}
-
-bool MozjsGlobalEnvironment::EvaluateScriptInternal(
-    const scoped_refptr<SourceCode>& source_code,
-    JS::MutableHandleValue out_result) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK(thread_checker_.CalledOnValidThread());
-  DCHECK(global_object_proxy_);
-  MozjsSourceCode* mozjs_source_code =
-      base::polymorphic_downcast<MozjsSourceCode*>(source_code.get());
-
-  const std::string& script = mozjs_source_code->source_utf8();
-  const base::SourceLocation location = mozjs_source_code->location();
-
-  JS::RootedObject global_object(
-      context_, js::GetProxyTargetObject(global_object_proxy_));
-
-  size_t length = script.size();
-  jschar* inflated_buffer =
-      js::InflateUTF8String(context_, script.c_str(), &length);
-
-  if (!inflated_buffer) {
-    DLOG(ERROR) << "Malformed UTF-8 script.";
-    return false;
-  }
-
-  JS::CompileOptions options(context_);
-  options.setFileAndLine(location.file_path.c_str(), location.line_number);
-  bool success = JS_EvaluateUCScript(
-      context_, global_object, inflated_buffer, length,
-      location.file_path.c_str(), location.line_number, out_result.address());
-  if (!success && context_->isExceptionPending()) {
-    JS_ReportPendingException(context_);
-  }
-  js_free(inflated_buffer);
-
-  return success;
-}
-
-std::vector<StackFrame> MozjsGlobalEnvironment::GetStackTrace(int max_frames) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  nb::RewindableVector<StackFrame> stack_frames;
-  util::GetStackTrace(context_, max_frames, &stack_frames);
-  return stack_frames.InternalData();
-}
-
-void MozjsGlobalEnvironment::PreventGarbageCollection(
-    const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  JSAutoRequest auto_request(context_);
-  JSAutoCompartment auto_compartment(context_, global_object_proxy_);
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromWrappable(wrappable, context_, wrapper_factory());
-  JS::RootedObject proxy(context_, wrapper_private->js_object_proxy());
-  JS::Heap<JSObject*> proxy_heap(proxy);
-  kept_alive_objects_.insert(CachedWrapperMultiMap::value_type(
-      wrappable.get(), proxy_heap));
-}
-
-void MozjsGlobalEnvironment::AllowGarbageCollection(
-    const scoped_refptr<Wrappable>& wrappable) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK(thread_checker_.CalledOnValidThread());
-  CachedWrapperMultiMap::iterator it =
-      kept_alive_objects_.find(wrappable.get());
-  DCHECK(it != kept_alive_objects_.end());
-  if (it != kept_alive_objects_.end()) {
-    kept_alive_objects_.erase(it);
-  }
-}
-
-void MozjsGlobalEnvironment::DisableEval(const std::string& message) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  eval_disabled_message_.emplace(message);
-  eval_enabled_ = false;
-}
-
-void MozjsGlobalEnvironment::EnableEval() {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  eval_disabled_message_ = base::nullopt;
-  eval_enabled_ = true;
-}
-
-void MozjsGlobalEnvironment::DisableJit() {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  uint32 current_options = JS_GetOptions(context_);
-  uint32 new_options = current_options & ~(JSOPTION_BASELINE | JSOPTION_ION);
-  JS_SetOptions(context_, new_options);
-}
-
-void MozjsGlobalEnvironment::SetReportEvalCallback(
-    const base::Closure& report_eval) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  report_eval_ = report_eval;
-}
-
-void MozjsGlobalEnvironment::SetReportErrorCallback(
-    const ReportErrorCallback& report_error_callback) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  report_error_callback_ = report_error_callback;
-}
-
-void MozjsGlobalEnvironment::Bind(const std::string& identifier,
-                                  const scoped_refptr<Wrappable>& impl) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  JSAutoRequest auto_request(context_);
-  JSAutoCompartment auto_compartment(context_, global_object_proxy_);
-
-  JS::RootedObject wrapper_proxy(context_,
-                                 wrapper_factory_->GetWrapperProxy(impl));
-  JS::RootedObject global_object(
-      context_, js::GetProxyTargetObject(global_object_proxy_));
-  JS::Value wrapper_value = OBJECT_TO_JSVAL(wrapper_proxy);
-  bool success = JS_SetProperty(context_, global_object, identifier.c_str(),
-                                &wrapper_value);
-  DCHECK(success);
-}
-
-ScriptValueFactory* MozjsGlobalEnvironment::script_value_factory() {
-  DCHECK(script_value_factory_);
-  return script_value_factory_.get();
-}
-
-void MozjsGlobalEnvironment::EvaluateAutomatics() {
-  TRACK_MEMORY_SCOPE("Javascript");
-  std::string source(
-      reinterpret_cast<const char*>(MozjsEmbeddedResources::promise_min_js),
-      sizeof(MozjsEmbeddedResources::promise_min_js));
-  scoped_refptr<SourceCode> source_code =
-      new MozjsSourceCode(source, base::SourceLocation("promise.min.js", 1, 1));
-  std::string result;
-  bool success = EvaluateScript(source_code, &result);
-  if (!success) {
-    DLOG(FATAL) << result;
-  }
-}
-
-InterfaceData* MozjsGlobalEnvironment::GetInterfaceData(intptr_t key) {
-  CachedInterfaceData::iterator it = cached_interface_data_.find(key);
-  if (it != cached_interface_data_.end()) {
-    return it->second;
-  }
-  return NULL;
-}
-
-void MozjsGlobalEnvironment::DoSweep() {
-  TRACK_MEMORY_SCOPE("Javascript");
-  weak_object_manager_.SweepUnmarkedObjects();
-  // Remove NULL references after sweeping weak references.
-  referenced_objects_->RemoveNullReferences();
-}
-
-void MozjsGlobalEnvironment::BeginGarbageCollection() {
-  TRACK_MEMORY_SCOPE("Javascript");
-  // It's possible that a GC could be triggered from within the
-  // BeginGarbageCollection callback. Only verify that |visisted_wrappables_|
-  // is empty the first time we enter.
-  garbage_collection_count_++;
-
-  if (garbage_collection_count_ == 1) {
-    DCHECK_EQ(visited_wrappables_.size(), 0);
-  }
-}
-
-void MozjsGlobalEnvironment::EndGarbageCollection() {
-  // Reset |visisted_wrappables_|.
-  garbage_collection_count_--;
-  DCHECK_GE(garbage_collection_count_, 0);
-  if (garbage_collection_count_ == 0) {
-    visited_wrappables_.clear();
-  }
-}
-
-MozjsGlobalEnvironment* MozjsGlobalEnvironment::GetFromContext(
-    JSContext* context) {
-  MozjsGlobalEnvironment* global_proxy =
-      static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-  DCHECK(global_proxy);
-  return global_proxy;
-}
-
-void MozjsGlobalEnvironment::SetGlobalObjectProxyAndWrapper(
-    JS::HandleObject global_object_proxy,
-    const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(!global_object_proxy_);
-  DCHECK(global_object_proxy);
-  DCHECK(JS_IsGlobalObject(js::GetProxyTargetObject(global_object_proxy)));
-  DCHECK(IsObjectProxy(global_object_proxy));
-
-  global_object_proxy_ = global_object_proxy;
-
-  // Global object cached wrapper is not set as usual object.
-  // Set the global object cached wrapper, so we can get the object proxy
-  // through wrapper handle.
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromProxyObject(context_, global_object_proxy_);
-  DCHECK(wrapper_private);
-
-  scoped_ptr<Wrappable::WeakWrapperHandle> object_handle(
-      new MozjsWrapperHandle(wrapper_private));
-  SetCachedWrapper(wrappable.get(), object_handle.Pass());
-}
-
-void MozjsGlobalEnvironment::CacheInterfaceData(intptr_t key,
-                                                InterfaceData* interface_data) {
-  std::pair<CachedInterfaceData::iterator, bool> pib =
-      cached_interface_data_.insert(std::make_pair(key, interface_data));
-  DCHECK(pib.second);
-}
-
-void MozjsGlobalEnvironment::ReportErrorHandler(JSContext* context,
-                                                const char* message,
-                                                JSErrorReport* report) {
-  MozjsGlobalEnvironment* global_object_proxy = GetFromContext(context);
-  std::string error_message;
-  if (report->errorNumber == JSMSG_CSP_BLOCKED_EVAL) {
-    error_message =
-        global_object_proxy->eval_disabled_message_.value_or(message);
-  } else {
-    error_message = message;
-  }
-
-  std::string message_with_location =
-      base::StringPrintf("%s:%u:%u: %s",
-                         (report->filename ? report->filename : "(none)"),
-                         report->lineno,
-                         report->column,
-                         error_message.c_str());
-  if (global_object_proxy && global_object_proxy->last_error_message_) {
-    *(global_object_proxy->last_error_message_) = message_with_location;
-  } else {
-    LOG(ERROR) << "JS Error: " << message_with_location;
-  }
-}
-
-void MozjsGlobalEnvironment::TraceFunction(JSTracer* trace, void* data) {
-  MozjsGlobalEnvironment* global_object_environment =
-      reinterpret_cast<MozjsGlobalEnvironment*>(data);
-  if (global_object_environment->global_object_proxy_) {
-    JS_CallHeapObjectTracer(trace,
-                            &global_object_environment->global_object_proxy_,
-                            "MozjsGlobalEnvironment");
-  }
-  for (CachedInterfaceData::iterator it =
-           global_object_environment->cached_interface_data_.begin();
-       it != global_object_environment->cached_interface_data_.end(); ++it) {
-    InterfaceData* data = it->second;
-    // Check whether prototype and interface object for this interface have been
-    // created yet or not before attempting to trace them.
-    if (data->prototype) {
-      JS_CallHeapObjectTracer(trace, &data->prototype,
-                              "MozjsGlobalEnvironment");
-    }
-    if (data->interface_object) {
-      JS_CallHeapObjectTracer(trace, &data->interface_object,
-                              "MozjsGlobalEnvironment");
-    }
-  }
-  for (CachedWrapperMultiMap::iterator it =
-           global_object_environment->kept_alive_objects_.begin();
-       it != global_object_environment->kept_alive_objects_.end(); ++it) {
-    JS_CallHeapObjectTracer(trace, &it->second, "MozjsGlobalEnvironment");
-  }
-}
-
-JSBool MozjsGlobalEnvironment::CheckEval(JSContext* context) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  MozjsGlobalEnvironment* global_object_proxy = GetFromContext(context);
-  DCHECK(global_object_proxy);
-  if (!global_object_proxy->report_eval_.is_null()) {
-    global_object_proxy->report_eval_.Run();
-  }
-  return global_object_proxy->eval_enabled_;
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/mozjs_global_environment.h b/src/cobalt/script/mozjs/mozjs_global_environment.h
deleted file mode 100644
index e221a5d..0000000
--- a/src/cobalt/script/mozjs/mozjs_global_environment.h
+++ /dev/null
@@ -1,196 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_GLOBAL_ENVIRONMENT_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_GLOBAL_ENVIRONMENT_H_
-
-#include <string>
-#include <vector>
-
-#include "base/hash_tables.h"
-#include "base/logging.h"
-#include "base/optional.h"
-#include "base/stl_util.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/javascript_engine.h"
-#include "cobalt/script/mozjs/interface_data.h"
-#include "cobalt/script/mozjs/util/exception_helpers.h"
-#include "cobalt/script/mozjs/weak_heap_object_manager.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsproxy.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-class MozjsScriptValueFactory;
-class ReferencedObjectMap;
-class WeakHandle;
-
-// Manages a handle to a JavaScript engine's global object. The lifetime of
-// the global object is not necessarily tied to the lifetime of the proxy.
-class MozjsGlobalEnvironment : public GlobalEnvironment,
-                               public Wrappable::CachedWrapperAccessor {
- public:
-  MozjsGlobalEnvironment(JSRuntime* runtime,
-                         const JavaScriptEngine::Options& options);
-  ~MozjsGlobalEnvironment() OVERRIDE;
-
-  void CreateGlobalObject() OVERRIDE;
-
-  bool EvaluateScript(const scoped_refptr<SourceCode>& script,
-                      std::string* out_result_utf8) OVERRIDE;
-
-  bool EvaluateScript(const scoped_refptr<SourceCode>& script_utf8,
-                      const scoped_refptr<Wrappable>& owning_object,
-                      base::optional<OpaqueHandleHolder::Reference>*
-                          out_opaque_handle) OVERRIDE;
-
-  std::vector<StackFrame> GetStackTrace(int max_frames = 0) OVERRIDE;
-
-  void PreventGarbageCollection(
-      const scoped_refptr<Wrappable>& wrappable) OVERRIDE;
-
-  void AllowGarbageCollection(
-      const scoped_refptr<Wrappable>& wrappable) OVERRIDE;
-
-  void DisableEval(const std::string& message) OVERRIDE;
-
-  void EnableEval() OVERRIDE;
-
-  void DisableJit() OVERRIDE;
-
-  void SetReportEvalCallback(const base::Closure& report_eval) OVERRIDE;
-
-  void SetReportErrorCallback(
-      const ReportErrorCallback& report_error_callback) OVERRIDE;
-
-  void Bind(const std::string& identifier,
-            const scoped_refptr<Wrappable>& impl) OVERRIDE;
-
-  ScriptValueFactory* script_value_factory() OVERRIDE;
-
-  // Evaluates any automatically included Javascript for the environment.
-  void EvaluateAutomatics();
-
-  JSContext* context() const { return context_; }
-
-  JSObject* global_object_proxy() const { return global_object_proxy_; }
-  JSObject* global_object() const {
-    return js::GetProxyTargetObject(global_object_proxy_);
-  }
-
-  WrapperFactory* wrapper_factory() { return wrapper_factory_.get(); }
-
-  ReferencedObjectMap* referenced_objects() {
-    return referenced_objects_.get();
-  }
-
-  WeakHeapObjectManager* weak_object_manager() { return &weak_object_manager_; }
-
-  base::hash_set<Wrappable*>* visited_wrappables() {
-    return &visited_wrappables_;
-  }
-
-  // Used for CallWith=EnvironmentSettings
-  void SetEnvironmentSettings(EnvironmentSettings* environment_settings) {
-    DCHECK(!environment_settings_);
-    DCHECK(environment_settings);
-    environment_settings_ = environment_settings;
-  }
-
-  EnvironmentSettings* GetEnvironmentSettings() const {
-    return environment_settings_;
-  }
-
-  void SetGlobalObjectProxyAndWrapper(
-      JS::HandleObject global_object_proxy,
-      const scoped_refptr<Wrappable>& wrappable);
-
-  // Any tracked InterfaceData will have it's GC handles visited and marked as
-  // roots. The MozjsGlobalEnvironment takes ownership of the InterfaceData
-  // instances and will destroy them.
-  void CacheInterfaceData(intptr_t key, InterfaceData* interface_data);
-  InterfaceData* GetInterfaceData(intptr_t key);
-
-  // This will be called during garbage collection after GC objects have been
-  // marked, but before they have been finalized. This allows an opportunity to
-  // sweep away references to GC objects that will be deleted.
-  void DoSweep();
-
-  void BeginGarbageCollection();
-  void EndGarbageCollection();
-
-  static MozjsGlobalEnvironment* GetFromContext(JSContext* context);
-
-  // This will be called every time an attempt is made to use eval() and
-  // friends. If it returns false, then the ReportErrorHandler will be fired
-  // with an error that eval() is disabled.
-  static JSBool CheckEval(JSContext* context);
-
- private:
-  bool EvaluateScriptInternal(const scoped_refptr<SourceCode>& source_code,
-                              JS::MutableHandleValue out_result);
-
-  static void ReportErrorHandler(JSContext* context, const char* message,
-                                 JSErrorReport* report);
-
-  static void TraceFunction(JSTracer* trace, void* data);
-
-  // Helper struct to ensure the context is destroyed in the correct order
-  // relative to the MozjsGlobalEnvironment's other members.
-  struct ContextDestructor {
-    explicit ContextDestructor(JSContext** context) : context(context) {}
-    ~ContextDestructor() { JS_DestroyContext(*context); }
-    JSContext** context;
-  };
-
-  typedef base::hash_map<intptr_t, InterfaceData*> CachedInterfaceData;
-  typedef base::hash_multimap<Wrappable*, JS::Heap<JSObject*> >
-      CachedWrapperMultiMap;
-
-  base::ThreadChecker thread_checker_;
-  JSContext* context_;
-  int garbage_collection_count_;
-  WeakHeapObjectManager weak_object_manager_;
-  CachedWrapperMultiMap kept_alive_objects_;
-  scoped_ptr<ReferencedObjectMap> referenced_objects_;
-  CachedInterfaceData cached_interface_data_;
-  STLValueDeleter<CachedInterfaceData> cached_interface_data_deleter_;
-  ContextDestructor context_destructor_;
-  scoped_ptr<WrapperFactory> wrapper_factory_;
-  scoped_ptr<MozjsScriptValueFactory> script_value_factory_;
-  JS::Heap<JSObject*> global_object_proxy_;
-  EnvironmentSettings* environment_settings_;
-  // TODO: Should be |std::unordered_set| once C++11 is enabled.
-  base::hash_set<Wrappable*> visited_wrappables_;
-
-  // If non-NULL, the error message from the ReportErrorHandler will get
-  // assigned to this instead of being printed.
-  std::string* last_error_message_;
-
-  bool eval_enabled_;
-  base::optional<std::string> eval_disabled_message_;
-  base::Closure report_eval_;
-  ReportErrorCallback report_error_callback_;
-
-  friend class GlobalObjectProxy;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_GLOBAL_ENVIRONMENT_H_
diff --git a/src/cobalt/script/mozjs/mozjs_object_handle.h b/src/cobalt/script/mozjs/mozjs_object_handle.h
deleted file mode 100644
index f2ee195..0000000
--- a/src/cobalt/script/mozjs/mozjs_object_handle.h
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_OBJECT_HANDLE_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_OBJECT_HANDLE_H_
-
-#include "base/optional.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "cobalt/script/opaque_handle.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// A wrapper around a JS::Value that can be passed into Cobalt as an
-// opaque script object.
-// An OpaqueHandle is never passed into Cobalt as-is, but only when wrapped as
-// a ScriptValue<OpaqueHandle>.
-class MozjsObjectHandle : public OpaqueHandle {
- public:
-  typedef OpaqueHandle BaseType;
-  JSObject* handle() const { return handle_.GetObject(); }
-  const JS::Value& value() const { return handle_.GetValue(); }
-  bool WasCollected() const { return handle_.WasCollected(); }
-
- private:
-  MozjsObjectHandle(JSContext* context, JS::HandleValue object)
-      : handle_(context, object) {}
-  ~MozjsObjectHandle() {}
-
-  WeakHeapObject handle_;
-
-  friend class MozjsUserObjectHolder<MozjsObjectHandle>;
-  friend class base::optional<MozjsObjectHandle>;
-};
-
-typedef MozjsUserObjectHolder<MozjsObjectHandle> MozjsObjectHandleHolder;
-
-template <>
-struct TypeTraits<OpaqueHandle> {
-  typedef MozjsObjectHandleHolder ConversionType;
-  typedef const ScriptValue<OpaqueHandle>* ReturnType;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_OBJECT_HANDLE_H_
diff --git a/src/cobalt/script/mozjs/mozjs_property_enumerator.cc b/src/cobalt/script/mozjs/mozjs_property_enumerator.cc
deleted file mode 100644
index 2f77edd..0000000
--- a/src/cobalt/script/mozjs/mozjs_property_enumerator.cc
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#include "cobalt/script/mozjs/mozjs_property_enumerator.h"
-
-#include "base/logging.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-MozjsPropertyEnumerator::MozjsPropertyEnumerator(JSContext* context,
-                                                 JS::AutoIdVector* properties)
-    : context_(context), properties_(properties) {}
-
-void MozjsPropertyEnumerator::AddProperty(const std::string& property_name) {
-  JS::RootedString property_string(
-      context_, JS_NewStringCopyZ(context_, property_name.c_str()));
-  JS::RootedId id(context_);
-  if (JS_ValueToId(context_, STRING_TO_JSVAL(property_string), id.address())) {
-    properties_->append(id);
-  } else {
-    NOTREACHED();
-  }
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/mozjs_property_enumerator.h b/src/cobalt/script/mozjs/mozjs_property_enumerator.h
deleted file mode 100644
index ee5caed..0000000
--- a/src/cobalt/script/mozjs/mozjs_property_enumerator.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_PROPERTY_ENUMERATOR_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_PROPERTY_ENUMERATOR_H_
-
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "cobalt/script/property_enumerator.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-class MozjsPropertyEnumerator : public cobalt::script::PropertyEnumerator {
- public:
-  MozjsPropertyEnumerator(JSContext* context, JS::AutoIdVector* properties);
-  void AddProperty(const std::string& property_name) OVERRIDE;
-
- private:
-  JSContext* context_;
-  JS::AutoIdVector* properties_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_PROPERTY_ENUMERATOR_H_
diff --git a/src/cobalt/script/mozjs/mozjs_script_value_factory.cc b/src/cobalt/script/mozjs/mozjs_script_value_factory.cc
deleted file mode 100644
index c97dda4..0000000
--- a/src/cobalt/script/mozjs/mozjs_script_value_factory.cc
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "cobalt/script/mozjs/mozjs_script_value_factory.h"
-
-#include "cobalt/base/polymorphic_downcast.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-MozjsScriptValueFactory::MozjsScriptValueFactory(
-    MozjsGlobalEnvironment* global_environment)
-    : global_environment_(global_environment) {}
-}  // namespace mozjs
-
-// Implementation of template function declared in the base class.
-template <typename T>
-scoped_ptr<ScriptValue<Promise<T> > > ScriptValueFactory::CreatePromise() {
-  mozjs::MozjsScriptValueFactory* mozjs_this =
-      base::polymorphic_downcast<mozjs::MozjsScriptValueFactory*>(this);
-  return mozjs_this->CreatePromise<T>();
-}
-
-}  // namespace script
-}  // namespace cobalt
-
-// Explicit template instantiations must go after the template function
-// implementation.
-#include "cobalt/script/script_value_factory_instantiations.h"
diff --git a/src/cobalt/script/mozjs/mozjs_script_value_factory.h b/src/cobalt/script/mozjs/mozjs_script_value_factory.h
deleted file mode 100644
index d6b28a1..0000000
--- a/src/cobalt/script/mozjs/mozjs_script_value_factory.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_SCRIPT_VALUE_FACTORY_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_SCRIPT_VALUE_FACTORY_H_
-
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/native_promise.h"
-#include "cobalt/script/mozjs/promise_wrapper.h"
-#include "cobalt/script/script_value_factory.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-class MozjsScriptValueFactory : public ScriptValueFactory {
- public:
-  explicit MozjsScriptValueFactory(MozjsGlobalEnvironment* global_environment);
-  ~MozjsScriptValueFactory() OVERRIDE {}
-
-  template <typename T>
-  scoped_ptr<ScriptValue<Promise<T> > > CreatePromise() {
-    typedef ScriptValue<Promise<T> > ScriptPromiseType;
-    typedef MozjsUserObjectHolder<NativePromise<T> > MozjsPromiseHolderType;
-
-    JSContext* context = global_environment_->context();
-    JS::RootedObject global_object(context,
-                                   global_environment_->global_object());
-    JSAutoRequest auto_request(context);
-    JSAutoCompartment auto_compartment(context, global_object);
-
-    JS::RootedObject promise_wrapper(
-        context, PromiseWrapper::Create(context, global_object));
-    DCHECK(promise_wrapper);
-    scoped_ptr<ScriptPromiseType> promise(new MozjsPromiseHolderType(
-        promise_wrapper, context, global_environment_->wrapper_factory()));
-    return promise.Pass();
-  }
-
- private:
-  MozjsGlobalEnvironment* global_environment_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_SCRIPT_VALUE_FACTORY_H_
diff --git a/src/cobalt/script/mozjs/mozjs_source_code.cc b/src/cobalt/script/mozjs/mozjs_source_code.cc
deleted file mode 100644
index bd72ae7..0000000
--- a/src/cobalt/script/mozjs/mozjs_source_code.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#include "cobalt/script/mozjs/mozjs_source_code.h"
-
-namespace cobalt {
-namespace script {
-scoped_refptr<SourceCode> SourceCode::CreateSourceCode(
-    const std::string& script_utf8,
-    const base::SourceLocation& script_location) {
-  return new mozjs::MozjsSourceCode(script_utf8, script_location);
-}
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/mozjs_source_code.h b/src/cobalt/script/mozjs/mozjs_source_code.h
deleted file mode 100644
index 4e5720a..0000000
--- a/src/cobalt/script/mozjs/mozjs_source_code.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_SOURCE_CODE_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_SOURCE_CODE_H_
-
-#include <string>
-
-#include "cobalt/base/source_location.h"
-#include "cobalt/script/source_code.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// SpiderMonkey supports compiling scripts in one step and executing
-// them in another. Typcically we don't need to execute the same script
-// multiple times so we wouldn't expect much performance improvement, but it
-// may be that the compiled script uses less memory than the raw script.
-//
-// TODO: Investigate if there are memory savings (or other benefits)
-// to precompiling scripts before executing.
-class MozjsSourceCode : public SourceCode {
- public:
-  MozjsSourceCode(const std::string& source_utf8,
-                  const base::SourceLocation& source_location)
-      : source_utf8_(source_utf8), location_(source_location) {}
-  const std::string& source_utf8() const { return source_utf8_; }
-  const base::SourceLocation& location() const { return location_; }
-
- private:
-  std::string source_utf8_;
-  base::SourceLocation location_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_SOURCE_CODE_H_
diff --git a/src/cobalt/script/mozjs/mozjs_trace_logging.cc b/src/cobalt/script/mozjs/mozjs_trace_logging.cc
deleted file mode 100644
index 117007f..0000000
--- a/src/cobalt/script/mozjs/mozjs_trace_logging.cc
+++ /dev/null
@@ -1,155 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "third_party/mozjs/js/src/TraceLogging.h"
-
-#include "base/debug/trace_event.h"
-#include "base/memory/singleton.h"
-
-namespace js {
-
-namespace {
-
-// Container class to transform the 3rd-party-declared TraceLogging class
-// into our Singleton type.
-class TraceLoggingContainer {
- public:
-  TraceLoggingContainer() {}
-
-  static TraceLoggingContainer* GetInstance() {
-    return Singleton<TraceLoggingContainer,
-      StaticMemorySingletonTraits<TraceLoggingContainer> >::get();
-  }
-
-  TraceLogging* GetLogger() {
-    return &logger_;
-  }
-
- private:
-  TraceLogging logger_;
-
-  DISALLOW_COPY_AND_ASSIGN(TraceLoggingContainer);
-};
-
-const char kTraceLoggingCategory[] = "JavaScript";
-
-}  // namespace
-
-const char* const TraceLogging::type_name[] = {
-  "IonCompile",
-  "IonCompile",
-  "IonCannon",
-  "IonCannon",
-  "IonCannon",
-  "IonSideCannon",
-  "IonSideCannon",
-  "IonSideCannon",
-  "YarrJIT",
-  "YarrJIT",
-  "JMSafepoint",
-  "JMSafepoint",
-  "JMNormal",
-  "JMNormal",
-  "JMCompile",
-  "JMCompile",
-  "GarbageCollect",
-  "GarbageCollect",
-  "Interpreter",
-  "Interpreter",
-  "Info",
-};
-
-// None of the member variables will be needed. Instead, logging will be
-// funneled to the trace event system.
-TraceLogging::TraceLogging() {
-}
-
-TraceLogging::~TraceLogging() {
-}
-
-// static
-TraceLogging* TraceLogging::defaultLogger() {
-  return TraceLoggingContainer::GetInstance()->GetLogger();
-}
-
-// static
-void TraceLogging::releaseDefaultLogger() {
-  // Do nothing. Lifetime is managed by the TraceLoggingContainer singleton.
-}
-
-void TraceLogging::log(Type type, const char* filename, unsigned int line) {
-  // Unfortunately, we don't have access to the enum, so can't declare a
-  // "count"-type enum. Instead, INFO is assumed to be the last enumeration.
-  COMPILE_ASSERT(ARRAYSIZE_UNSAFE(type_name) - 1 == INFO, array_mismatch);
-
-  switch (type) {
-    // "Start" types
-    case ION_COMPILE_START:
-    case ION_CANNON_START:
-    case ION_SIDE_CANNON_START:
-    case YARR_JIT_START:
-    case JM_SAFEPOINT_START:
-    case JM_START:
-    case JM_COMPILE_START:
-    case GC_START:
-    case INTERPRETER_START:
-      if (filename != NULL) {
-        TRACE_EVENT_BEGIN2(kTraceLoggingCategory, type_name[type],
-                          "file", TRACE_STR_COPY(filename),
-                          "line", line);
-      } else {
-        TRACE_EVENT_BEGIN0(kTraceLoggingCategory, type_name[type]);
-      }
-      break;
-
-    // Ignored types
-    case INFO:
-      break;
-
-    // "Stop" types
-    default:
-      TRACE_EVENT_END0(kTraceLoggingCategory, type_name[type]);
-      break;
-  }
-}
-
-void TraceLogging::log(Type type, JSScript* script) {
-  log(type, script->filename(), script->lineno);
-}
-
-void TraceLogging::log(const char* log) {
-  UNREFERENCED_PARAMETER(log);
-}
-
-void TraceLogging::log(Type type) {
-  log(type, NULL, 0);
-}
-
-void TraceLogging::flush() {
-}
-
-// Helper functions declared in TraceLogging.h
-void TraceLog(TraceLogging* logger, TraceLogging::Type type, JSScript* script) {
-  logger->log(type, script);
-}
-
-void TraceLog(TraceLogging* logger, const char* log) {
-  logger->log(log);
-}
-
-void TraceLog(TraceLogging* logger, TraceLogging::Type type) {
-  logger->log(type);
-}
-
-}  // namespace js
diff --git a/src/cobalt/script/mozjs/mozjs_user_object_holder.h b/src/cobalt/script/mozjs/mozjs_user_object_holder.h
deleted file mode 100644
index 3799221..0000000
--- a/src/cobalt/script/mozjs/mozjs_user_object_holder.h
+++ /dev/null
@@ -1,173 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_USER_OBJECT_HOLDER_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_USER_OBJECT_HOLDER_H_
-
-#include "base/hash_tables.h"
-#include "base/memory/weak_ptr.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/referenced_object_map.h"
-#include "cobalt/script/mozjs/util/algorithm_helpers.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/script_value.h"
-#include "nb/memory_scope.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Template class that implements the ScriptValue template class for lifetime
-// management of User Objects passed from the bindings layer into Cobalt. See
-// the definition of ScriptValue for further detail.
-// This class does not root the underlying JSObject that MozjsUserObjectType
-// holds a reference to. The object will be traced when any owning objects are
-// traced.
-template <typename MozjsUserObjectType>
-class MozjsUserObjectHolder
-    : public ScriptValue<typename MozjsUserObjectType::BaseType> {
- public:
-  typedef ScriptValue<typename MozjsUserObjectType::BaseType> BaseClass;
-
-  MozjsUserObjectHolder()
-      : context_(NULL),
-        wrapper_factory_(NULL),
-        prevent_garbage_collection_count_(0) {}
-
-  MozjsUserObjectHolder(JS::HandleObject object, JSContext* context,
-                        WrapperFactory* wrapper_factory)
-      : handle_(MozjsUserObjectType(context, object)),
-        context_(context),
-        wrapper_factory_(wrapper_factory),
-        prevent_garbage_collection_count_(0) {}
-
-  MozjsUserObjectHolder(JS::HandleValue value, JSContext* context,
-                        WrapperFactory* wrapper_factory)
-      : handle_(MozjsUserObjectType(context, value)),
-        context_(context),
-        wrapper_factory_(wrapper_factory),
-        prevent_garbage_collection_count_(0) {}
-
-  ~MozjsUserObjectHolder() {
-    DCHECK_EQ(prevent_garbage_collection_count_, 0);
-    DCHECK(!persistent_root_);
-  }
-
-  void RegisterOwner(Wrappable* owner) OVERRIDE {
-    JSAutoRequest auto_request(context_);
-    JS::RootedValue owned_value(context_, js_value());
-    DLOG_IF(WARNING, handle_->WasCollected())
-        << "Owned value has been garbage collected.";
-    // We have to check for null, because null is apparently a GC Thing.
-    if (!owned_value.isNullOrUndefined() && owned_value.isGCThing()) {
-      MozjsGlobalEnvironment* global_environment =
-          MozjsGlobalEnvironment::GetFromContext(context_);
-      intptr_t key = ReferencedObjectMap::GetKeyForWrappable(owner);
-      global_environment->referenced_objects()->AddReferencedObject(
-          key, owned_value);
-    }
-  }
-
-  void DeregisterOwner(Wrappable* owner) OVERRIDE {
-    // |owner| may be in the process of being destructed, so don't use it.
-    JSAutoRequest auto_request(context_);
-    JS::RootedValue owned_value(context_, js_value());
-    // We have to check for null, because null is apparently a GC Thing.
-    if (!owned_value.isNullOrUndefined() && owned_value.isGCThing()) {
-      MozjsGlobalEnvironment* global_environment =
-          MozjsGlobalEnvironment::GetFromContext(context_);
-      intptr_t key = ReferencedObjectMap::GetKeyForWrappable(owner);
-      global_environment->referenced_objects()->RemoveReferencedObject(
-          key, owned_value);
-    }
-  }
-
-  void PreventGarbageCollection() OVERRIDE {
-    if (prevent_garbage_collection_count_++ == 0 && handle_) {
-      JSAutoRequest auto_request(context_);
-      persistent_root_ = handle_->value();
-      JSBool result = JS_AddNamedValueRoot(
-          context_, &persistent_root_.value(),
-          "MozjsUserObjectHolder::PreventGarbageCollection");
-      DCHECK(result);
-    }
-  }
-
-  void AllowGarbageCollection() OVERRIDE {
-    if (--prevent_garbage_collection_count_ == 0 && handle_) {
-      JSAutoRequest auto_request(context_);
-      JS_RemoveValueRoot(context_, &persistent_root_.value());
-      persistent_root_ = base::nullopt;
-    }
-  }
-
-  const typename MozjsUserObjectType::BaseType* GetScriptValue()
-      const OVERRIDE {
-    return handle_ ? &handle_.value() : NULL;
-  }
-
-  scoped_ptr<BaseClass> MakeCopy() const OVERRIDE {
-    TRACK_MEMORY_SCOPE("Javascript");
-    DCHECK(handle_);
-    JSAutoRequest auto_request(context_);
-    JS::RootedValue rooted_value(context_, js_value());
-    return make_scoped_ptr<BaseClass>(
-        new MozjsUserObjectHolder(rooted_value, context_, wrapper_factory_));
-  }
-
-  bool EqualTo(const BaseClass& other) const OVERRIDE {
-    const MozjsUserObjectHolder* mozjs_other =
-        base::polymorphic_downcast<const MozjsUserObjectHolder*>(&other);
-    if (!handle_) {
-      return !mozjs_other->handle_;
-    } else if (!mozjs_other->handle_) {
-      return false;
-    }
-
-    DCHECK(handle_);
-    DCHECK(mozjs_other->handle_);
-
-    JS::RootedValue value1(context_, js_value());
-    JS::RootedValue value2(context_, mozjs_other->js_value());
-    return util::IsSameGcThing(context_, value1, value2);
-  }
-
-  const JS::Value& js_value() const {
-    DCHECK(handle_);
-    return handle_->value();
-  }
-
-  JSObject* js_object() const {
-    DCHECK(handle_);
-    return handle_->handle();
-  }
-
- private:
-  typedef base::hash_map<const Wrappable*, base::WeakPtr<WrapperPrivate> >
-      WrappableAndPrivateHashMap;
-
-  base::optional<MozjsUserObjectType> handle_;
-  JSContext* context_;
-  WrapperFactory* wrapper_factory_;
-  int prevent_garbage_collection_count_;
-  base::optional<JS::Value> persistent_root_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_USER_OBJECT_HOLDER_H_
diff --git a/src/cobalt/script/mozjs/mozjs_value_handle.h b/src/cobalt/script/mozjs/mozjs_value_handle.h
deleted file mode 100644
index 3581878..0000000
--- a/src/cobalt/script/mozjs/mozjs_value_handle.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_VALUE_HANDLE_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_VALUE_HANDLE_H_
-
-#include "base/optional.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "cobalt/script/value_handle.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// A wrapper around a JS::Value that can be passed into Cobalt as an script
-// value object.
-//
-// An ValueHandle is never passed into Cobalt as-is, but only when wrapped as a
-// ScriptValue<ValueHandle>.
-class MozjsValueHandle : public ValueHandle {
- public:
-  typedef ValueHandle BaseType;
-  JSObject* handle() const { return handle_.GetObject(); }
-  const JS::Value& value() const { return handle_.GetValue(); }
-  bool WasCollected() const { return handle_.WasCollected(); }
-
- private:
-  MozjsValueHandle(JSContext* context, JS::HandleValue object)
-      : handle_(context, object) {}
-  ~MozjsValueHandle() {}
-
-  WeakHeapObject handle_;
-
-  friend class MozjsUserObjectHolder<MozjsValueHandle>;
-  friend class base::optional<MozjsValueHandle>;
-};
-
-typedef MozjsUserObjectHolder<MozjsValueHandle> MozjsValueHandleHolder;
-
-template <>
-struct TypeTraits<ValueHandle> {
-  typedef MozjsValueHandleHolder ConversionType;
-  typedef const ScriptValue<ValueHandle>* ReturnType;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_VALUE_HANDLE_H_
diff --git a/src/cobalt/script/mozjs/mozjs_variables.gypi b/src/cobalt/script/mozjs/mozjs_variables.gypi
deleted file mode 100644
index f6ec89d..0000000
--- a/src/cobalt/script/mozjs/mozjs_variables.gypi
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-{
-  'variables': {
-    'conditions': [
-      ['javascript_engine == "mozjs"', {
-        'generated_bindings_prefix': 'mozjs',
-        'engine_include_dirs': [],
-        'engine_dependencies': [
-          '<(DEPTH)/third_party/mozjs/mozjs.gyp:mozjs_lib',
-        ],
-        'engine_defines': [],
-        'engine_templates_dir': [
-          '<(DEPTH)/cobalt/bindings/mozjs/templates',
-        ],
-        'engine_template_files': [
-          '<(DEPTH)/cobalt/bindings/mozjs/templates/callback-interface.cc.template',
-          '<(DEPTH)/cobalt/bindings/mozjs/templates/callback-interface.h.template',
-          '<(DEPTH)/cobalt/bindings/mozjs/templates/dictionary-conversion.cc.template',
-          '<(DEPTH)/cobalt/bindings/mozjs/templates/enumeration-conversion.cc.template',
-          '<(DEPTH)/cobalt/bindings/mozjs/templates/generated-types.h.template',
-          '<(DEPTH)/cobalt/bindings/mozjs/templates/interface.cc.template',
-          '<(DEPTH)/cobalt/bindings/mozjs/templates/interface.h.template',
-          '<(DEPTH)/cobalt/bindings/mozjs/templates/macros.cc.template',
-        ],
-        'engine_bindings_scripts': [
-          '<(DEPTH)/cobalt/bindings/mozjs/code_generator_mozjs.py',
-          '<(DEPTH)/cobalt/bindings/mozjs/idl_compiler_mozjs.py',
-          '<(DEPTH)/cobalt/bindings/mozjs/generate_conversion_header_mozjs.py',
-        ],
-        'engine_idl_compiler':
-            '<(DEPTH)/cobalt/bindings/mozjs/idl_compiler_mozjs.py',
-        'engine_conversion_header_generator_script':
-            '<(DEPTH)/cobalt/bindings/mozjs/generate_conversion_header_mozjs.py',
-      }],
-    ],
-  },
-}
diff --git a/src/cobalt/script/mozjs/mozjs_wrapper_handle.h b/src/cobalt/script/mozjs/mozjs_wrapper_handle.h
deleted file mode 100644
index 8bc2766..0000000
--- a/src/cobalt/script/mozjs/mozjs_wrapper_handle.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_MOZJS_WRAPPER_HANDLE_H_
-#define COBALT_SCRIPT_MOZJS_MOZJS_WRAPPER_HANDLE_H_
-
-#include "base/memory/weak_ptr.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "cobalt/script/wrappable.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Implements Wrappable::WeakWrapperHandler and thus represents the cached
-// JS wrapper for a given Wrappable. The Wrapper could be garbage collected
-// at any time.
-class MozjsWrapperHandle : public Wrappable::WeakWrapperHandle {
- public:
-  explicit MozjsWrapperHandle(WrapperPrivate* wrapper_private) {
-    DCHECK(wrapper_private);
-    weak_wrapper_private_ = wrapper_private->AsWeakPtr();
-  }
-
-  static JSObject* GetObjectProxy(const Wrappable::WeakWrapperHandle* handle) {
-    if (handle) {
-      const MozjsWrapperHandle* mozjs_handle =
-          base::polymorphic_downcast<const MozjsWrapperHandle*>(handle);
-      if (mozjs_handle->weak_wrapper_private_) {
-        return mozjs_handle->weak_wrapper_private_->js_object_proxy();
-      }
-    }
-    return NULL;
-  }
-
- private:
-  base::WeakPtr<WrapperPrivate> weak_wrapper_private_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_MOZJS_WRAPPER_HANDLE_H_
diff --git a/src/cobalt/script/mozjs/native_promise.h b/src/cobalt/script/mozjs/native_promise.h
deleted file mode 100644
index 25f9e99..0000000
--- a/src/cobalt/script/mozjs/native_promise.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef COBALT_SCRIPT_MOZJS_NATIVE_PROMISE_H_
-#define COBALT_SCRIPT_MOZJS_NATIVE_PROMISE_H_
-
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/promise_wrapper.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "cobalt/script/promise.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Shared functionality for NativePromise<T>. Does not implement the Resolve
-// function, since that needs to be specialized for Promise<T>.
-template <typename T>
-class NativePromiseBase : public Promise<T> {
- public:
-  // ScriptObject boilerplate.
-  typedef Promise<T> BaseType;
-  JSObject* handle() const { return promise_resolver_->get().GetObject(); }
-  const JS::Value& value() const { return promise_resolver_->get().GetValue(); }
-  bool WasCollected() const { return promise_resolver_->get().WasCollected(); }
-
-  // The Promise JS object (not the resolver).
-  JSObject* promise() const { return promise_resolver_->GetPromise(); }
-
-  void Reject() const OVERRIDE {
-    JS::RootedObject promise_resolver(context_,
-                                      promise_resolver_->get().GetObject());
-    if (promise_resolver) {
-      JSAutoRequest auto_request(context_);
-      JSAutoCompartment auto_compartment(context_, promise_resolver);
-      promise_resolver_->Reject(JS::UndefinedHandleValue);
-    }
-  }
-
-  void Reject(SimpleExceptionType exception) const OVERRIDE {
-    JS::RootedObject promise_resolver(context_,
-                                      promise_resolver_->get().GetObject());
-    if (promise_resolver) {
-      JSAutoRequest auto_request(context_);
-      JSAutoCompartment auto_compartment(context_, promise_resolver);
-      JS::RootedValue error_result(
-          context_, OBJECT_TO_JSVAL(MozjsExceptionState::CreateErrorObject(
-                        context_, exception)));
-      promise_resolver_->Reject(error_result);
-    }
-  }
-
-  void Reject(const scoped_refptr<ScriptException>& result) const OVERRIDE {
-    JS::RootedObject promise_resolver(context_,
-                                      promise_resolver_->get().GetObject());
-    if (promise_resolver) {
-      JSAutoRequest auto_request(context_);
-      JSAutoCompartment auto_compartment(context_, promise_resolver);
-      JS::RootedValue converted_result(context_);
-      ToJSValue(context_, result, &converted_result);
-      promise_resolver_->Reject(converted_result);
-    }
-  }
-
- protected:
-  NativePromiseBase(JSContext* context, JS::HandleObject resolver_object)
-      : context_(context) {
-    promise_resolver_.emplace(context, resolver_object);
-  }
-
-  NativePromiseBase(JSContext* context, JS::HandleValue resolver_value)
-      : context_(context) {
-    DCHECK(resolver_value.isObject());
-    JS::RootedObject resolver_object(context, &resolver_value.toObject());
-    promise_resolver_.emplace(context, resolver_object);
-  }
-
-  JSContext* context_;
-  base::optional<PromiseWrapper> promise_resolver_;
-};
-
-// Implements the Resolve() function for T != void.
-template <typename T>
-class NativePromise : public NativePromiseBase<T> {
- public:
-  NativePromise(JSContext* context, JS::HandleObject resolver_object)
-      : NativePromiseBase<T>(context, resolver_object) {}
-
-  NativePromise(JSContext* context, JS::HandleValue resolver_value)
-      : NativePromiseBase<T>(context, resolver_value) {}
-
-  void Resolve(const T& value) const OVERRIDE {
-    JS::RootedObject promise_wrapper(
-        this->context_, this->promise_resolver_->get().GetObject());
-    if (promise_wrapper) {
-      JSAutoRequest auto_request(this->context_);
-      JSAutoCompartment auto_compartment(this->context_, promise_wrapper);
-      JS::RootedValue converted_value(this->context_);
-      ToJSValue(this->context_, value, &converted_value);
-      this->promise_resolver_->Resolve(converted_value);
-    }
-  }
-};
-
-// Implements the Resolve() function for T == void.
-template <>
-class NativePromise<void> : public NativePromiseBase<void> {
- public:
-  NativePromise(JSContext* context, JS::HandleObject resolver_object)
-      : NativePromiseBase<void>(context, resolver_object) {}
-
-  NativePromise(JSContext* context, JS::HandleValue resolver_value)
-      : NativePromiseBase<void>(context, resolver_value) {}
-
-  void Resolve() const OVERRIDE {
-    JS::RootedObject promise_wrapper(context_,
-                                     promise_resolver_->get().GetObject());
-    if (promise_wrapper) {
-      JSAutoRequest auto_request(context_);
-      JSAutoCompartment auto_compartment(context_, promise_wrapper);
-      promise_resolver_->Resolve(JS::UndefinedHandleValue);
-    }
-  }
-};
-
-template <typename T>
-struct TypeTraits<NativePromise<T> > {
-  typedef MozjsUserObjectHolder<NativePromise<T> > ConversionType;
-  typedef const ScriptValue<Promise<T> >* ReturnType;
-};
-
-// Promise<T> -> JSValue
-// Note that JSValue -> Promise<T> is not yet supported.
-template <typename T>
-inline void ToJSValue(JSContext* context,
-                      const ScriptValue<Promise<T> >* promise_holder,
-                      JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  if (!promise_holder) {
-    out_value.set(JS::NullValue());
-    return;
-  }
-  const MozjsUserObjectHolder<NativePromise<T> >* user_object_holder =
-      base::polymorphic_downcast<
-          const MozjsUserObjectHolder<NativePromise<T> >*>(promise_holder);
-
-  const NativePromise<T>* native_promise =
-      base::polymorphic_downcast<const NativePromise<T>*>(
-          user_object_holder->GetScriptValue());
-
-  DCHECK(native_promise);
-  out_value.setObjectOrNull(native_promise->promise());
-}
-
-// Explicitly defer to the const version here so that a more generic non-const
-// version of this function does not get called instead, in the case that
-// |promise_holder| is not const.
-template <typename T>
-inline void ToJSValue(JSContext* context,
-                      ScriptValue<Promise<T> >* promise_holder,
-                      JS::MutableHandleValue out_value) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  ToJSValue(context,
-            const_cast<const ScriptValue<Promise<T> >*>(promise_holder),
-            out_value);
-}
-
-// Destroys |promise_holder| as soon as the conversion is done.
-// This is useful when a wrappable is not interested in retaining a reference
-// to a promise, typically when a promise is resolved or rejected synchronously.
-template <typename T>
-inline void ToJSValue(JSContext* context,
-                      scoped_ptr<ScriptValue<Promise<T> > > promise_holder,
-                      JS::MutableHandleValue out_value) {
-  ToJSValue(context, promise_holder.get(), out_value);
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-#endif  // COBALT_SCRIPT_MOZJS_NATIVE_PROMISE_H_
diff --git a/src/cobalt/script/mozjs/native_promise_test.cc b/src/cobalt/script/mozjs/native_promise_test.cc
deleted file mode 100644
index 9194b9c..0000000
--- a/src/cobalt/script/mozjs/native_promise_test.cc
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Simple tests to exercise basic NativePromise functionality. Difficult to
-// verify functionality without bindings support.
-
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "cobalt/script/environment_settings.h"
-#include "cobalt/script/global_environment.h"
-#include "cobalt/script/javascript_engine.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace {
-typedef ScriptValue<Promise<void> > VoidPromise;
-class NativePromiseTest : public ::testing::Test {
- protected:
-  NativePromiseTest()
-      : environment_settings_(new script::EnvironmentSettings),
-        engine_(script::JavaScriptEngine::CreateEngine()),
-        global_environment_(engine_->CreateGlobalEnvironment()) {
-    global_environment_->CreateGlobalObject();
-  }
-
-  const scoped_ptr<script::EnvironmentSettings> environment_settings_;
-  const scoped_ptr<script::JavaScriptEngine> engine_;
-  const scoped_refptr<script::GlobalEnvironment> global_environment_;
-};
-
-TEST_F(NativePromiseTest, CreateNativePromise) {
-  scoped_ptr<VoidPromise> promise;
-  promise =
-      global_environment_->script_value_factory()->CreateBasicPromise<void>();
-}
-
-TEST_F(NativePromiseTest, ResolveNativePromise) {
-  scoped_ptr<VoidPromise> promise;
-  promise =
-      global_environment_->script_value_factory()->CreateBasicPromise<void>();
-  VoidPromise::StrongReference reference(*promise.get());
-  reference.value().Resolve();
-}
-
-TEST_F(NativePromiseTest, RejectNativePromise) {
-  scoped_ptr<VoidPromise> promise;
-  promise =
-      global_environment_->script_value_factory()->CreateBasicPromise<void>();
-  VoidPromise::StrongReference reference(*promise.get());
-  reference.value().Reject();
-}
-
-}  // namespace
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/promise_wrapper.cc b/src/cobalt/script/mozjs/promise_wrapper.cc
deleted file mode 100644
index 36689cb..0000000
--- a/src/cobalt/script/mozjs/promise_wrapper.cc
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "cobalt/script/mozjs/promise_wrapper.h"
-
-#include "base/logging.h"
-#include "third_party/mozjs/js/src/jsfun.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace {
-enum ReservedSlots {
-  kResolveFunction,
-  kRejectFunction,
-  kPromiseObject,
-  kNumReservedSlots,
-};
-
-JSClass native_promise_class = {
-    "NativePromise",  // name
-
-    JSCLASS_HAS_RESERVED_SLOTS(kNumReservedSlots),  // flags
-
-    JS_PropertyStub,        // addProperty
-    JS_DeletePropertyStub,  // delProperty
-    JS_PropertyStub,        // getProperty
-    JS_StrictPropertyStub,  // setProperty
-    JS_EnumerateStub,       // enumerate
-    JS_ResolveStub,         // resolve
-    JS_ConvertStub,         // convert
-    NULL,                   // finalize
-    NULL,                   // trace
-};
-
-JSBool NativeExecutor(JSContext* context, unsigned argc, JS::Value* vp) {
-  // Get the resolve/reject functions from the call args.
-  JS::CallArgs call_args = CallArgsFromVp(argc, vp);
-  DCHECK_EQ(call_args.length(), 2);
-
-  // Get the this object. Should be the native_promise object.
-  JS::RootedValue this_value(context, call_args.computeThis(context));
-  DCHECK(this_value.isObject());
-  JS::RootedObject this_object(context, JSVAL_TO_OBJECT(this_value));
-  DCHECK_EQ(JS_GetClass(this_object), &native_promise_class);
-
-  // First argument is the resolve function. Second is the reject function.
-  // Stash these in the reserved slots. Reserved slots get visited so there is
-  // no need to define a special trace function.
-  JS::RootedValue resolve_function_value(context, call_args.get(0));
-  JS::RootedValue reject_function_value(context, call_args.get(1));
-  DCHECK(resolve_function_value.isObject());
-  DCHECK(JS_ObjectIsFunction(context, JSVAL_TO_OBJECT(resolve_function_value)));
-  DCHECK(reject_function_value.isObject());
-  DCHECK(JS_ObjectIsFunction(context, JSVAL_TO_OBJECT(reject_function_value)));
-
-  JS_SetReservedSlot(this_object, kResolveFunction, resolve_function_value);
-  JS_SetReservedSlot(this_object, kRejectFunction, reject_function_value);
-  return true;
-}
-
-// Creates a new NativePromise object and initializes its reserved slots.
-JSObject* CreateNativePromise(JSContext* context) {
-  JS::RootedObject native_promise(
-      context, JS_NewObject(context, &native_promise_class, NULL, NULL));
-  DCHECK(native_promise);
-  for (uint32_t i = 0; i < kNumReservedSlots; ++i) {
-    JS_SetReservedSlot(native_promise, i, JS::NullHandleValue);
-  }
-  return native_promise;
-}
-
-// Create a new native function with the |native_promise| bound as |this|.
-JSObject* CreateExecutorArgument(JSContext* context,
-                                 JS::HandleObject native_promise) {
-  JS::RootedObject executor_function(context);
-  executor_function =
-      JS_NewFunction(context, &NativeExecutor, 2, 0, NULL, NULL);
-  DCHECK(executor_function);
-
-  JS::RootedObject bound_executor(context);
-  bound_executor = JS_BindCallable(context, executor_function, native_promise);
-  DCHECK(bound_executor);
-  return bound_executor;
-}
-
-// Get the Promise constructor from the global object.
-JSObject* GetPromiseConstructor(JSContext* context,
-                                JS::HandleObject global_object) {
-  JS::RootedValue promise_constructor_property(context);
-  JSBool result = JS_GetProperty(context, global_object, "Promise",
-                                 promise_constructor_property.address());
-  DCHECK(result);
-  if (!promise_constructor_property.isObject() ||
-      !JS_ObjectIsFunction(context,
-                           JSVAL_TO_OBJECT(promise_constructor_property))) {
-    DLOG(ERROR) << "\"Promise\" property is not a function.";
-    return NULL;
-  }
-  return JSVAL_TO_OBJECT(promise_constructor_property);
-}
-
-void Settle(JSContext* context, JS::HandleValue result,
-            JS::HandleObject resolver, ReservedSlots slot) {
-  JS::RootedValue slot_value(context, JS_GetReservedSlot(resolver, slot));
-  DCHECK(slot_value.isObject());
-  DCHECK(JS_ObjectIsFunction(context, JSVAL_TO_OBJECT(slot_value)));
-
-  JS::RootedValue return_value(context);
-  const size_t kNumArguments = result.isUndefined() ? 0 : 1;
-  JS::Value args[1] = {result};
-  JSBool call_result =
-      JS_CallFunctionValue(context, resolver, slot_value, kNumArguments, args,
-                           return_value.address());
-  if (!call_result) {
-    DLOG(ERROR) << "Exception calling Promise function.";
-    JS_ClearPendingException(context);
-  }
-}
-}  // namespace
-
-JSObject* PromiseWrapper::Create(JSContext* context,
-                                 JS::HandleObject global_object) {
-  // Get the Promise constructor.
-  JS::RootedObject constructor(context,
-                               GetPromiseConstructor(context, global_object));
-  if (!constructor) {
-    DLOG(ERROR) << "Failed to find Promise constructor.";
-    return NULL;
-  }
-  // Create a new NativePromise JS object, and bind it to the NativeExecutor
-  // function.
-  JS::RootedObject promise_wrapper(context, CreateNativePromise(context));
-  DCHECK(promise_wrapper);
-  JS::RootedObject executor(context,
-                            CreateExecutorArgument(context, promise_wrapper));
-  DCHECK(executor);
-
-  // Invoke the Promise constructor with the native executor function.
-  const size_t kNumArguments = 1;
-  JS::Value args[kNumArguments] = {OBJECT_TO_JSVAL(executor)};
-  JS::RootedObject promise_object(context);
-  promise_object = JS_New(context, constructor, kNumArguments, args);
-  if (!promise_object) {
-    DLOG(ERROR) << "Failed to create a new Promise.";
-    return NULL;
-  }
-  // Maintain a handle to the promise object on the NativePromise.
-  JS_SetReservedSlot(promise_wrapper, kPromiseObject,
-                     OBJECT_TO_JSVAL(promise_object));
-
-  return promise_wrapper;
-}
-
-JSObject* PromiseWrapper::GetPromise() const {
-  JS::RootedObject promise(context_);
-  JS::RootedObject promise_wrapper(context_, weak_promise_wrapper_.GetObject());
-  if (promise_wrapper) {
-    JS::RootedValue slot_value(
-        context_, JS_GetReservedSlot(promise_wrapper, kPromiseObject));
-    DCHECK(slot_value.isObject());
-    promise = JSVAL_TO_OBJECT(slot_value);
-  }
-  return promise;
-}
-
-void PromiseWrapper::Resolve(JS::HandleValue value) const {
-  JS::RootedObject promise_wrapper(context_, weak_promise_wrapper_.GetObject());
-  if (promise_wrapper) {
-    Settle(context_, value, promise_wrapper, kResolveFunction);
-  }
-}
-
-void PromiseWrapper::Reject(JS::HandleValue value) const {
-  JS::RootedObject promise_wrapper(context_, weak_promise_wrapper_.GetObject());
-  if (promise_wrapper) {
-    Settle(context_, value, promise_wrapper, kRejectFunction);
-  }
-}
-
-PromiseWrapper::PromiseWrapper(JSContext* context,
-                               JS::HandleObject promise_wrapper)
-    : context_(context), weak_promise_wrapper_(context, promise_wrapper) {
-  DCHECK_EQ(JS_GetClass(promise_wrapper), &native_promise_class);
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/promise_wrapper.h b/src/cobalt/script/mozjs/promise_wrapper.h
deleted file mode 100644
index 1725119..0000000
--- a/src/cobalt/script/mozjs/promise_wrapper.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2017 Google Inc. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef COBALT_SCRIPT_MOZJS_PROMISE_WRAPPER_H_
-#define COBALT_SCRIPT_MOZJS_PROMISE_WRAPPER_H_
-
-#include "base/memory/scoped_ptr.h"
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Native class that maintains a weak handle to a JS object that is a proxy to
-// a JS Promise object. The wrapper object maintains references to the reject
-// and resolve functions that are passed to the Promise executor function.
-class PromiseWrapper {
- public:
-  // Creates a new JS object that wraps a new Promise, created using the
-  // Promise constructor on |global_object|. Returns NULL on failure.
-  static JSObject* Create(JSContext* context, JS::HandleObject global_object);
-
-  PromiseWrapper(JSContext* context, JS::HandleObject promise_wrapper);
-
-  const WeakHeapObject& get() const { return weak_promise_wrapper_; }
-  JSObject* GetPromise() const;
-  void Resolve(JS::HandleValue value) const;
-  void Reject(JS::HandleValue value) const;
-
- private:
-  JSContext* context_;
-  WeakHeapObject weak_promise_wrapper_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_PROMISE_WRAPPER_H_
diff --git a/src/cobalt/script/mozjs/proxy_handler.cc b/src/cobalt/script/mozjs/proxy_handler.cc
deleted file mode 100644
index 2c45dbb..0000000
--- a/src/cobalt/script/mozjs/proxy_handler.cc
+++ /dev/null
@@ -1,298 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/proxy_handler.h"
-
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-ProxyHandler::ProxyHandler(const IndexedPropertyHooks& indexed_hooks,
-                           const NamedPropertyHooks& named_hooks)
-    : js::DirectProxyHandler(NULL),
-      indexed_property_hooks_(indexed_hooks),
-      named_property_hooks_(named_hooks),
-      has_custom_property_(false) {
-  // If an interface supports named/indexed properties, they must have a hook to
-  // check if the name/index is supported and to enumerate the properties.
-  if (supports_named_properties()) {
-    DCHECK(named_property_hooks_.is_supported);
-    DCHECK(named_property_hooks_.enumerate_supported);
-  }
-  if (supports_indexed_properties()) {
-    DCHECK(indexed_property_hooks_.is_supported);
-    DCHECK(indexed_property_hooks_.enumerate_supported);
-  }
-}
-
-JSObject* ProxyHandler::NewProxy(JSContext* context, JSObject* object,
-                                 JSObject* prototype, JSObject* parent,
-                                 ProxyHandler* handler) {
-  JS::RootedValue as_value(context, OBJECT_TO_JSVAL(object));
-  return js::NewProxyObject(context, handler, as_value, prototype, parent);
-}
-
-bool ProxyHandler::getPropertyDescriptor(JSContext* context,
-                                         JS::HandleObject proxy,
-                                         JS::HandleId id,
-                                         JSPropertyDescriptor* descriptor,
-                                         unsigned flags) {
-  if (!getOwnPropertyDescriptor(context, proxy, id, descriptor, flags)) {
-    return false;
-  }
-  if (descriptor->obj == NULL) {
-    JS::RootedObject prototype(context);
-    if (getPrototypeOf(context, proxy, &prototype)) {
-      return JS_GetPropertyDescriptorById(context, prototype, id, flags,
-                                          descriptor);
-    }
-  }
-  return true;
-}
-
-bool ProxyHandler::getOwnPropertyDescriptor(JSContext* context,
-                                            JS::HandleObject proxy,
-                                            JS::HandleId id,
-                                            JSPropertyDescriptor* descriptor,
-                                            unsigned flags) {
-  if (!LegacyPlatformObjectGetOwnPropertyDescriptor(context, proxy, id,
-                                                   descriptor)) {
-    return false;
-  }
-  if (descriptor->obj == NULL) {
-    return js::DirectProxyHandler::getOwnPropertyDescriptor(context, proxy, id,
-                                                            descriptor, flags);
-  }
-  return true;
-}
-
-bool ProxyHandler::delete_(JSContext* context, JS::HandleObject proxy,
-                           JS::HandleId id, bool* succeeded) {
-  // https://www.w3.org/TR/WebIDL/#delete
-  if (supports_named_properties() || supports_indexed_properties()) {
-    // Convert the id to a JSValue, so we can easily convert it to Uint32 and
-    // JSString.
-    JS::RootedValue id_value(context);
-    if (!JS_IdToValue(context, id, id_value.address())) {
-      NOTREACHED();
-      return false;
-    }
-    DCHECK(js::IsProxy(proxy));
-    JS::RootedObject object(context, js::GetProxyTargetObject(proxy));
-    if (supports_indexed_properties()) {
-      // If the interface supports indexed properties and this is an array index
-      // property name, and it is a supported property index.
-      uint32_t index;
-      // 1. If O supports indexed properties and P is an array index property
-      // name,
-      //    then:
-      if (IsArrayIndexPropertyName(context, id_value, &index)) {
-        if (!IsSupportedIndex(context, object, index)) {
-          // 1.2. If index is not a supported property index, then return true.
-          *succeeded = true;
-        } else if (!indexed_property_hooks_.deleter) {
-          // 1.3. If O does not implement an interface with an indexed property
-          //    deleter, then Reject.
-          *succeeded = false;
-        } else {
-          *succeeded = indexed_property_hooks_.deleter(context, object, index);
-        }
-        return true;
-      }
-    }
-    if (supports_named_properties()) {
-      std::string property_name;
-      MozjsExceptionState exception_state(context);
-      FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-                  &property_name);
-      if (exception_state.is_exception_set()) {
-        // The ID should be an integer or a string, so we shouldn't have any
-        // exceptions converting to string.
-        NOTREACHED();
-        return false;
-      }
-      if (IsNamedPropertyVisible(context, object, property_name)) {
-        if (!named_property_hooks_.deleter) {
-          *succeeded = false;
-        } else {
-          *succeeded =
-              named_property_hooks_.deleter(context, object, property_name);
-        }
-        return true;
-      }
-    }
-  }
-  return js::DirectProxyHandler::delete_(context, proxy, id, succeeded);
-}
-
-bool ProxyHandler::enumerate(JSContext* context, JS::HandleObject proxy,
-                             JS::AutoIdVector& properties) {
-  // https://www.w3.org/TR/WebIDL/#property-enumeration
-  // Indexed properties go first, then named properties, then everything else.
-  JS::RootedObject object(context, js::GetProxyTargetObject(proxy));
-  if (supports_indexed_properties()) {
-    indexed_property_hooks_.enumerate_supported(context, object, &properties);
-  }
-  if (supports_named_properties()) {
-    named_property_hooks_.enumerate_supported(context, object, &properties);
-  }
-  return js::DirectProxyHandler::enumerate(context, proxy, properties);
-}
-
-bool ProxyHandler::defineProperty(JSContext* context, JS::HandleObject proxy,
-                                  JS::HandleId id,
-                                  JSPropertyDescriptor* descriptor) {
-  has_custom_property_ = true;
-  return js::DirectProxyHandler::defineProperty(context, proxy, id, descriptor);
-}
-
-bool ProxyHandler::LegacyPlatformObjectGetOwnPropertyDescriptor(
-    JSContext* context, JS::HandleObject proxy, JS::HandleId id,
-    JSPropertyDescriptor* descriptor) {
-  // https://heycam.github.io/webidl/#LegacyPlatformObjectGetOwnProperty
-  JS::RootedObject object(context, js::GetProxyTargetObject(proxy));
-  if (supports_named_properties() || supports_indexed_properties()) {
-    // Convert the id to a JSValue, so we can easily convert it to Uint32 and
-    // JSString.
-    JS::RootedValue id_value(context);
-    if (!JS_IdToValue(context, id, id_value.address())) {
-      NOTREACHED();
-      return false;
-    }
-    if (supports_indexed_properties()) {
-      // If the interface supports indexed properties and this is an array index
-      // property name, and it is a supported property index.
-      uint32_t index;
-      if (IsArrayIndexPropertyName(context, id_value, &index) &&
-          IsSupportedIndex(context, object, index)) {
-        descriptor->obj = object;
-        descriptor->attrs = JSPROP_SHARED | JSPROP_INDEX | JSPROP_ENUMERATE;
-        descriptor->getter = indexed_property_hooks_.getter;
-        if (indexed_property_hooks_.setter) {
-          descriptor->setter = indexed_property_hooks_.setter;
-        } else {
-          descriptor->attrs |= JSPROP_READONLY;
-        }
-        return true;
-      }
-    }
-    if (supports_named_properties()) {
-      std::string property_name;
-      MozjsExceptionState exception_state(context);
-      FromJSValue(context, id_value, kNoConversionFlags, &exception_state,
-                  &property_name);
-      if (exception_state.is_exception_set()) {
-        // The ID should be an integer or a string, so we shouldn't have any
-        // exceptions converting to string.
-        NOTREACHED();
-        return false;
-      }
-      if (IsNamedPropertyVisible(context, object, property_name)) {
-        descriptor->obj = object;
-        descriptor->attrs = JSPROP_SHARED | JSPROP_ENUMERATE;
-        descriptor->getter = named_property_hooks_.getter;
-        if (named_property_hooks_.setter) {
-          descriptor->setter = named_property_hooks_.setter;
-        } else {
-          descriptor->attrs |= JSPROP_READONLY;
-        }
-        return true;
-      }
-    }
-  }
-  return true;
-}
-
-bool ProxyHandler::IsSupportedIndex(JSContext* context, JS::HandleObject object,
-                                    uint32_t index) {
-  DCHECK(indexed_property_hooks_.is_supported);
-  return indexed_property_hooks_.is_supported(context, object, index);
-}
-
-bool ProxyHandler::IsSupportedName(JSContext* context, JS::HandleObject object,
-                                   const std::string& name) {
-  DCHECK(named_property_hooks_.is_supported);
-  return named_property_hooks_.is_supported(context, object, name);
-}
-
-bool ProxyHandler::IsArrayIndexPropertyName(JSContext* context,
-                                            JS::HandleValue property_value,
-                                            uint32_t* out_index) {
-  // https://www.w3.org/TR/WebIDL/#dfn-array-index-property-name
-  // 1. Let i be ToUint32(P).
-  uint32_t index;
-  if (!JS::ToUint32(context, property_value, &index)) {
-    return false;
-  }
-
-  // 3. If i = 2^32 - 1, then return false.
-  if (index == 0xFFFFFFFF) {
-    return false;
-  }
-
-  // 2. Let s be ToString(i).
-  // 3. If s != P then return false.
-  JSBool are_equal;
-  JS::RootedString index_as_string(
-      context, JS_ValueToString(context, UINT_TO_JSVAL(index)));
-  if (!JS_LooselyEqual(context, JS::StringValue(index_as_string),
-                       property_value, &are_equal) ||
-      !are_equal) {
-    return false;
-  }
-
-  // 4. Return true.
-  *out_index = index;
-  return true;
-}
-
-bool ProxyHandler::IsNamedPropertyVisible(JSContext* context,
-                                          JS::HandleObject object,
-                                          const std::string& property_name) {
-  // Named property visiblity algorithm.
-  // https://www.w3.org/TR/WebIDL/#dfn-named-property-visibility
-
-  // 1. If P is an unforgeable property name on O, then return false.
-  // 2. If O implements an interface with an [Unforgeable]-annotated attribute
-  //    whose identifier is P, then return false.
-  // TODO: Implement Unforgeable extended attribute.
-
-  // 3. If P is not a supported property name of O, then return false.
-  if (!IsSupportedName(context, object, property_name)) {
-    return false;
-  }
-
-  // 4. If O implements an interface that has the [OverrideBuiltins] extended
-  // attribute, then return true.
-  // TODO: Implement OverrideBuiltins extended attribute
-
-  // 5. If O has an own property named P, then return false.
-  // 6~7. ( Walk the prototype chain and if the prootype has P, return false)
-
-  JSBool found_property;
-  if (!JS_HasProperty(context, object, property_name.c_str(),
-                      &found_property)) {
-    // An error occurred searching for the property.
-    NOTREACHED();
-    return true;
-  }
-  return !found_property;
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/proxy_handler.h b/src/cobalt/script/mozjs/proxy_handler.h
deleted file mode 100644
index c6eff6e..0000000
--- a/src/cobalt/script/mozjs/proxy_handler.h
+++ /dev/null
@@ -1,180 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_PROXY_HANDLER_H_
-#define COBALT_SCRIPT_MOZJS_PROXY_HANDLER_H_
-
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "base/logging.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsproxy.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// SpiderMonkey has a concept of a Proxy object which is associated with another
-// arbitrary object and a js::BaseProxyHandler interface. The handler interface
-// provides a number of traps for providing custom implementations of
-// fundamental ECMAScript operations such as getPropertyDescriptor.
-//
-// The implementation of each trap in the js::DirectProxyHandler class simply
-// forwards each trap to the target object.
-//
-// In defining a JSClass a number of function pointers can be set that will
-// be called when getting, setting, deleting, etc. a property, but these do not
-// map well onto the Web IDL spec for implementing interfaces that support named
-// and indexed properties.
-//
-// See third_party/mozjs/js/src/jsproxy.h for more details.
-//
-// ProxyHandler provides custom traps for getPropertyDescriptor, delete_, and
-// enumerate to implement interfaces that support named and indexed properties.
-class ProxyHandler : public js::DirectProxyHandler {
- public:
-  typedef bool (*IsSupportedIndexFunction)(JSContext*, JS::HandleObject,
-                                           uint32_t);
-  typedef bool (*IsSupportedNameFunction)(JSContext*, JS::HandleObject,
-                                          const std::string&);
-  typedef void (*EnumerateSupportedIndexesFunction)(JSContext*,
-                                                    JS::HandleObject,
-                                                    JS::AutoIdVector*);
-  typedef void (*EnumerateSupportedNamesFunction)(JSContext*, JS::HandleObject,
-                                                  JS::AutoIdVector*);
-  typedef bool (*IndexedDeleteFunction)(JSContext*, JS::HandleObject, uint32_t);
-  typedef bool (*NamedDeleteFunction)(JSContext*, JS::HandleObject,
-                                      const std::string&);
-
-  // Hooks for interfaces that support indexed properties.
-  struct IndexedPropertyHooks {
-    IsSupportedIndexFunction is_supported;
-    EnumerateSupportedIndexesFunction enumerate_supported;
-    JSPropertyOp getter;
-    JSStrictPropertyOp setter;
-    IndexedDeleteFunction deleter;
-  };
-
-  // Hooks for interfaces that support named properties.
-  struct NamedPropertyHooks {
-    IsSupportedNameFunction is_supported;
-    EnumerateSupportedNamesFunction enumerate_supported;
-    JSPropertyOp getter;
-    JSStrictPropertyOp setter;
-    NamedDeleteFunction deleter;
-  };
-
-  static JSObject* NewProxy(JSContext* context, JSObject* object,
-                            JSObject* prototype, JSObject* parent,
-                            ProxyHandler* handler);
-
-  // Construct a new ProxyHandler with the provided hooks.
-  ProxyHandler(const IndexedPropertyHooks& indexed_hooks,
-               const NamedPropertyHooks& named_hooks);
-
-  // Overridden fundamental traps.
-  bool getPropertyDescriptor(JSContext* context, JS::HandleObject proxy,
-                             JS::HandleId id, JSPropertyDescriptor* descriptor,
-                             unsigned flags) OVERRIDE;
-  bool getOwnPropertyDescriptor(JSContext* context, JS::HandleObject proxy,
-                                JS::HandleId id,
-                                JSPropertyDescriptor* descriptor,
-                                unsigned flags) OVERRIDE;
-  bool delete_(JSContext* context, JS::HandleObject proxy, JS::HandleId id,
-               bool* succeeded) OVERRIDE;
-  bool enumerate(JSContext* context, JS::HandleObject proxy,
-                 JS::AutoIdVector& properties) OVERRIDE;  // NOLINT[runtime/references]
-  bool defineProperty(JSContext* context, JS::HandleObject proxy,
-                      JS::HandleId id,
-                      JSPropertyDescriptor* descriptor) OVERRIDE;
-
-  // The derived traps in js::DirectProxyHandler are not implemented in terms of
-  // the fundamental traps, where the traps in js::BaseProxyHandler are.
-  // Redefining the derived traps to be in terms of the fundamental traps means
-  // that we only need to override the fundamental traps when implementing
-  // custom behavior for i.e. interfaces that support named properties.
-  bool has(JSContext* context, JS::HandleObject proxy, JS::HandleId id,
-           bool* bp) OVERRIDE {
-    return js::BaseProxyHandler::has(context, proxy, id, bp);
-  }
-
-  bool hasOwn(JSContext* context, JS::HandleObject proxy, JS::HandleId id,
-              bool* bp) OVERRIDE {
-    return js::BaseProxyHandler::hasOwn(context, proxy, id, bp);
-  }
-
-  bool get(JSContext* context, JS::HandleObject proxy,
-           JS::HandleObject receiver, JS::HandleId id,
-           JS::MutableHandleValue vp) OVERRIDE {
-    return js::BaseProxyHandler::get(context, proxy, receiver, id, vp);
-  }
-
-  bool set(JSContext* context, JS::HandleObject proxy,
-           JS::HandleObject receiver, JS::HandleId id, bool strict,
-           JS::MutableHandleValue vp) OVERRIDE {
-    return js::BaseProxyHandler::set(context, proxy, receiver, id, strict, vp);
-  }
-
-  bool keys(JSContext* context, JS::HandleObject proxy,
-            JS::AutoIdVector& props) OVERRIDE {  // NOLINT[runtime/references]
-    return js::BaseProxyHandler::keys(context, proxy, props);
-  }
-
-  bool iterate(JSContext* context, JS::HandleObject proxy, unsigned flags,
-               JS::MutableHandleValue vp) OVERRIDE {
-    return js::BaseProxyHandler::iterate(context, proxy, flags, vp);
-  }
-
-  bool has_custom_property() const { return has_custom_property_; }
-
- private:
-  // https://heycam.github.io/webidl/#LegacyPlatformObjectGetOwnProperty
-  // This is used to support named and indexed properties.
-  // Returns false on internal failure.
-  bool LegacyPlatformObjectGetOwnPropertyDescriptor(
-      JSContext* context, JS::HandleObject proxy, JS::HandleId id,
-      JSPropertyDescriptor* descriptor);
-
-  bool supports_named_properties() {
-    return named_property_hooks_.getter != NULL;
-  }
-
-  bool supports_indexed_properties() {
-    return indexed_property_hooks_.getter != NULL;
-  }
-
-  bool IsSupportedIndex(JSContext* context, JS::HandleObject object,
-                        uint32_t index);
-
-  bool IsSupportedName(JSContext* context, JS::HandleObject object,
-                       const std::string& name);
-
-  bool IsArrayIndexPropertyName(JSContext* context,
-                                JS::HandleValue property_value,
-                                uint32_t* out_index);
-
-  bool IsNamedPropertyVisible(JSContext* context, JS::HandleObject object,
-                              const std::string& property_name);
-
-  IndexedPropertyHooks indexed_property_hooks_;
-  NamedPropertyHooks named_property_hooks_;
-  // Set to true if this object may have a custom property set on it.
-  bool has_custom_property_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_PROXY_HANDLER_H_
diff --git a/src/cobalt/script/mozjs/referenced_object_map.cc b/src/cobalt/script/mozjs/referenced_object_map.cc
deleted file mode 100644
index c12eaff..0000000
--- a/src/cobalt/script/mozjs/referenced_object_map.cc
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/referenced_object_map.h"
-
-#include <utility>
-
-#include "cobalt/script/mozjs/util/algorithm_helpers.h"
-#include "nb/memory_scope.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-ReferencedObjectMap::ReferencedObjectMap(JSContext* context)
-    : context_(context) {}
-
-// Add/Remove a reference from a WrapperPrivate to a JSValue.
-void ReferencedObjectMap::AddReferencedObject(intptr_t key,
-                                              JS::HandleValue referee) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  DCHECK(thread_checker_.CalledOnValidThread());
-  DCHECK(!referee.isNullOrUndefined());
-  DCHECK(referee.isGCThing());
-  referenced_objects_.insert(
-      std::make_pair(key, WeakHeapObject(context_, referee)));
-}
-
-void ReferencedObjectMap::RemoveReferencedObject(intptr_t key,
-                                                 JS::HandleValue referee) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  std::pair<ReferencedObjectMultiMap::iterator,
-            ReferencedObjectMultiMap::iterator> pair_range =
-      referenced_objects_.equal_range(key);
-  for (ReferencedObjectMultiMap::iterator it = pair_range.first;
-       it != pair_range.second; ++it) {
-    JS::RootedValue element(context_, it->second.GetValue());
-    if (util::IsSameGcThing(context_, referee, element)) {
-      // There may be multiple mappings between a specific owner and a JS
-      // object. Only remove the first mapping.
-      referenced_objects_.erase(it);
-      return;
-    }
-  }
-  DLOG(WARNING) << "No reference to the specified object found.";
-}
-
-void ReferencedObjectMap::TraceReferencedObjects(JSTracer* trace,
-                                                 intptr_t key) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  std::pair<ReferencedObjectMultiMap::iterator,
-            ReferencedObjectMultiMap::iterator> pair_range =
-      referenced_objects_.equal_range(key);
-  for (ReferencedObjectMultiMap::iterator it = pair_range.first;
-       it != pair_range.second; ++it) {
-    it->second.Trace(trace);
-  }
-}
-
-void ReferencedObjectMap::RemoveNullReferences() {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  for (ReferencedObjectMultiMap::iterator it = referenced_objects_.begin();
-       it != referenced_objects_.end();
-       /*Incremented in the loop */) {
-    if (it->second.WasCollected()) {
-      ReferencedObjectMultiMap::iterator erase_iterator = it++;
-      referenced_objects_.erase(erase_iterator);
-    } else {
-      DCHECK(it->second.IsGcThing());
-      ++it;
-    }
-  }
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/referenced_object_map.h b/src/cobalt/script/mozjs/referenced_object_map.h
deleted file mode 100644
index 51450f4..0000000
--- a/src/cobalt/script/mozjs/referenced_object_map.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_REFERENCED_OBJECT_MAP_H_
-#define COBALT_SCRIPT_MOZJS_REFERENCED_OBJECT_MAP_H_
-
-#include "base/hash_tables.h"
-#include "base/threading/thread_checker.h"
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "cobalt/script/wrappable.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Maintains a set of JSObjects that are reachable from a given object. This
-// relationship is registered by mapping a key to a JSObject. The calling code
-// should ensure that a key uniquely identifies the entity that holds a
-// reference to the JSObjects.
-// During garbage collection, supply a key to TraceReferencedObjects to trace
-// all objects that are registered as being reachable from the object
-// represented by that key.
-class ReferencedObjectMap {
- public:
-  explicit ReferencedObjectMap(JSContext* context);
-
-  // Reinterpret the pointer as an integer to be used as a key for tracking
-  // referenced objects.
-  static intptr_t GetKeyForWrappable(const Wrappable* wrappable) {
-    return reinterpret_cast<intptr_t>(wrappable);
-  }
-
-  void AddReferencedObject(intptr_t key, JS::HandleValue referee);
-  void RemoveReferencedObject(intptr_t key, JS::HandleValue referee);
-
-  // Trace all objects referenced from this WrapperPrivate*.
-  void TraceReferencedObjects(JSTracer* trace, intptr_t key);
-
-  // Remove any referenced objects that are NULL. It may be the case that a
-  // weak reference to an object was garbage collected, so remove it from the
-  // internal list.
-  void RemoveNullReferences();
-
- private:
-  typedef base::hash_multimap<intptr_t, WeakHeapObject>
-      ReferencedObjectMultiMap;
-
-  base::ThreadChecker thread_checker_;
-  JSContext* context_;
-  ReferencedObjectMultiMap referenced_objects_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_REFERENCED_OBJECT_MAP_H_
diff --git a/src/cobalt/script/mozjs/type_traits.h b/src/cobalt/script/mozjs/type_traits.h
deleted file mode 100644
index d83b8b7..0000000
--- a/src/cobalt/script/mozjs/type_traits.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_TYPE_TRAITS_H_
-#define COBALT_SCRIPT_MOZJS_TYPE_TRAITS_H_
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-template <typename T>
-struct TypeTraits {
-  // The type to convert into from a JS Value in the bindings implementation.
-  typedef T ConversionType;
-  // Type type returned from a Cobalt implementation of a bound function.
-  typedef T ReturnType;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_TYPE_TRAITS_H_
diff --git a/src/cobalt/script/mozjs/union_type_conversion_forward.h b/src/cobalt/script/mozjs/union_type_conversion_forward.h
deleted file mode 100644
index 4755120..0000000
--- a/src/cobalt/script/mozjs/union_type_conversion_forward.h
+++ /dev/null
@@ -1,67 +0,0 @@
-// This file was GENERATED by command:
-//     pump.py union_type_conversion_forward.h.pump
-// DO NOT EDIT BY HAND!!!
-
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_FORWARD_H_
-#define COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_FORWARD_H_
-
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/union_type.h"
-
-// Forward declaration for ToJSValue and FromJSValue for IDL union types.
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-template <typename T1, typename T2>
-void ToJSValue(JSContext* context, const script::UnionType2<T1, T2>& in_union,
-               JS::MutableHandleValue out_value);
-
-template <typename T1, typename T2>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 script::UnionType2<T1, T2>* out_union);
-
-template <typename T1, typename T2, typename T3>
-void ToJSValue(JSContext* context,
-               const script::UnionType3<T1, T2, T3>& in_union,
-               JS::MutableHandleValue out_value);
-
-template <typename T1, typename T2, typename T3>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 script::UnionType3<T1, T2, T3>* out_union);
-
-template <typename T1, typename T2, typename T3, typename T4>
-void ToJSValue(JSContext* context,
-               const script::UnionType4<T1, T2, T3, T4>& in_union,
-               JS::MutableHandleValue out_value);
-
-template <typename T1, typename T2, typename T3, typename T4>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 script::UnionType4<T1, T2, T3, T4>* out_union);
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_FORWARD_H_
diff --git a/src/cobalt/script/mozjs/union_type_conversion_forward.h.pump b/src/cobalt/script/mozjs/union_type_conversion_forward.h.pump
deleted file mode 100644
index 1837665..0000000
--- a/src/cobalt/script/mozjs/union_type_conversion_forward.h.pump
+++ /dev/null
@@ -1,57 +0,0 @@
-$$ This is a pump file for generating file templates.  Pump is a python
-$$ script that is part of the Google Test suite of utilities.  Description
-$$ can be found here:
-$$
-$$ http://code.google.com/p/googletest/wiki/PumpManual
-$$
-
-$$ Maximum number of different member types in a union.
-$var MAX_MEMBERS = 4
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_FORWARD_H_
-#define COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_FORWARD_H_
-
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/union_type.h"
-
-// Forward declaration for ToJSValue and FromJSValue for IDL union types.
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-$range NUM_MEMBERS 2..MAX_MEMBERS
-$for NUM_MEMBERS [[
-$range TYPE 1..NUM_MEMBERS
-
-template <$for TYPE , [[typename T$(TYPE)]]>
-void ToJSValue(JSContext* context, const script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>& in_union, JS::MutableHandleValue out_value);
-
-template <$for TYPE , [[typename T$(TYPE)]]>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>* out_union);
-
-]]  $$ for NUM_MEMBERS
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_FORWARD_H_
diff --git a/src/cobalt/script/mozjs/union_type_conversion_impl.h b/src/cobalt/script/mozjs/union_type_conversion_impl.h
deleted file mode 100644
index 252b711..0000000
--- a/src/cobalt/script/mozjs/union_type_conversion_impl.h
+++ /dev/null
@@ -1,757 +0,0 @@
-// This file was GENERATED by command:
-//     pump.py union_type_conversion_impl.h.pump
-// DO NOT EDIT BY HAND!!!
-
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_IMPL_H_
-#define COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_IMPL_H_
-
-#include "cobalt/base/type_id.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/union_type.h"
-
-// Conversion to/from JS::Value for IDL union types.
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-template <typename T1, typename T2>
-void ToJSValue(
-    JSContext* context,
-    const script::UnionType2<T1, T2>& in_union,
-    JS::MutableHandleValue out_value) {
-  if (in_union.template IsType<T1>()) {
-    ToJSValue(context, in_union.template AsType<T1>(), out_value);
-    return;
-  }
-  if (in_union.template IsType<T2>()) {
-    ToJSValue(context, in_union.template AsType<T2>(), out_value);
-    return;
-  }
-  NOTREACHED();
-  out_value.setUndefined();
-}
-
-template <typename T1, typename T2>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 script::UnionType2<T1, T2>* out_union) {
-  DCHECK_EQ(0, conversion_flags);
-  // JS -> IDL type conversion procedure described here:
-  // http://heycam.github.io/webidl/#es-union
-
-  // TODO: Support Date, RegExp, DOMException, Error, ArrayBuffer, DataView,
-  //       TypedArrayName, callback functions, dictionary.
-
-  // 1. If the union type includes a nullable type and |V| is null or undefined,
-  // then return the IDL value null.
-  if (value.isNull() || value.isUndefined()) {
-    // Since the nullability should have been detected by the conversion for
-    // base::optional, we should throw, because if we get here it means the
-    // union does not include a nullable type, but have been passed a null
-    // value.
-    exception_state->SetSimpleException(kNotUnionType);
-    return;
-  }
-
-  // Typedef for readability.
-  typedef ::cobalt::script::internal::UnionTypeTraits<T1> UnionTypeTraitsT1;
-  typedef ::cobalt::script::internal::UnionTypeTraits<T2> UnionTypeTraitsT2;
-
-  // 2. Let |types| be the flattened member types of the union type.
-  // Forward declare all potential types
-  T1 t1;
-  T2 t2;
-
-  // 4. If |V| is a platform object, then:
-  //   1. If |types| includes an interface type that V implements, then return
-  //      the IDL value that is a reference to the object |V|.
-  //   2. If |types| includes object, then return the IDL value that is a
-  //      reference to the object |V|.
-  if (value.isObject()) {
-    // The specification doesn't dictate what should happen if V implements
-    // more than one of the interfaces. For example, if V implements interface
-    // B and interface B inherits from interface A, what happens if both A and
-    // B are union members? Blink doesn't seem to do anything special for this
-    // case. Just choose the first interface in the flattened members that
-    // matches.
-
-    JS::RootedObject rooted_object(context);
-    bool success = JS_ValueToObject(context, value, rooted_object.address());
-    DCHECK(success);
-
-    MozjsGlobalEnvironment* global_environment =
-        static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-    const WrapperFactory* wrapper_factory =
-        global_environment->wrapper_factory();
-
-    if (UnionTypeTraitsT1::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT1::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType2<T1, T2>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT2::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType2<T1, T2>(t2);
-      return;
-    }
-  }
-
-  // 11. If |Type(V)| is Object, then:
-  //   1. If |types| includes a sequence type, then
-  //     1. Let |method| be the result of GetMethod(V, @@iterator)
-  //     2. ReturnIfAbrupt(method)
-  //     3. If method is not undefined, return the result of creating a sequence
-  //        of that type from |V| and |method|.
-  if (value.isObject()) {
-    if (UnionTypeTraitsT1::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType2<T1, T2>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType2<T1, T2>(t2);
-      return;
-    }
-  }
-
-  // 12. If |Type(V)| is Boolean, then:
-  // 1. If |types| includes a boolean, then return the result of converting |V|
-  //      to boolean.
-  if (value.isBoolean()) {
-    if (UnionTypeTraitsT1::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType2<T1, T2>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType2<T1, T2>(t2);
-      return;
-    }
-  }
-
-  // 13. If |Type(V)| is a Number, then:
-  //   1. If |types| includes a numeric type, then return the result of
-  //      converting |V| to that numeric type.
-  if (value.isNumber()) {
-    if (UnionTypeTraitsT1::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType2<T1, T2>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType2<T1, T2>(t2);
-      return;
-    }
-  }
-
-  // 14. If |types| includes a string type, then return the result of converting
-  //     |V| to that type.
-  if (value.isString()) {
-    if (UnionTypeTraitsT1::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType2<T1, T2>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType2<T1, T2>(t2);
-      return;
-    }
-  }
-
-  // 15. If |types| includes a numeric type, then return the result of
-  //     converting |V| to that numeric type.
-  if (UnionTypeTraitsT1::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t1);
-    *out_union = script::UnionType2<T1, T2>(t1);
-    return;
-  }
-
-  if (UnionTypeTraitsT2::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t2);
-    *out_union = script::UnionType2<T1, T2>(t2);
-    return;
-  }
-
-  // 16. If |types| includes a boolean, then return the result of converting |V|
-  //     to boolean.
-  if (UnionTypeTraitsT1::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t1);
-    *out_union = script::UnionType2<T1, T2>(t1);
-    return;
-  }
-
-  if (UnionTypeTraitsT2::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t2);
-    *out_union = script::UnionType2<T1, T2>(t2);
-    return;
-  }
-
-  // 17. Throw a TypeError.
-  exception_state->SetSimpleException(kNotUnionType);
-}
-
-template <typename T1, typename T2, typename T3>
-void ToJSValue(
-    JSContext* context,
-    const script::UnionType3<T1, T2, T3>& in_union,
-    JS::MutableHandleValue out_value) {
-  if (in_union.template IsType<T1>()) {
-    ToJSValue(context, in_union.template AsType<T1>(), out_value);
-    return;
-  }
-  if (in_union.template IsType<T2>()) {
-    ToJSValue(context, in_union.template AsType<T2>(), out_value);
-    return;
-  }
-  if (in_union.template IsType<T3>()) {
-    ToJSValue(context, in_union.template AsType<T3>(), out_value);
-    return;
-  }
-  NOTREACHED();
-  out_value.setUndefined();
-}
-
-template <typename T1, typename T2, typename T3>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 script::UnionType3<T1, T2, T3>* out_union) {
-  DCHECK_EQ(0, conversion_flags);
-  // JS -> IDL type conversion procedure described here:
-  // http://heycam.github.io/webidl/#es-union
-
-  // TODO: Support Date, RegExp, DOMException, Error, ArrayBuffer, DataView,
-  //       TypedArrayName, callback functions, dictionary.
-
-  // 1. If the union type includes a nullable type and |V| is null or undefined,
-  // then return the IDL value null.
-  if (value.isNull() || value.isUndefined()) {
-    // Since the nullability should have been detected by the conversion for
-    // base::optional, we should throw, because if we get here it means the
-    // union does not include a nullable type, but have been passed a null
-    // value.
-    exception_state->SetSimpleException(kNotUnionType);
-    return;
-  }
-
-  // Typedef for readability.
-  typedef ::cobalt::script::internal::UnionTypeTraits<T1> UnionTypeTraitsT1;
-  typedef ::cobalt::script::internal::UnionTypeTraits<T2> UnionTypeTraitsT2;
-  typedef ::cobalt::script::internal::UnionTypeTraits<T3> UnionTypeTraitsT3;
-
-  // 2. Let |types| be the flattened member types of the union type.
-  // Forward declare all potential types
-  T1 t1;
-  T2 t2;
-  T3 t3;
-
-  // 4. If |V| is a platform object, then:
-  //   1. If |types| includes an interface type that V implements, then return
-  //      the IDL value that is a reference to the object |V|.
-  //   2. If |types| includes object, then return the IDL value that is a
-  //      reference to the object |V|.
-  if (value.isObject()) {
-    // The specification doesn't dictate what should happen if V implements
-    // more than one of the interfaces. For example, if V implements interface
-    // B and interface B inherits from interface A, what happens if both A and
-    // B are union members? Blink doesn't seem to do anything special for this
-    // case. Just choose the first interface in the flattened members that
-    // matches.
-
-    JS::RootedObject rooted_object(context);
-    bool success = JS_ValueToObject(context, value, rooted_object.address());
-    DCHECK(success);
-
-    MozjsGlobalEnvironment* global_environment =
-        static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-    const WrapperFactory* wrapper_factory =
-        global_environment->wrapper_factory();
-
-    if (UnionTypeTraitsT1::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT1::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType3<T1, T2, T3>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT2::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType3<T1, T2, T3>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT3::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType3<T1, T2, T3>(t3);
-      return;
-    }
-  }
-
-  // 11. If |Type(V)| is Object, then:
-  //   1. If |types| includes a sequence type, then
-  //     1. Let |method| be the result of GetMethod(V, @@iterator)
-  //     2. ReturnIfAbrupt(method)
-  //     3. If method is not undefined, return the result of creating a sequence
-  //        of that type from |V| and |method|.
-  if (value.isObject()) {
-    if (UnionTypeTraitsT1::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType3<T1, T2, T3>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType3<T1, T2, T3>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType3<T1, T2, T3>(t3);
-      return;
-    }
-  }
-
-  // 12. If |Type(V)| is Boolean, then:
-  // 1. If |types| includes a boolean, then return the result of converting |V|
-  //      to boolean.
-  if (value.isBoolean()) {
-    if (UnionTypeTraitsT1::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType3<T1, T2, T3>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType3<T1, T2, T3>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType3<T1, T2, T3>(t3);
-      return;
-    }
-  }
-
-  // 13. If |Type(V)| is a Number, then:
-  //   1. If |types| includes a numeric type, then return the result of
-  //      converting |V| to that numeric type.
-  if (value.isNumber()) {
-    if (UnionTypeTraitsT1::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType3<T1, T2, T3>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType3<T1, T2, T3>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType3<T1, T2, T3>(t3);
-      return;
-    }
-  }
-
-  // 14. If |types| includes a string type, then return the result of converting
-  //     |V| to that type.
-  if (value.isString()) {
-    if (UnionTypeTraitsT1::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType3<T1, T2, T3>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType3<T1, T2, T3>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType3<T1, T2, T3>(t3);
-      return;
-    }
-  }
-
-  // 15. If |types| includes a numeric type, then return the result of
-  //     converting |V| to that numeric type.
-  if (UnionTypeTraitsT1::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t1);
-    *out_union = script::UnionType3<T1, T2, T3>(t1);
-    return;
-  }
-
-  if (UnionTypeTraitsT2::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t2);
-    *out_union = script::UnionType3<T1, T2, T3>(t2);
-    return;
-  }
-
-  if (UnionTypeTraitsT3::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t3);
-    *out_union = script::UnionType3<T1, T2, T3>(t3);
-    return;
-  }
-
-  // 16. If |types| includes a boolean, then return the result of converting |V|
-  //     to boolean.
-  if (UnionTypeTraitsT1::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t1);
-    *out_union = script::UnionType3<T1, T2, T3>(t1);
-    return;
-  }
-
-  if (UnionTypeTraitsT2::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t2);
-    *out_union = script::UnionType3<T1, T2, T3>(t2);
-    return;
-  }
-
-  if (UnionTypeTraitsT3::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t3);
-    *out_union = script::UnionType3<T1, T2, T3>(t3);
-    return;
-  }
-
-  // 17. Throw a TypeError.
-  exception_state->SetSimpleException(kNotUnionType);
-}
-
-template <typename T1, typename T2, typename T3, typename T4>
-void ToJSValue(
-    JSContext* context,
-    const script::UnionType4<T1, T2, T3, T4>& in_union,
-    JS::MutableHandleValue out_value) {
-  if (in_union.template IsType<T1>()) {
-    ToJSValue(context, in_union.template AsType<T1>(), out_value);
-    return;
-  }
-  if (in_union.template IsType<T2>()) {
-    ToJSValue(context, in_union.template AsType<T2>(), out_value);
-    return;
-  }
-  if (in_union.template IsType<T3>()) {
-    ToJSValue(context, in_union.template AsType<T3>(), out_value);
-    return;
-  }
-  if (in_union.template IsType<T4>()) {
-    ToJSValue(context, in_union.template AsType<T4>(), out_value);
-    return;
-  }
-  NOTREACHED();
-  out_value.setUndefined();
-}
-
-template <typename T1, typename T2, typename T3, typename T4>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 script::UnionType4<T1, T2, T3, T4>* out_union) {
-  DCHECK_EQ(0, conversion_flags);
-  // JS -> IDL type conversion procedure described here:
-  // http://heycam.github.io/webidl/#es-union
-
-  // TODO: Support Date, RegExp, DOMException, Error, ArrayBuffer, DataView,
-  //       TypedArrayName, callback functions, dictionary.
-
-  // 1. If the union type includes a nullable type and |V| is null or undefined,
-  // then return the IDL value null.
-  if (value.isNull() || value.isUndefined()) {
-    // Since the nullability should have been detected by the conversion for
-    // base::optional, we should throw, because if we get here it means the
-    // union does not include a nullable type, but have been passed a null
-    // value.
-    exception_state->SetSimpleException(kNotUnionType);
-    return;
-  }
-
-  // Typedef for readability.
-  typedef ::cobalt::script::internal::UnionTypeTraits<T1> UnionTypeTraitsT1;
-  typedef ::cobalt::script::internal::UnionTypeTraits<T2> UnionTypeTraitsT2;
-  typedef ::cobalt::script::internal::UnionTypeTraits<T3> UnionTypeTraitsT3;
-  typedef ::cobalt::script::internal::UnionTypeTraits<T4> UnionTypeTraitsT4;
-
-  // 2. Let |types| be the flattened member types of the union type.
-  // Forward declare all potential types
-  T1 t1;
-  T2 t2;
-  T3 t3;
-  T4 t4;
-
-  // 4. If |V| is a platform object, then:
-  //   1. If |types| includes an interface type that V implements, then return
-  //      the IDL value that is a reference to the object |V|.
-  //   2. If |types| includes object, then return the IDL value that is a
-  //      reference to the object |V|.
-  if (value.isObject()) {
-    // The specification doesn't dictate what should happen if V implements
-    // more than one of the interfaces. For example, if V implements interface
-    // B and interface B inherits from interface A, what happens if both A and
-    // B are union members? Blink doesn't seem to do anything special for this
-    // case. Just choose the first interface in the flattened members that
-    // matches.
-
-    JS::RootedObject rooted_object(context);
-    bool success = JS_ValueToObject(context, value, rooted_object.address());
-    DCHECK(success);
-
-    MozjsGlobalEnvironment* global_environment =
-        static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-    const WrapperFactory* wrapper_factory =
-        global_environment->wrapper_factory();
-
-    if (UnionTypeTraitsT1::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT1::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT2::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT3::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t3);
-      return;
-    }
-
-    if (UnionTypeTraitsT4::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT4::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t4);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t4);
-      return;
-    }
-  }
-
-  // 11. If |Type(V)| is Object, then:
-  //   1. If |types| includes a sequence type, then
-  //     1. Let |method| be the result of GetMethod(V, @@iterator)
-  //     2. ReturnIfAbrupt(method)
-  //     3. If method is not undefined, return the result of creating a sequence
-  //        of that type from |V| and |method|.
-  if (value.isObject()) {
-    if (UnionTypeTraitsT1::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t3);
-      return;
-    }
-
-    if (UnionTypeTraitsT4::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t4);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t4);
-      return;
-    }
-  }
-
-  // 12. If |Type(V)| is Boolean, then:
-  // 1. If |types| includes a boolean, then return the result of converting |V|
-  //      to boolean.
-  if (value.isBoolean()) {
-    if (UnionTypeTraitsT1::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t3);
-      return;
-    }
-
-    if (UnionTypeTraitsT4::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t4);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t4);
-      return;
-    }
-  }
-
-  // 13. If |Type(V)| is a Number, then:
-  //   1. If |types| includes a numeric type, then return the result of
-  //      converting |V| to that numeric type.
-  if (value.isNumber()) {
-    if (UnionTypeTraitsT1::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t3);
-      return;
-    }
-
-    if (UnionTypeTraitsT4::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t4);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t4);
-      return;
-    }
-  }
-
-  // 14. If |types| includes a string type, then return the result of converting
-  //     |V| to that type.
-  if (value.isString()) {
-    if (UnionTypeTraitsT1::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t1);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t1);
-      return;
-    }
-
-    if (UnionTypeTraitsT2::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t2);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t2);
-      return;
-    }
-
-    if (UnionTypeTraitsT3::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t3);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t3);
-      return;
-    }
-
-    if (UnionTypeTraitsT4::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t4);
-      *out_union = script::UnionType4<T1, T2, T3, T4>(t4);
-      return;
-    }
-  }
-
-  // 15. If |types| includes a numeric type, then return the result of
-  //     converting |V| to that numeric type.
-  if (UnionTypeTraitsT1::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t1);
-    *out_union = script::UnionType4<T1, T2, T3, T4>(t1);
-    return;
-  }
-
-  if (UnionTypeTraitsT2::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t2);
-    *out_union = script::UnionType4<T1, T2, T3, T4>(t2);
-    return;
-  }
-
-  if (UnionTypeTraitsT3::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t3);
-    *out_union = script::UnionType4<T1, T2, T3, T4>(t3);
-    return;
-  }
-
-  if (UnionTypeTraitsT4::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t4);
-    *out_union = script::UnionType4<T1, T2, T3, T4>(t4);
-    return;
-  }
-
-  // 16. If |types| includes a boolean, then return the result of converting |V|
-  //     to boolean.
-  if (UnionTypeTraitsT1::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t1);
-    *out_union = script::UnionType4<T1, T2, T3, T4>(t1);
-    return;
-  }
-
-  if (UnionTypeTraitsT2::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t2);
-    *out_union = script::UnionType4<T1, T2, T3, T4>(t2);
-    return;
-  }
-
-  if (UnionTypeTraitsT3::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t3);
-    *out_union = script::UnionType4<T1, T2, T3, T4>(t3);
-    return;
-  }
-
-  if (UnionTypeTraitsT4::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t4);
-    *out_union = script::UnionType4<T1, T2, T3, T4>(t4);
-    return;
-  }
-
-  // 17. Throw a TypeError.
-  exception_state->SetSimpleException(kNotUnionType);
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_IMPL_H_
diff --git a/src/cobalt/script/mozjs/union_type_conversion_impl.h.pump b/src/cobalt/script/mozjs/union_type_conversion_impl.h.pump
deleted file mode 100644
index 731a746..0000000
--- a/src/cobalt/script/mozjs/union_type_conversion_impl.h.pump
+++ /dev/null
@@ -1,231 +0,0 @@
-$$ This is a pump file for generating file templates.  Pump is a python
-$$ script that is part of the Google Test suite of utilities.  Description
-$$ can be found here:
-$$
-$$ http://code.google.com/p/googletest/wiki/PumpManual
-$$
-
-$$ Maximum number of different member types in a union.
-$var MAX_MEMBERS = 4
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_IMPL_H_
-#define COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_IMPL_H_
-
-#include "cobalt/base/type_id.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/mozjs_object_handle.h"
-#include "cobalt/script/mozjs/mozjs_user_object_holder.h"
-#include "cobalt/script/mozjs/type_traits.h"
-#include "cobalt/script/union_type.h"
-
-// Conversion to/from JS::Value for IDL union types.
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-$range NUM_MEMBERS 2..MAX_MEMBERS
-$for NUM_MEMBERS [[
-
-$range TYPE 1..NUM_MEMBERS
-
-template <$for TYPE , [[typename T$(TYPE)]]>
-void ToJSValue(
-    JSContext* context,
-    const script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>& in_union,
-    JS::MutableHandleValue out_value) {
-$for TYPE [[
-
-  if (in_union.template IsType<T$(TYPE)>()) {
-    ToJSValue(context, in_union.template AsType<T$(TYPE)>(), out_value);
-    return;
-  }
-]]
-
-  NOTREACHED();
-  out_value.setUndefined();
-}
-
-template <$for TYPE , [[typename T$(TYPE)]]>
-void FromJSValue(JSContext* context, JS::HandleValue value,
-                 int conversion_flags, ExceptionState* exception_state,
-                 script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>* out_union) {
-  DCHECK_EQ(0, conversion_flags);
-  // JS -> IDL type conversion procedure described here:
-  // http://heycam.github.io/webidl/#es-union
-
-  // TODO: Support Date, RegExp, DOMException, Error, ArrayBuffer, DataView,
-  //       TypedArrayName, callback functions, dictionary.
-
-  // 1. If the union type includes a nullable type and |V| is null or undefined,
-  // then return the IDL value null.
-  if (value.isNull() || value.isUndefined()) {
-    // Since the nullability should have been detected by the conversion for
-    // base::optional, we should throw, because if we get here it means the
-    // union does not include a nullable type, but have been passed a null
-    // value.
-    exception_state->SetSimpleException(kNotUnionType);
-    return;
-  }
-
-  // Typedef for readability.
-
-$for TYPE [[
-  typedef ::cobalt::script::internal::UnionTypeTraits<T$(TYPE)> UnionTypeTraitsT$(TYPE);
-
-]]
-
-  // 2. Let |types| be the flattened member types of the union type.
-  // Forward declare all potential types
-
-$for TYPE [[
-  T$(TYPE) t$(TYPE);
-
-]]
-
-  // 4. If |V| is a platform object, then:
-  //   1. If |types| includes an interface type that V implements, then return
-  //      the IDL value that is a reference to the object |V|.
-  //   2. If |types| includes object, then return the IDL value that is a
-  //      reference to the object |V|.
-  if (value.isObject()) {
-    // The specification doesn't dictate what should happen if V implements
-    // more than one of the interfaces. For example, if V implements interface
-    // B and interface B inherits from interface A, what happens if both A and
-    // B are union members? Blink doesn't seem to do anything special for this
-    // case. Just choose the first interface in the flattened members that
-    // matches.
-
-    JS::RootedObject rooted_object(context);
-    bool success = JS_ValueToObject(context, value, rooted_object.address());
-    DCHECK(success);
-
-    MozjsGlobalEnvironment* global_environment =
-        static_cast<MozjsGlobalEnvironment*>(JS_GetContextPrivate(context));
-    const WrapperFactory* wrapper_factory =
-        global_environment->wrapper_factory();
-
-$for TYPE [[
-
-    if (UnionTypeTraitsT$(TYPE)::is_interface_type &&
-        wrapper_factory->DoesObjectImplementInterface(
-            rooted_object, UnionTypeTraitsT$(TYPE)::GetTypeID())) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t$(TYPE));
-      *out_union = script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>(t$(TYPE));
-      return;
-    }
-
-]]
-  }
-
-  // 11. If |Type(V)| is Object, then:
-  //   1. If |types| includes a sequence type, then
-  //     1. Let |method| be the result of GetMethod(V, @@iterator)
-  //     2. ReturnIfAbrupt(method)
-  //     3. If method is not undefined, return the result of creating a sequence
-  //        of that type from |V| and |method|.
-  if (value.isObject()) {
-$for TYPE [[
-
-    if (UnionTypeTraitsT$(TYPE)::is_sequence_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t$(TYPE));
-      *out_union = script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>(t$(TYPE));
-      return;
-    }
-
-]]
-  }
-
-  // 12. If |Type(V)| is Boolean, then:
-  //   1. If |types| includes a boolean, then return the result of converting |V|
-  //      to boolean.
-  if (value.isBoolean()) {
-$for TYPE [[
-
-    if (UnionTypeTraitsT$(TYPE)::is_boolean_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t$(TYPE));
-      *out_union = script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>(t$(TYPE));
-      return;
-    }
-
-]]
-  }
-
-  // 13. If |Type(V)| is a Number, then:
-  //   1. If |types| includes a numeric type, then return the result of
-  //      converting |V| to that numeric type.
-  if (value.isNumber()) {
-$for TYPE [[
-
-    if (UnionTypeTraitsT$(TYPE)::is_numeric_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t$(TYPE));
-      *out_union = script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>(t$(TYPE));
-      return;
-    }
-
-]]
-  }
-
-  // 14. If |types| includes a string type, then return the result of converting
-  //     |V| to that type.
-  if (value.isString()) {
-$for TYPE [[
-
-    if (UnionTypeTraitsT$(TYPE)::is_string_type) {
-      FromJSValue(context, value, conversion_flags, exception_state, &t$(TYPE));
-      *out_union = script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>(t$(TYPE));
-      return;
-    }
-
-]]
-  }
-
-  // 15. If |types| includes a numeric type, then return the result of
-  //     converting |V| to that numeric type.
-$for TYPE [[
-
-  if (UnionTypeTraitsT$(TYPE)::is_numeric_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t$(TYPE));
-    *out_union = script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>(t$(TYPE));
-    return;
-  }
-
-]]
-
-  // 16. If |types| includes a boolean, then return the result of converting |V|
-  //     to boolean.
-$for TYPE [[
-
-  if (UnionTypeTraitsT$(TYPE)::is_boolean_type) {
-    FromJSValue(context, value, conversion_flags, exception_state, &t$(TYPE));
-    *out_union = script::UnionType$(NUM_MEMBERS)<$for TYPE , [[T$(TYPE)]]>(t$(TYPE));
-    return;
-  }
-
-]]
-
-  // 17. Throw a TypeError.
-  exception_state->SetSimpleException(kNotUnionType);
-}
-
-]]  $$ for NUM_MEMBERS
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_UNION_TYPE_CONVERSION_IMPL_H_
diff --git a/src/cobalt/script/mozjs/util/algorithm_helpers.cc b/src/cobalt/script/mozjs/util/algorithm_helpers.cc
deleted file mode 100644
index 5d08029..0000000
--- a/src/cobalt/script/mozjs/util/algorithm_helpers.cc
+++ /dev/null
@@ -1,166 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/util/algorithm_helpers.h"
-
-#include "base/logging.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsarray.h"
-#include "third_party/mozjs/js/src/jsiter.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace util {
-
-bool IsSameGcThing(JSContext* context, JS::HandleValue value1,
-                   JS::HandleValue value2) {
-  if (value1.isNullOrUndefined()) {
-    return value2.isNullOrUndefined();
-  }
-
-  if (!value1.isGCThing() || !value2.isGCThing()) {
-    return false;
-  }
-
-  return value1.toGCThing() == value2.toGCThing();
-}
-
-bool GetIterator(JSContext* context, JS::HandleObject object,
-                 JS::MutableHandleObject out_iterator) {
-  // Uses the jsiter API to get the iterator, as SM24 it doesn't seem to
-  // implement Array[@@iterator] yet.
-  JS::RootedValue iterator_value(context);
-  if (!js::GetIterator(context, object, JSITER_FOR_OF, &iterator_value)) {
-    return false;
-  }
-
-  JS::RootedObject iterator_object(context);
-  if (!iterator_value.isObject() ||
-      !JS_ValueToObject(context, iterator_value, iterator_object.address())) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(kNotObjectType);
-    return false;
-  }
-
-  out_iterator.set(iterator_object);
-  return true;
-}
-
-bool IteratorNext(JSContext* context, JS::HandleObject iterator,
-                  JS::MutableHandleObject out_iterator_result) {
-  // IMPORTANT NOTE! If there is More, we cannot enter another script without
-  // calling Next to clear the result, or the interpreter will assert.
-  JS::RootedValue more(context);
-  if (!js_IteratorMore(context, iterator, &more)) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(kNotIterableType);
-    return false;
-  }
-
-  JS::RootedObject result(context, JS_NewObject(context, NULL, NULL, NULL));
-  JS::RootedValue done(context);
-  done.setBoolean(!JS::ToBoolean(more));
-  JS_SetProperty(context, result, "done", done.address());
-
-  if (JS::ToBoolean(done)) {
-    out_iterator_result.set(result);
-    return true;
-  }
-
-  JS::RootedValue value(context);
-  if (!js_IteratorNext(context, iterator, &value)) {
-    MozjsExceptionState exception(context);
-    exception.SetSimpleException(kNotIterableType);
-    return false;
-  }
-
-  JS_SetProperty(context, result, "value", value.address());
-
-  out_iterator_result.set(result);
-  return true;
-}
-
-bool IteratorComplete(JSContext* context, JS::HandleObject iterator_result) {
-  JS::RootedValue done(context);
-  if (!JS_GetProperty(context, iterator_result, "done", done.address())) {
-    return false;
-  }
-
-  return JS::ToBoolean(done);
-}
-
-bool IteratorValue(JSContext* context, JS::HandleObject iterator_result,
-                   JS::MutableHandleValue out_result) {
-  JS::RootedValue value(context);
-  if (!JS_GetProperty(context, iterator_result, "value", value.address())) {
-    return false;
-  }
-
-  out_result.set(value);
-  return true;
-}
-
-bool IteratorStep(JSContext* context, JS::HandleObject iterator,
-                  JS::MutableHandleObject out_iterator_result) {
-  JS::RootedObject result(context);
-  if (!IteratorNext(context, iterator, &result)) {
-    return false;
-  }
-
-  if (IteratorComplete(context, result)) {
-    return false;
-  }
-  out_iterator_result.set(result);
-  return true;
-}
-
-bool IteratorClose(JSContext* context, JS::HandleObject iterator) {
-  return js::CloseIterator(context, iterator);
-}
-
-bool Call0(JSContext* context, JS::HandleFunction function,
-           JS::HandleObject value, JS::MutableHandleValue out_result) {
-  const size_t kNumArguments = 0;
-  JS::Value *args = NULL;
-  js::SetValueRangeToNull(args, kNumArguments);
-  js::AutoValueArray auto_array_rooter(context, args, kNumArguments);
-
-  return JS::Call(context, value, function, kNumArguments, args,
-                  out_result.address());
-}
-
-bool Invoke0(JSContext* context, JS::HandleObject value,
-             const char* property_name, JS::MutableHandleValue out_result) {
-  JS::RootedValue property(context);
-  if (!JS_GetProperty(context, value, property_name, property.address())) {
-    return false;
-  }
-
-  if (!property.isObject() ||
-      !JS_ObjectIsCallable(context, JSVAL_TO_OBJECT(property))) {
-    return false;
-  }
-
-  JS::RootedFunction function(context, JS_ValueToFunction(context, property));
-  DCHECK(function);
-
-  return util::Call0(context, function, value, out_result);
-}
-
-}  // namespace util
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/util/algorithm_helpers.h b/src/cobalt/script/mozjs/util/algorithm_helpers.h
deleted file mode 100644
index 6845cc1..0000000
--- a/src/cobalt/script/mozjs/util/algorithm_helpers.h
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_UTIL_ALGORITHM_HELPERS_H_
-#define COBALT_SCRIPT_MOZJS_UTIL_ALGORITHM_HELPERS_H_
-
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace util {
-// Whether |value1| and |value2| are both GC things and are the same GC thing.
-// i.e. Returns |false| if either value is not a GC thing.
-bool IsSameGcThing(JSContext* context, JS::HandleValue value1,
-                   JS::HandleValue value2);
-
-// https://tc39.github.io/ecma262/#sec-getiterator
-bool GetIterator(JSContext* context, JS::HandleObject object,
-                 JS::MutableHandleObject out_iterator);
-
-// https://tc39.github.io/ecma262/#sec-iteratornext
-bool IteratorNext(JSContext* context, JS::HandleObject iterator,
-                  JS::MutableHandleObject out_iterator_result);
-
-// https://tc39.github.io/ecma262/#sec-iteratorcomplete
-bool IteratorComplete(JSContext* context, JS::HandleObject iterator_result);
-
-// https://tc39.github.io/ecma262/#sec-iteratorvalue
-bool IteratorValue(JSContext* context, JS::HandleObject iterator_result,
-                   JS::MutableHandleValue out_result);
-
-// https://tc39.github.io/ecma262/#sec-iteratorstep
-//
-// TODO: out_iterator_result should probably be a Value so it can return false
-// or the next iterator record. Right now this and IteratorComplete are the only
-// functions where a false return value doesn't necessarily mean an error.
-bool IteratorStep(JSContext* context, JS::HandleObject iterator,
-                  JS::MutableHandleObject out_iterator_result);
-
-// https://tc39.github.io/ecma262/#sec-iteratorclose
-bool IteratorClose(JSContext* context, JS::HandleObject iterator);
-
-// https://tc39.github.io/ecma262/#sec-call
-// Call |function| on object |value| with 0 arguments.
-bool Call0(JSContext* context, JS::HandleFunction function,
-           JS::HandleObject value, JS::MutableHandleValue out_result);
-
-// https://tc39.github.io/ecma262/#sec-invoke
-// Invoke a method named |property_name| on object |value| with 0 arguments.
-bool Invoke0(JSContext* context, JS::HandleObject value,
-             const char* property_name, JS::MutableHandleValue out_result);
-}  // namespace util
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-#endif  // COBALT_SCRIPT_MOZJS_UTIL_ALGORITHM_HELPERS_H_
diff --git a/src/cobalt/script/mozjs/util/exception_helpers.cc b/src/cobalt/script/mozjs/util/exception_helpers.cc
deleted file mode 100644
index 7ffdbd4..0000000
--- a/src/cobalt/script/mozjs/util/exception_helpers.cc
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/util/exception_helpers.h"
-
-#include <algorithm>
-
-#include "cobalt/script/mozjs/conversion_helpers.h"
-#include "cobalt/script/mozjs/mozjs_exception_state.h"
-#include "third_party/mozjs/js/public/RootingAPI.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsdbgapi.h"
-#include "third_party/mozjs/js/src/jsscript.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace util {
-
-std::string GetExceptionString(JSContext* context) {
-  if (!JS_IsExceptionPending(context)) {
-    return std::string("No exception pending.");
-  }
-  JS::RootedValue exception(context);
-  JS_GetPendingException(context, exception.address());
-  JS_ReportPendingException(context);
-  return GetExceptionString(context, exception);
-}
-
-std::string GetExceptionString(JSContext* context,
-                               JS::HandleValue exception) {
-  std::string exception_string;
-  MozjsExceptionState exception_state(context);
-  FromJSValue(context, exception, kNoConversionFlags, &exception_state,
-              &exception_string);
-  return exception_string;
-}
-
-void GetStackTrace(JSContext* context, size_t max_frames,
-                   nb::RewindableVector<StackFrame>* output) {
-  DCHECK(output);
-  output->rewindAll();
-  JSAutoRequest auto_request(context);
-  JS::StackDescription* stack_description =
-      JS::DescribeStack(context, max_frames);
-  if (max_frames == 0) {
-    max_frames = static_cast<size_t>(stack_description->nframes);
-  } else {
-    max_frames =
-        std::min(max_frames, static_cast<size_t>(stack_description->nframes));
-  }
-  JS::FrameDescription* stack_trace = stack_description->frames;
-  for (size_t i = 0; i < max_frames; ++i) {
-    output->grow(1);
-    StackFrame& sf = output->back();
-
-    sf.line_number = stack_trace[i].lineno;
-    sf.column_number = stack_trace[i].columnno;
-    sf.function_name = "global code";
-    if (stack_trace[i].fun) {
-      JS::RootedString rooted_string(context,
-                                     JS_GetFunctionId(stack_trace[i].fun));
-      if (rooted_string) {
-        const jschar* jstring_raw = rooted_string->getChars(context);
-
-        if (!jstring_raw) {
-          sf.function_name = "";
-        } else {
-          // Note, this is a wide-string conversion.
-          sf.function_name.assign(jstring_raw,
-                                  jstring_raw + rooted_string->length());
-        }
-      } else {
-        // anonymous function
-        sf.function_name = "(anonymous function)";
-      }
-    }
-    if (stack_trace[i].script) {
-      sf.source_url = stack_trace[i].script->filename();
-    }
-  }
-  JS::FreeStackDescription(context, stack_description);
-}
-
-}  // namespace util
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/util/exception_helpers.h b/src/cobalt/script/mozjs/util/exception_helpers.h
deleted file mode 100644
index 32d317f..0000000
--- a/src/cobalt/script/mozjs/util/exception_helpers.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_UTIL_EXCEPTION_HELPERS_H_
-#define COBALT_SCRIPT_MOZJS_UTIL_EXCEPTION_HELPERS_H_
-
-#include <string>
-#include <vector>
-
-#include "cobalt/script/stack_frame.h"
-#include "nb/rewindable_vector.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace util {
-
-std::string GetExceptionString(JSContext* context);
-std::string GetExceptionString(JSContext* context, JS::HandleValue exception);
-
-// Retrieves the current stack frame. Values are stored in the output vector.
-// RewindableVector<> will be unconditionally rewound and after this call will
-// contain the number of frames retrieved. The output size will be less than
-// or equal to max_frames.
-void GetStackTrace(JSContext* context, size_t max_frames,
-                   nb::RewindableVector<StackFrame>* output);
-}  // namespace util
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-#endif  // COBALT_SCRIPT_MOZJS_UTIL_EXCEPTION_HELPERS_H_
diff --git a/src/cobalt/script/mozjs/util/stack_trace_helpers.cc b/src/cobalt/script/mozjs/util/stack_trace_helpers.cc
deleted file mode 100644
index 1c1fcf1..0000000
--- a/src/cobalt/script/mozjs/util/stack_trace_helpers.cc
+++ /dev/null
@@ -1,152 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/util/stack_trace_helpers.h"
-
-#include <algorithm>
-#include <sstream>
-#include <vector>
-
-#include "base/logging.h"
-#include "base/stringprintf.h"
-#include "cobalt/script/mozjs/util/exception_helpers.h"
-#include "cobalt/script/stack_frame.h"
-#include "nb/thread_local_object.h"
-#include "starboard/memory.h"
-#include "starboard/once.h"
-#include "starboard/string.h"
-#include "starboard/types.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace util {
-namespace {
-
-typedef nb::ThreadLocalObject<MozjsStackTraceGenerator>
-    ThreadLocalJsStackTracer;
-
-SB_ONCE_INITIALIZE_FUNCTION(ThreadLocalJsStackTracer,
-                            s_thread_local_js_stack_tracer_singelton);
-
-void ToStringAppend(const StackFrame& sf, std::string* out) {
-  base::SStringPrintf(out, "%s(%d,%d):%s", sf.source_url.c_str(),
-                      sf.line_number, sf.column_number,
-                      sf.function_name.c_str());
-}
-
-}  // namespace.
-
-void SetThreadLocalJSContext(JSContext* context) {
-  static_cast<MozjsStackTraceGenerator*>(
-      ::cobalt::script::util::GetThreadLocalStackTraceGenerator())
-      ->set_js_context(context);
-}
-
-JSContext* GetThreadLocalJSContext() {
-  return static_cast<MozjsStackTraceGenerator*>(
-             ::cobalt::script::util::GetThreadLocalStackTraceGenerator())
-      ->js_context();
-}
-
-//////////////////////////////////// IMPL /////////////////////////////////////
-
-MozjsStackTraceGenerator::MozjsStackTraceGenerator() : js_context_(NULL) {}
-MozjsStackTraceGenerator::~MozjsStackTraceGenerator() {}
-
-bool MozjsStackTraceGenerator::Valid() { return js_context_ != NULL; }
-
-bool MozjsStackTraceGenerator::GenerateStackTrace(
-    int depth, nb::RewindableVector<StackFrame>* out) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  out->rewindAll();
-  if (!Valid()) {
-    return false;
-  }
-  GetStackTrace(js_context_, depth, out);
-  return !out->empty();
-}
-
-bool MozjsStackTraceGenerator::GenerateStackTraceLines(
-    int depth, nb::RewindableVector<std::string>* out) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  out->rewindAll();
-  nb::RewindableVector<StackFrame>& stack_frames = scratch_data_.stack_frames_;
-  if (!GenerateStackTrace(depth, &stack_frames)) {
-    return false;
-  }
-
-  for (size_t i = 0; i < stack_frames.size(); ++i) {
-    std::string& current_string = out->grow(1);
-    current_string.assign("");  // Should not deallocate memory.
-    StackFrame& sf = stack_frames[i];
-    ToStringAppend(sf, &current_string);
-  }
-  return true;
-}
-
-bool MozjsStackTraceGenerator::GenerateStackTraceString(int depth,
-                                                        std::string* out) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  out->assign("");  // Should not deallocate memory.
-
-  nb::RewindableVector<StackFrame>& stack_frames = scratch_data_.stack_frames_;
-  if (!GenerateStackTrace(depth, &stack_frames)) {
-    return false;
-  }
-
-  for (size_t i = 0; i < stack_frames.size(); ++i) {
-    cobalt::script::StackFrame& sf = stack_frames[i];
-    ToStringAppend(sf, out);
-    if (i < stack_frames.size() - 1) {
-      base::SStringPrintf(out, "\n");
-    }
-  }
-  return true;
-}
-
-bool MozjsStackTraceGenerator::GenerateStackTraceString(int depth, char* buff,
-                                                        size_t buff_size) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  SbMemorySet(buff, 0, buff_size);
-  std::string& scratch_symbol = scratch_data_.symbol_;
-
-  if (!GenerateStackTraceString(depth, &scratch_symbol)) {
-    return false;
-  }
-
-  SbStringCopy(buff, scratch_symbol.c_str(), buff_size);
-  return true;
-}
-
-JSContext* MozjsStackTraceGenerator::js_context() { return js_context_; }
-
-void MozjsStackTraceGenerator::set_js_context(JSContext* js_ctx) {
-  js_context_ = js_ctx;
-}
-
-}  // namespace util
-}  // namespace mozjs
-
-namespace util {
-
-StackTraceGenerator* GetThreadLocalStackTraceGenerator() {
-  return mozjs::util::s_thread_local_js_stack_tracer_singelton()->GetOrCreate();
-}
-
-}  // namespace util
-
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/util/stack_trace_helpers.h b/src/cobalt/script/mozjs/util/stack_trace_helpers.h
deleted file mode 100644
index b7ccbe8..0000000
--- a/src/cobalt/script/mozjs/util/stack_trace_helpers.h
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef COBALT_SCRIPT_MOZJS_UTIL_STACK_TRACE_HELPERS_H_
-#define COBALT_SCRIPT_MOZJS_UTIL_STACK_TRACE_HELPERS_H_
-
-#include <string>
-#include <vector>
-
-#include "base/threading/thread_checker.h"
-#include "cobalt/script/stack_frame.h"
-#include "cobalt/script/util/stack_trace_helpers.h"
-#include "nb/rewindable_vector.h"
-
-struct JSContext;
-
-#if defined(STARBOARD_ALLOWS_MEMORY_TRACKING)
-#define ENABLE_JS_STACK_TRACE_IN_SCOPE(JS_CTX)                             \
-  ::cobalt::script::mozjs::util::StackTraceScope stack_trace_scope_object( \
-      JS_CTX)
-#else
-#define ENABLE_JS_STACK_TRACE_IN_SCOPE(JS_CTX)
-#endif
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-namespace util {
-
-// Usage:
-//   void Function(JSContext* js_ctx, ...) {
-//     ENABLE_JS_STACK_TRACE_IN_SCOPE(js_ctx);
-//     ...
-//     InvokeOtherFunctions();
-//   }
-//
-//  void InvokeOtherFunctions() {
-//    ...
-//    std::string stack_trace_str;
-//    if (GetThreadLocalMozjsStackTraceGenerator()->GenerateStackTraceString(
-//          2, &stack_trace_str)) {
-//      // Prints the stack trace from javascript.
-//      SbLogRaw(stack_trace_str.c_str());
-//    }
-//  }
-class MozjsStackTraceGenerator
-    : public ::cobalt::script::util::StackTraceGenerator {
- public:
-  MozjsStackTraceGenerator();
-  virtual ~MozjsStackTraceGenerator();
-
-  // Returns |true| if the current MozjsStackTraceGenerator can generate
-  // information about the stack.
-  bool Valid();
-
-  // Generates stack traces in the raw form. Returns true if any stack
-  // frames were generated. False otherwise. Output vector will be
-  // unconditionally rewound to being empty.
-  bool GenerateStackTrace(int depth, nb::RewindableVector<StackFrame>* out);
-
-  // Returns true if any stack traces were written. The output vector will be
-  // re-wound to being empty.
-  // The first position is the most immediate stack frame.
-  bool GenerateStackTraceLines(int depth,
-                               nb::RewindableVector<std::string>* out);
-
-  // Prints stack trace. Returns true on success.
-  bool GenerateStackTraceString(int depth, std::string* out);
-
-  bool GenerateStackTraceString(int depth, char* buff, size_t buff_size);
-
-  // Gets the internal data structure used to generate stack traces.
-  JSContext* js_context();
-
-  // Internal only, do not set.
-  void set_js_context(JSContext* js_ctx);
-
- private:
-  JSContext* js_context_;
-
-  // Recycles memory so that stack tracing is efficient.
-  struct Scratch {
-    nb::RewindableVector<StackFrame> stack_frames_;
-    nb::RewindableVector<std::string> strings_stack_frames_;
-    std::string symbol_;
-  };
-  Scratch scratch_data_;
-  // Checks that each instance can only be used within the same thread.
-  base::ThreadChecker thread_checker_;
-};
-
-// This should only be accessed by a scoped object.
-void SetThreadLocalJSContext(JSContext* context);
-JSContext* GetThreadLocalJSContext();
-
-// Useful for updating the most recent stack trace.
-struct StackTraceScope {
-  explicit StackTraceScope(JSContext* js)
-      : prev_context_(GetThreadLocalJSContext()) {
-    SetThreadLocalJSContext(js);
-  }
-  ~StackTraceScope() { SetThreadLocalJSContext(prev_context_); }
-  JSContext* prev_context_;
-};
-
-}  // namespace util
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_UTIL_STACK_TRACE_HELPERS_H_
diff --git a/src/cobalt/script/mozjs/weak_heap_object.cc b/src/cobalt/script/mozjs/weak_heap_object.cc
deleted file mode 100644
index 72d0b67..0000000
--- a/src/cobalt/script/mozjs/weak_heap_object.cc
+++ /dev/null
@@ -1,102 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/weak_heap_object.h"
-
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "third_party/mozjs/js/src/gc/Marking.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-WeakHeapObject::WeakHeapObject(JSContext* context, JS::HandleValue value)
-    : was_collected_(false) {
-  MozjsGlobalEnvironment* global_environment =
-      MozjsGlobalEnvironment::GetFromContext(context);
-  Initialize(global_environment->weak_object_manager(), value);
-}
-
-WeakHeapObject::WeakHeapObject(JSContext* context, JS::HandleObject object)
-    : was_collected_(false) {
-  MozjsGlobalEnvironment* global_environment =
-      MozjsGlobalEnvironment::GetFromContext(context);
-  Initialize(global_environment->weak_object_manager(),
-             OBJECT_TO_JSVAL(object));
-}
-
-WeakHeapObject::WeakHeapObject(const WeakHeapObject& other)
-    : was_collected_(other.was_collected_) {
-  Initialize(other.weak_object_manager_, other.value_);
-}
-
-WeakHeapObject& WeakHeapObject::operator=(const WeakHeapObject& rhs) {
-  was_collected_ = rhs.was_collected_;
-  Initialize(rhs.weak_object_manager_, rhs.value_);
-  return *this;
-}
-
-void WeakHeapObject::Trace(JSTracer* trace) {
-  if (!value_.isNullOrUndefined()) {
-    JS_CallHeapValueTracer(trace, &value_, "WeakHeapObject::Trace");
-  }
-}
-
-bool WeakHeapObject::IsObject() const {
-  return value_.isObject();
-}
-
-bool WeakHeapObject::IsGcThing() const {
-  // We have to check IsNull(), because null is apparently a GC Thing.
-  return (!IsNull() && value_.isGCThing());
-}
-
-bool WeakHeapObject::WasCollected() const {
-  return was_collected_;
-}
-
-WeakHeapObject::~WeakHeapObject() {
-  // It's safe to call StopTracking even if StartTracking wasn't called. the
-  // WeakObjectManager handles the case where it's not currently tracking the
-  // WeakHeapObject.
-  weak_object_manager_->StopTracking(this);
-}
-
-void WeakHeapObject::Initialize(WeakHeapObjectManager* weak_heap_object_manager,
-                                const JS::Value& value) {
-  weak_object_manager_ = weak_heap_object_manager;
-  value_ = value;
-
-  // Don't bother registering if not a GC thing.
-  if (IsGcThing()) {
-    weak_object_manager_->StartTracking(this);
-  }
-}
-
-bool WeakHeapObject::IsNull() const {
-  return value_.isNullOrUndefined();
-}
-
-void WeakHeapObject::UpdateWeakPointerAfterGc() {
-  if (js::gc::IsValueAboutToBeFinalized(value_.unsafeGet())) {
-    DCHECK(IsGcThing());
-    was_collected_ = true;
-    value_.setNull();
-  }
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/weak_heap_object.h b/src/cobalt/script/mozjs/weak_heap_object.h
deleted file mode 100644
index 265afb2..0000000
--- a/src/cobalt/script/mozjs/weak_heap_object.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_WEAK_HEAP_OBJECT_H_
-#define COBALT_SCRIPT_MOZJS_WEAK_HEAP_OBJECT_H_
-
-#include "cobalt/script/mozjs/weak_heap_object_manager.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// This class implements a weak reference to a JS::Value. The JS::Value that an
-// instance of this class is created with may get garbage collected. In that
-// case, subsequent calls to WeakHeapObject::Get() will return a NULL pointer.
-class WeakHeapObject {
- public:
-  WeakHeapObject(JSContext* context, JS::HandleValue value);
-  WeakHeapObject(JSContext* context, JS::HandleObject object);
-  WeakHeapObject(const WeakHeapObject& other);
-
-  WeakHeapObject& operator=(const WeakHeapObject& rhs);
-  const JS::Value& GetValue() const { return value_.get(); }
-  JSObject* GetObject() const {
-    return value_.toObjectOrNull();
-  }
-
-  void Trace(JSTracer* trace);
-  bool IsObject() const;
-
-  // Whether the value is a GC Thing and not null or undefined.
-  bool IsGcThing() const;
-
-  // Whether the value was a GC Thing and has been actually GC'd.
-  bool WasCollected() const;
-
-  ~WeakHeapObject();
-
- private:
-  void Initialize(WeakHeapObjectManager* weak_heap_object_manager,
-                  const JS::Value& value);
-
-  bool IsNull() const;
-  void UpdateWeakPointerAfterGc();
-
-  WeakHeapObjectManager* weak_object_manager_;
-  JS::Heap<JS::Value> value_;
-  bool was_collected_;
-
-  friend class WeakHeapObjectManager;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_WEAK_HEAP_OBJECT_H_
diff --git a/src/cobalt/script/mozjs/weak_heap_object_manager.cc b/src/cobalt/script/mozjs/weak_heap_object_manager.cc
deleted file mode 100644
index 4ddd809..0000000
--- a/src/cobalt/script/mozjs/weak_heap_object_manager.cc
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/weak_heap_object_manager.h"
-
-#include <utility>
-
-#include "base/logging.h"
-#include "cobalt/script/mozjs/weak_heap_object.h"
-#include "nb/memory_scope.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-void WeakHeapObjectManager::SweepUnmarkedObjects() {
-  for (WeakHeapObjects::iterator it = weak_objects_.begin();
-       it != weak_objects_.end();
-       /* Incremented in the loop */) {
-    if (MaybeSweep(*it)) {
-      WeakHeapObjects::iterator erase_iterator = it++;
-      weak_objects_.erase(erase_iterator);
-    } else {
-      ++it;
-    }
-  }
-}
-
-WeakHeapObjectManager::~WeakHeapObjectManager() {
-  // If this is not empty, that means that some WeakHeapObject may outlive this
-  // class.
-  DCHECK(weak_objects_.empty());
-}
-
-void WeakHeapObjectManager::StartTracking(WeakHeapObject* weak_object) {
-  TRACK_MEMORY_SCOPE("Javascript");
-  std::pair<WeakHeapObjects::iterator, bool> pib =
-      weak_objects_.insert(weak_object);
-  DCHECK(pib.second) << "WeakHeapObject was already being tracked.";
-}
-
-void WeakHeapObjectManager::StopTracking(WeakHeapObject* weak_object) {
-  // The WeakHeapObject may have already been removed from the weak_objects_
-  // set during the sweep phase.
-  WeakHeapObjects::iterator it = weak_objects_.find(weak_object);
-  if (it != weak_objects_.end()) {
-    weak_objects_.erase(it);
-  }
-}
-
-bool WeakHeapObjectManager::MaybeSweep(WeakHeapObject* weak_object) {
-  weak_object->UpdateWeakPointerAfterGc();
-  return weak_object->WasCollected();
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/weak_heap_object_manager.h b/src/cobalt/script/mozjs/weak_heap_object_manager.h
deleted file mode 100644
index 3445a27..0000000
--- a/src/cobalt/script/mozjs/weak_heap_object_manager.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_WEAK_HEAP_OBJECT_MANAGER_H_
-#define COBALT_SCRIPT_MOZJS_WEAK_HEAP_OBJECT_MANAGER_H_
-
-#include "base/hash_tables.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-class WeakHeapObject;
-
-// WeakHeapObjectManager holds a reference to all WeakHeapObject instances. The
-// SweepUnmarkedObjects function should be called during garbage collection
-// after the marking phase. The underlying JS::Heap<> handle for any unmarked
-// handles will be set to NULL.
-class WeakHeapObjectManager {
- public:
-  // Iterates over all WeakHeapObjects and sets their JS::Heap<> handles to NULL
-  // if the objects to which they hold a reference are about to be finalized.
-  void SweepUnmarkedObjects();
-  ~WeakHeapObjectManager();
-
- private:
-  void StartTracking(WeakHeapObject* weak_object);
-  void StopTracking(WeakHeapObject* weak_object);
-
-  // Returns true if the underlying pointer is NULL, which will be the case if
-  // the object has been swept.
-  bool MaybeSweep(WeakHeapObject* weak_object);
-
-  typedef base::hash_set<WeakHeapObject*> WeakHeapObjects;
-  WeakHeapObjects weak_objects_;
-
-  friend class WeakHeapObject;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_WEAK_HEAP_OBJECT_MANAGER_H_
diff --git a/src/cobalt/script/mozjs/wrapper_factory.cc b/src/cobalt/script/mozjs/wrapper_factory.cc
deleted file mode 100644
index 649bb9a..0000000
--- a/src/cobalt/script/mozjs/wrapper_factory.cc
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#include "cobalt/script/mozjs/wrapper_factory.h"
-
-#include <utility>
-
-#include "base/lazy_instance.h"
-#include "cobalt/script/mozjs/mozjs_wrapper_handle.h"
-#include "cobalt/script/mozjs/wrapper_private.h"
-#include "third_party/mozjs/js/src/jsproxy.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-void WrapperFactory::RegisterWrappableType(
-    base::TypeId wrappable_type, const CreateWrapperFunction& create_function,
-    const PrototypeClassFunction& class_function) {
-  std::pair<WrappableTypeFunctionsHashMap::iterator, bool> pib =
-      wrappable_type_functions_.insert(std::make_pair(
-          wrappable_type,
-          WrappableTypeFunctions(create_function, class_function)));
-  DCHECK(pib.second)
-      << "RegisterWrappableType registered for type more than once.";
-}
-
-JSObject* WrapperFactory::GetWrapperProxy(
-    const scoped_refptr<Wrappable>& wrappable) const {
-  if (!wrappable) {
-    return NULL;
-  }
-
-  JS::RootedObject wrapper_proxy(
-      context_,
-      MozjsWrapperHandle::GetObjectProxy(GetCachedWrapper(wrappable.get())));
-  if (!wrapper_proxy) {
-    scoped_ptr<Wrappable::WeakWrapperHandle> object_handle =
-        CreateWrapper(wrappable);
-    SetCachedWrapper(wrappable.get(), object_handle.Pass());
-    wrapper_proxy =
-        MozjsWrapperHandle::GetObjectProxy(GetCachedWrapper(wrappable.get()));
-  }
-  DCHECK(wrapper_proxy);
-  DCHECK(js::IsProxy(wrapper_proxy));
-  return wrapper_proxy;
-}
-
-bool WrapperFactory::HasWrapperProxy(
-    const scoped_refptr<Wrappable>& wrappable) const {
-  return wrappable &&
-         !!MozjsWrapperHandle::GetObjectProxy(
-             GetCachedWrapper(wrappable.get()));
-}
-
-bool WrapperFactory::IsWrapper(JS::HandleObject wrapper) const {
-  // If the object doesn't have a wrapper private, it means that it is not a
-  // platform object.
-  return (JS_GetClass(wrapper)->flags & JSCLASS_HAS_PRIVATE) &&
-         JS_GetPrivate(wrapper) != NULL;
-}
-
-scoped_ptr<Wrappable::WeakWrapperHandle> WrapperFactory::CreateWrapper(
-    const scoped_refptr<Wrappable>& wrappable) const {
-  WrappableTypeFunctionsHashMap::const_iterator it =
-      wrappable_type_functions_.find(wrappable->GetWrappableType());
-  if (it == wrappable_type_functions_.end()) {
-    NOTREACHED();
-    return scoped_ptr<Wrappable::WeakWrapperHandle>();
-  }
-  JS::RootedObject new_proxy(
-      context_, it->second.create_wrapper.Run(context_, wrappable));
-  WrapperPrivate* wrapper_private =
-      WrapperPrivate::GetFromProxyObject(context_, new_proxy);
-  DCHECK(wrapper_private);
-  return make_scoped_ptr<Wrappable::WeakWrapperHandle>(
-      new MozjsWrapperHandle(wrapper_private));
-}
-
-bool WrapperFactory::DoesObjectImplementInterface(JS::HandleObject object,
-                                                  base::TypeId type_id) const {
-  // If the object doesn't have a wrapper private which means it is not a
-  // platform object, so the object doesn't implement the interface.
-  if (!WrapperPrivate::HasWrapperPrivate(context_, object)) {
-    return false;
-  }
-
-  WrappableTypeFunctionsHashMap::const_iterator it =
-      wrappable_type_functions_.find(type_id);
-  if (it == wrappable_type_functions_.end()) {
-    NOTREACHED();
-    return false;
-  }
-  const JSClass* proto_class = it->second.prototype_class.Run(context_);
-  JS::RootedObject object_proto_object(context_);
-  bool success =
-      JS_GetPrototype(context_, object, object_proto_object.address());
-  bool equality = false;
-  while (!equality && success && object_proto_object) {
-    // Get the class of the prototype.
-    JSClass* object_proto_class = JS_GetClass(object_proto_object);
-    equality = (object_proto_class == proto_class);
-    // Get the prototype of the previous prototype.
-    success = JS_GetPrototype(context_, object_proto_object,
-                              object_proto_object.address());
-  }
-  return equality;
-}
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/wrapper_factory.h b/src/cobalt/script/mozjs/wrapper_factory.h
deleted file mode 100644
index ffe4e3d..0000000
--- a/src/cobalt/script/mozjs/wrapper_factory.h
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_WRAPPER_FACTORY_H_
-#define COBALT_SCRIPT_MOZJS_WRAPPER_FACTORY_H_
-
-#include "base/bind.h"
-#include "base/hash_tables.h"
-#include "base/memory/ref_counted.h"
-#include "cobalt/base/type_id.h"
-#include "cobalt/script/wrappable.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Holds a mapping between Wrappable types and base::Callbacks that create
-// new Wrapper objects corresponding to the Wrappable type.
-// TODO: Investigate whether shared functionality with the JSC
-// version can be refactored out.
-class WrapperFactory : public Wrappable::CachedWrapperAccessor {
- public:
-  // Callback to create a new JSObject that is a wrapper for the Wrappable.
-  typedef base::Callback<JSObject*(JSContext*, const scoped_refptr<Wrappable>&)>
-      CreateWrapperFunction;
-
-  // Callback to get JSClass* of prototype.
-  typedef base::Callback<const JSClass*(JSContext*)> PrototypeClassFunction;
-
-  explicit WrapperFactory(JSContext* context) : context_(context) {}
-  void RegisterWrappableType(base::TypeId wrappable_type,
-                             const CreateWrapperFunction& create_function,
-                             const PrototypeClassFunction& class_function);
-
-  // Gets the Proxy for the Wrapper object for this Wrappable. It may create a
-  // new Wrapper and Proxy.
-  JSObject* GetWrapperProxy(const scoped_refptr<Wrappable>& wrappable) const;
-
-  // Check whether the Proxy for the Wrapper object for this Wrappable exists
-  // or not. This will NOT create a new Wrapper and Proxy if they do not
-  // already exist.
-  bool HasWrapperProxy(const scoped_refptr<Wrappable>& wrappable) const;
-
-  // Returns true if this JSObject is a Wrapper object.
-  bool IsWrapper(JS::HandleObject wrapper) const;
-
-  bool DoesObjectImplementInterface(JS::HandleObject object,
-                                    base::TypeId id) const;
-
- private:
-  struct WrappableTypeFunctions {
-    CreateWrapperFunction create_wrapper;
-    PrototypeClassFunction prototype_class;
-    WrappableTypeFunctions(const CreateWrapperFunction& create_wrapper,
-                           const PrototypeClassFunction& prototype_class)
-        : create_wrapper(create_wrapper), prototype_class(prototype_class) {}
-  };
-
-  scoped_ptr<Wrappable::WeakWrapperHandle> CreateWrapper(
-      const scoped_refptr<Wrappable>& wrappable) const;
-
-  typedef base::hash_map<base::TypeId, WrappableTypeFunctions>
-      WrappableTypeFunctionsHashMap;
-
-  JSContext* context_;
-  WrappableTypeFunctionsHashMap wrappable_type_functions_;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_WRAPPER_FACTORY_H_
diff --git a/src/cobalt/script/mozjs/wrapper_private.cc b/src/cobalt/script/mozjs/wrapper_private.cc
deleted file mode 100644
index 90257d4..0000000
--- a/src/cobalt/script/mozjs/wrapper_private.cc
+++ /dev/null
@@ -1,210 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "cobalt/script/mozjs/wrapper_private.h"
-
-#include "base/hash_tables.h"
-#include "cobalt/script/mozjs/mozjs_global_environment.h"
-#include "cobalt/script/mozjs/proxy_handler.h"
-#include "cobalt/script/mozjs/referenced_object_map.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-#include "third_party/mozjs/js/src/jsobj.h"
-#include "third_party/mozjs/js/src/jsproxy.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-void Tracer::Trace(Wrappable* wrappable) {
-  // Clearly, a null wrappable could not possibly reference any other
-  // wrappables.
-  if (!wrappable) {
-    return;
-  }
-
-  // Unfortunately, |JSTracer| will only supply us with a |JSRuntime|,
-  // rather than a |JSContext|. Fortunately, Cobalt will only create one
-  // global environment per runtime, so we can still safely get back to our
-  // context, and thus our global environment.
-  JSContext* context = NULL;
-  JS_ContextIterator(js_tracer_->runtime, &context);
-  DCHECK(context);
-  MozjsGlobalEnvironment* global_environment =
-      MozjsGlobalEnvironment::GetFromContext(context);
-  DCHECK(global_environment);
-
-  // Clearly, if we have already visited this wrappable during the current
-  // tracing session, there is no need to visit it again. We rely on
-  // |JS_SetGCCallback| in the |MozjsEngine| to properly manage clearing
-  // |visited_wrappables_| in between GC sessions.
-  base::hash_set<Wrappable*>* visited_wrappables =
-      global_environment->visited_wrappables();
-  DCHECK(visited_wrappables);
-  if (!visited_wrappables->insert(wrappable).second) {
-    return;
-  }
-
-  // There are now two cases left to handle. Since we cannot create the
-  // wrapper while tracing due to internal SpiderMonkey restrictions, we
-  // will instead directly call |TraceMembers| here if the wrapper does not
-  // exist. In the case where the wrapper already does exist, we will pass
-  // the wrapper to |JS_CallHeapObjectTracer|, and rely on SpiderMonkey to
-  // begin another |WrapperPrivate::Trace| on that wrapper.
-  WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
-  if (!wrapper_factory->HasWrapperProxy(wrappable)) {
-    frontier_.push_back(wrappable);
-  } else {
-    JSObject* proxy_object = wrapper_factory->GetWrapperProxy(wrappable);
-    JSObject* target = js::GetProxyTargetObject(proxy_object);
-    WrapperPrivate* wrapper_private =
-        static_cast<WrapperPrivate*>(JS_GetPrivate(target));
-    DCHECK(wrapper_private->context_ == context);
-    DCHECK(wrapper_private->wrapper_proxy_);
-    JS_CallHeapObjectTracer(js_tracer_, &wrapper_private->wrapper_proxy_,
-                            "WrapperPrivate::TraceWrappable");
-  }
-
-  DCHECK(JS_ContextIterator(js_tracer_->runtime, &context) == NULL);
-}
-
-void Tracer::TraceFrom(Wrappable* wrappable) {
-  DCHECK(frontier_.empty());
-  frontier_.push_back(wrappable);
-  while (!frontier_.empty()) {
-    Wrappable* wrappable = frontier_.back();
-    frontier_.pop_back();
-    wrappable->TraceMembers(this);
-  }
-}
-
-// static
-void WrapperPrivate::AddPrivateData(JSContext* context,
-                                    JS::HandleObject wrapper_proxy,
-                                    const scoped_refptr<Wrappable>& wrappable) {
-  DCHECK(js::IsProxy(wrapper_proxy));
-  WrapperPrivate* private_data =
-      new WrapperPrivate(context, wrappable, wrapper_proxy);
-  JS::RootedObject target_object(context,
-                                 js::GetProxyTargetObject(wrapper_proxy));
-  JS_SetPrivate(target_object, private_data);
-  DCHECK_EQ(JS_GetPrivate(target_object), private_data);
-}
-
-// static
-bool WrapperPrivate::HasWrapperPrivate(JSContext* context,
-                                       JS::HandleObject object) {
-  if (js::IsProxy(object)) {
-    JS::RootedObject target_object(context, js::GetProxyTargetObject(object));
-    return WrapperPrivate::HasWrapperPrivate(context, target_object);
-  }
-
-  return object->hasPrivate();
-}
-
-// static
-WrapperPrivate* WrapperPrivate::GetFromWrappable(
-    const scoped_refptr<Wrappable>& wrappable, JSContext* context,
-    WrapperFactory* wrapper_factory) {
-  JS::RootedObject wrapper_proxy(context,
-                                 wrapper_factory->GetWrapperProxy(wrappable));
-  WrapperPrivate* private_data = GetFromProxyObject(context, wrapper_proxy);
-  DCHECK(private_data);
-  DCHECK_EQ(private_data->wrappable_, wrappable);
-  return private_data;
-}
-
-// static
-WrapperPrivate* WrapperPrivate::GetFromWrapperObject(JS::HandleObject wrapper) {
-  DCHECK(!js::IsProxy(wrapper));
-  if (!(JS_GetClass(wrapper)->flags & JSCLASS_HAS_PRIVATE)) {
-    return NULL;
-  }
-  WrapperPrivate* private_data =
-      static_cast<WrapperPrivate*>(JS_GetPrivate(wrapper));
-  DCHECK(private_data);
-  return private_data;
-}
-
-// static
-WrapperPrivate* WrapperPrivate::GetFromProxyObject(
-    JSContext* context, JS::HandleObject proxy_object) {
-  DCHECK(js::IsProxy(proxy_object));
-  JS::RootedObject target(context, js::GetProxyTargetObject(proxy_object));
-  return GetFromWrapperObject(target);
-}
-
-// static
-WrapperPrivate* WrapperPrivate::GetFromObject(JSContext* context,
-                                              JS::HandleObject object) {
-  if (js::IsProxy(object)) {
-    return GetFromProxyObject(context, object);
-  } else {
-    return GetFromWrapperObject(object);
-  }
-}
-
-// static
-void WrapperPrivate::Finalizer(JSFreeOp* /* free_op */, JSObject* object) {
-  WrapperPrivate* wrapper_private =
-      reinterpret_cast<WrapperPrivate*>(JS_GetPrivate(object));
-  DCHECK(wrapper_private);
-  delete wrapper_private;
-}
-
-// static
-void WrapperPrivate::Trace(JSTracer* trace, JSObject* object) {
-  WrapperPrivate* wrapper_private =
-      reinterpret_cast<WrapperPrivate*>(JS_GetPrivate(object));
-  // Verify that this trace function is called for the object (rather than the
-  // proxy object).
-  DCHECK(!js::IsProxy(object));
-
-  // The GC could run on this object before we've had a chance to set its
-  // private data, so we must handle the case where JS_GetPrivate returns NULL.
-  if (wrapper_private) {
-    // Verify that WrapperPrivate::wrapper_proxy_'s target object is this
-    // object.
-    DCHECK_EQ(object,
-              js::GetProxyTargetObject(wrapper_private->wrapper_proxy_));
-
-    // The wrapper's proxy object will keep the wrapper object alive, but the
-    // reverse is not true, so we must trace it explicitly.
-    JS_CallHeapObjectTracer(trace, &wrapper_private->wrapper_proxy_,
-                            "WrapperPrivate::Trace");
-
-    MozjsGlobalEnvironment* global_environment =
-        MozjsGlobalEnvironment::GetFromContext(wrapper_private->context_);
-    intptr_t key = ReferencedObjectMap::GetKeyForWrappable(
-        wrapper_private->wrappable_.get());
-    global_environment->referenced_objects()->TraceReferencedObjects(trace,
-                                                                     key);
-    Tracer tracer(trace);
-    tracer.TraceFrom(wrapper_private->wrappable_);
-  }
-}
-
-WrapperPrivate::WrapperPrivate(JSContext* context,
-                               const scoped_refptr<Wrappable>& wrappable,
-                               JS::HandleObject wrapper_proxy)
-    : context_(context), wrappable_(wrappable), wrapper_proxy_(wrapper_proxy) {
-  DCHECK(js::IsProxy(wrapper_proxy));
-}
-
-WrapperPrivate::~WrapperPrivate() {
-  wrapper_proxy_ = NULL;
-}
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
diff --git a/src/cobalt/script/mozjs/wrapper_private.h b/src/cobalt/script/mozjs/wrapper_private.h
deleted file mode 100644
index a016647..0000000
--- a/src/cobalt/script/mozjs/wrapper_private.h
+++ /dev/null
@@ -1,120 +0,0 @@
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#ifndef COBALT_SCRIPT_MOZJS_WRAPPER_PRIVATE_H_
-#define COBALT_SCRIPT_MOZJS_WRAPPER_PRIVATE_H_
-
-#include <vector>
-
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_vector.h"
-#include "base/memory/weak_ptr.h"
-#include "cobalt/base/polymorphic_downcast.h"
-#include "cobalt/script/mozjs/wrapper_factory.h"
-#include "cobalt/script/wrappable.h"
-#include "third_party/mozjs/js/src/jsapi.h"
-
-namespace cobalt {
-namespace script {
-namespace mozjs {
-
-// Our mozjs specific implementation of |script::Tracer|. Tracing sessions
-// will be initiated from a |Wrapper| of SpiderMonkey's choice, and then it
-// will be the |mozjs::Tracer|'s job to assist SpiderMonkey's garbage
-// collector in traversing the graph of |Wrapper|s and |Wrappable|s.
-// |Wrappable|s will inform us about what they can reach through their
-// |TraceMembers| implementation, and then we will pass the reachable
-// |Wrappable|'s |Wrapper| to SpiderMonkey GC if it exists, and otherwise
-// continue traversing ourselves from |Wrappable| to (the unwrapped)
-// |Wrappable|.
-class Tracer : public ::cobalt::script::Tracer {
- public:
-  explicit Tracer(JSTracer* js_tracer) : js_tracer_(js_tracer) {}
-  void Trace(Wrappable* wrappable) OVERRIDE;
-
-  void TraceFrom(Wrappable* wrappable);
-
- private:
-  JSTracer* js_tracer_;
-  // Pending |Wrappable|s that we must traverse ourselves, since they did not
-  // have a |Wrapper|.
-  std::vector<Wrappable*> frontier_;
-};
-
-// Contains private data associated with a JSObject representing a JS wrapper
-// for a Cobalt platform object. There should be a one-to-one mapping of such
-// JSObjects and WrapperPrivate instances, and the corresponding WrapperPrivate
-// must be destroyed when its JSObject is garbage collected.
-class WrapperPrivate : public base::SupportsWeakPtr<WrapperPrivate> {
- public:
-  typedef std::vector<Wrappable*> WrappableVector;
-
-  template <typename T>
-  scoped_refptr<T> wrappable() const {
-    return base::polymorphic_downcast<T*>(wrappable_.get());
-  }
-
-  JSObject* js_object_proxy() const { return wrapper_proxy_; }
-
-  // Create a new WrapperPrivate instance and associate it with the wrapper.
-  static void AddPrivateData(JSContext* context, JS::HandleObject wrapper_proxy,
-                             const scoped_refptr<Wrappable>& wrappable);
-
-  // Return true if the object has wrapper private.
-  static bool HasWrapperPrivate(JSContext* context, JS::HandleObject object);
-
-  // Get the WrapperPrivate associated with the given Wrappable. A new JSObject
-  // and WrapperPrivate object may be created.
-  static WrapperPrivate* GetFromWrappable(
-      const scoped_refptr<Wrappable>& wrappable, JSContext* context,
-      WrapperFactory* wrapper_factory);
-
-  // Get the |WrapperPrivate| instance associated with this |Wrapper| object.
-  // Will return |NULL| if |object| does not have a |Wrappable|, which also
-  // implies that it is not a |Wrapper|.
-  static WrapperPrivate* GetFromWrapperObject(JS::HandleObject object);
-
-  // Get the WrapperPrivate instance associated with the target of this proxy.
-  static WrapperPrivate* GetFromProxyObject(JSContext* context,
-                                            JS::HandleObject proxy_object);
-
-  // Get the |WrapperPrivate| instance associated with the object, which may
-  // be a proxy or a proxy target. Will return |NULL| if the |JSObject| that
-  // results from traversing |object|'s proxy chain does not have a
-  // |Wrappable|, which also implies that it is not a |Wrapper|.
-  static WrapperPrivate* GetFromObject(JSContext* context,
-                                       JS::HandleObject object);
-
-  // Called when the wrapper object is about to be deleted by the GC.
-  static void Finalizer(JSFreeOp* /* free_op */, JSObject* object);
-
-  // Trace callback called during garbage collection.
-  static void Trace(JSTracer* trace, JSObject* object);
-
- private:
-  WrapperPrivate(JSContext* context, const scoped_refptr<Wrappable>& wrappable,
-                 JS::HandleObject wrapper_proxy);
-  ~WrapperPrivate();
-
-  JSContext* context_;
-  scoped_refptr<Wrappable> wrappable_;
-  JS::Heap<JSObject*> wrapper_proxy_;
-
-  friend Tracer;
-};
-
-}  // namespace mozjs
-}  // namespace script
-}  // namespace cobalt
-
-#endif  // COBALT_SCRIPT_MOZJS_WRAPPER_PRIVATE_H_
diff --git a/src/cobalt/webdriver/algorithms.cc b/src/cobalt/webdriver/algorithms.cc
index a2fd622..0e2feb6 100644
--- a/src/cobalt/webdriver/algorithms.cc
+++ b/src/cobalt/webdriver/algorithms.cc
@@ -423,11 +423,6 @@
 bool IsDisplayed(dom::Element* element) {
   DCHECK(element);
 
-  // Update the computed styles first to ensure we get up-to-date computed
-  // styles.
-  DCHECK(element->node_document());
-  element->node_document()->UpdateComputedStyles();
-
   // By convention, BODY element is always shown: BODY represents the document
   // and even if there's nothing rendered in there, user can always see there's
   // the document.
@@ -436,6 +431,18 @@
     return true;
   }
 
+  // Update the computed styles first to ensure we get up-to-date computed
+  // styles.
+  if (element->AsHTMLElement()) {
+    DCHECK(element->node_document());
+    // If the element is an HTML element, we can update for only its subtree.
+    element->node_document()->UpdateComputedStyleOnElementAndAncestor(
+        element->AsHTMLElement());
+  } else {
+    DCHECK(element->node_document());
+    element->node_document()->UpdateComputedStyles();
+  }
+
   // Any element with hidden/collapsed visibility is not shown.
   base::optional<std::string> visiblity_style =
       GetComputedStyle(element, &cssom::CSSComputedStyleData::visibility);
diff --git a/src/cobalt/webdriver/element_driver.cc b/src/cobalt/webdriver/element_driver.cc
index 56c1450..b53ae7b 100644
--- a/src/cobalt/webdriver/element_driver.cc
+++ b/src/cobalt/webdriver/element_driver.cc
@@ -16,7 +16,11 @@
 
 #include "cobalt/cssom/property_value.h"
 #include "cobalt/dom/document.h"
+#include "cobalt/dom/dom_rect.h"
+#include "cobalt/dom/dom_rect_list.h"
 #include "cobalt/dom/html_element.h"
+#include "cobalt/math/rect_f.h"
+#include "cobalt/math/size.h"
 #include "cobalt/webdriver/algorithms.h"
 #include "cobalt/webdriver/keyboard.h"
 #include "cobalt/webdriver/search.h"
@@ -26,6 +30,8 @@
 namespace webdriver {
 namespace {
 
+const int kWebDriverMousePointerId = 0x12345678;
+
 std::string GetTagName(dom::Element* element) {
   DCHECK(element);
   return element->tag_name().c_str();
@@ -64,14 +70,12 @@
     const base::WeakPtr<dom::Element>& element, ElementMapping* element_mapping,
     KeyboardEventInjector keyboard_event_injector,
     PointerEventInjector pointer_event_injector,
-    WheelEventInjector wheel_event_injector,
     const scoped_refptr<base::MessageLoopProxy>& message_loop)
     : element_id_(element_id),
       element_(element),
       element_mapping_(element_mapping),
       keyboard_event_injector_(keyboard_event_injector),
       pointer_event_injector_(pointer_event_injector),
-      wheel_event_injector_(wheel_event_injector),
       element_message_loop_(message_loop) {}
 
 util::CommandResult<std::string> ElementDriver::GetTagName() {
@@ -99,8 +103,6 @@
 }
 
 util::CommandResult<void> ElementDriver::SendKeys(const protocol::Keys& keys) {
-  typedef util::CommandResult<void> CommandResult;
-
   // Translate the keys into KeyboardEvents. Reset modifiers.
   scoped_ptr<Keyboard::KeyboardEventVector> events(
       new Keyboard::KeyboardEventVector());
@@ -132,6 +134,14 @@
       protocol::Response::kNoSuchElement);
 }
 
+util::CommandResult<void> ElementDriver::SendClick(
+    const protocol::Button& button) {
+  return util::CallOnMessageLoop(element_message_loop_,
+                                 base::Bind(&ElementDriver::SendClickInternal,
+                                            base::Unretained(this), button),
+                                 protocol::Response::kStaleElementReference);
+}
+
 util::CommandResult<bool> ElementDriver::Equals(
     const ElementDriver* other_element_driver) {
   return util::CallOnMessageLoop(
@@ -189,6 +199,78 @@
   return CommandResult(protocol::Response::kSuccess);
 }
 
+util::CommandResult<void> ElementDriver::SendClickInternal(
+    const protocol::Button& button) {
+  typedef util::CommandResult<void> CommandResult;
+  DCHECK_EQ(base::MessageLoopProxy::current(), element_message_loop_);
+  if (!element_) {
+    return CommandResult(protocol::Response::kStaleElementReference);
+  }
+  // First ensure that the element is displayed, and return an error if not.
+  if (!algorithms::IsDisplayed(element_.get())) {
+    return CommandResult(protocol::Response::kElementNotVisible);
+  }
+  // Click on an element.
+  //   https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidelementidclick
+  // The Element Click clicks the in-view center point of the element
+  //   https://w3c.github.io/webdriver/webdriver-spec.html#dfn-element-click
+
+  // An element's in-view center point is the origin position of the rectangle
+  // that is the intersection between the element's first DOM client rectangle
+  // and the initial viewport.
+  //   https://w3c.github.io/webdriver/webdriver-spec.html#dfn-in-view-center-point
+  scoped_refptr<dom::DOMRectList> dom_rects = element_->GetClientRects();
+  if (dom_rects->length() == 0) {
+    return CommandResult(protocol::Response::kElementNotVisible);
+  }
+  scoped_refptr<dom::DOMRect> dom_rect = dom_rects->Item(0);
+  math::RectF rect(dom_rect->left(), dom_rect->top(), dom_rect->width(),
+                   dom_rect->height());
+  DCHECK(element_->owner_document());
+  math::Size viewport_size = element_->owner_document()->viewport_size();
+  math::RectF viewport_rect(0, 0, viewport_size.width(),
+                            viewport_size.height());
+  rect.Intersect(viewport_rect);
+  float x = rect.x() + rect.width() / 2;
+  float y = rect.y() + rect.height() / 2;
+
+  dom::PointerEventInit event;
+  event.set_screen_x(x);
+  event.set_screen_y(y);
+  event.set_client_x(x);
+  event.set_client_y(y);
+
+  event.set_pointer_type("mouse");
+  event.set_pointer_id(kWebDriverMousePointerId);
+#if SB_API_VERSION >= SB_POINTER_INPUT_API_VERSION
+  event.set_width(0.0f);
+  event.set_height(0.0f);
+  event.set_pressure(0.0f);
+  event.set_tilt_x(0.0f);
+  event.set_tilt_y(0.0f);
+#endif
+  event.set_is_primary(true);
+
+  event.set_button(0);
+  event.set_buttons(0);
+  pointer_event_injector_.Run(scoped_refptr<dom::Element>(),
+                              base::Tokens::pointermove(), event);
+  event.set_buttons(1);
+#if SB_API_VERSION >= SB_POINTER_INPUT_API_VERSION
+  event.set_pressure(0.5f);
+#endif
+  pointer_event_injector_.Run(scoped_refptr<dom::Element>(),
+                              base::Tokens::pointerdown(), event);
+  event.set_buttons(0);
+#if SB_API_VERSION >= SB_POINTER_INPUT_API_VERSION
+  event.set_pressure(0.0f);
+#endif
+  pointer_event_injector_.Run(scoped_refptr<dom::Element>(),
+                              base::Tokens::pointerup(), event);
+
+  return CommandResult(protocol::Response::kSuccess);
+}
+
 // Shared logic between FindElement and FindElements.
 template <typename T>
 util::CommandResult<T> ElementDriver::FindElementsInternal(
diff --git a/src/cobalt/webdriver/element_driver.h b/src/cobalt/webdriver/element_driver.h
index 5cdad82..aa8b3ef 100644
--- a/src/cobalt/webdriver/element_driver.h
+++ b/src/cobalt/webdriver/element_driver.h
@@ -27,9 +27,9 @@
 #include "cobalt/dom/element.h"
 #include "cobalt/dom/keyboard_event_init.h"
 #include "cobalt/dom/pointer_event_init.h"
-#include "cobalt/dom/wheel_event_init.h"
 #include "cobalt/webdriver/element_mapping.h"
 #include "cobalt/webdriver/keyboard.h"
+#include "cobalt/webdriver/protocol/button.h"
 #include "cobalt/webdriver/protocol/element_id.h"
 #include "cobalt/webdriver/protocol/keys.h"
 #include "cobalt/webdriver/protocol/search_strategy.h"
@@ -42,7 +42,7 @@
 
 // ElementDriver could be considered a WebElement as described in the WebDriver
 // spec.
-// https://code.google.com/p/selenium/wiki/JsonWireProtocol#WebElement
+// https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#webelement
 // Commands that interact with a WebElement, such as:
 //     /session/:sessionId/element/:id/some_command
 // will map to a method on this class.
@@ -54,16 +54,12 @@
   typedef base::Callback<void(scoped_refptr<dom::Element>, const base::Token,
                               const dom::PointerEventInit&)>
       PointerEventInjector;
-  typedef base::Callback<void(scoped_refptr<dom::Element>, const base::Token,
-                              const dom::WheelEventInit&)>
-      WheelEventInjector;
 
   ElementDriver(const protocol::ElementId& element_id,
                 const base::WeakPtr<dom::Element>& element,
                 ElementMapping* element_mapping,
                 KeyboardEventInjector keyboard_event_injector,
                 PointerEventInjector pointer_event_injector,
-                WheelEventInjector wheel_event_injector,
                 const scoped_refptr<base::MessageLoopProxy>& message_loop);
   const protocol::ElementId& element_id() { return element_id_; }
 
@@ -75,6 +71,7 @@
       const protocol::SearchStrategy& strategy);
   util::CommandResult<std::vector<protocol::ElementId> > FindElements(
       const protocol::SearchStrategy& strategy);
+  util::CommandResult<void> SendClick(const protocol::Button& button);
   util::CommandResult<bool> Equals(const ElementDriver* other_element_driver);
   util::CommandResult<base::optional<std::string> > GetAttribute(
       const std::string& attribute_name);
@@ -91,6 +88,8 @@
   util::CommandResult<void> SendKeysInternal(
       scoped_ptr<Keyboard::KeyboardEventVector> keyboard_events);
 
+  util::CommandResult<void> SendClickInternal(const protocol::Button& button);
+
   // Shared logic between FindElement and FindElements.
   template <typename T>
   util::CommandResult<T> FindElementsInternal(
@@ -106,7 +105,6 @@
   ElementMapping* element_mapping_;
   KeyboardEventInjector keyboard_event_injector_;
   PointerEventInjector pointer_event_injector_;
-  WheelEventInjector wheel_event_injector_;
   scoped_refptr<base::MessageLoopProxy> element_message_loop_;
 
   friend class WindowDriver;
diff --git a/src/cobalt/webdriver/keyboard.h b/src/cobalt/webdriver/keyboard.h
index 356f40b..5f9c10b 100644
--- a/src/cobalt/webdriver/keyboard.h
+++ b/src/cobalt/webdriver/keyboard.h
@@ -21,6 +21,7 @@
 
 #include "base/memory/ref_counted.h"
 #include "cobalt/dom/keyboard_event.h"
+#include "cobalt/dom/keyboard_event_init.h"
 
 namespace cobalt {
 namespace webdriver {
diff --git a/src/cobalt/webdriver/protocol/button.cc b/src/cobalt/webdriver/protocol/button.cc
new file mode 100644
index 0000000..2350937
--- /dev/null
+++ b/src/cobalt/webdriver/protocol/button.cc
@@ -0,0 +1,43 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "cobalt/webdriver/protocol/button.h"
+
+namespace cobalt {
+namespace webdriver {
+namespace protocol {
+namespace {
+const char kButtonKey[] = "button";
+}
+
+scoped_ptr<base::Value> Button::ToValue(const Button& button) {
+  scoped_ptr<base::DictionaryValue> button_object(new base::DictionaryValue());
+  button_object->SetInteger(kButtonKey, button.button_);
+  return button_object.PassAs<base::Value>();
+}
+
+base::optional<Button> Button::FromValue(const base::Value* value) {
+  const base::DictionaryValue* dictionary_value;
+  if (!value->GetAsDictionary(&dictionary_value)) {
+    return base::nullopt;
+  }
+  int button = 0;
+  dictionary_value->GetInteger(kButtonKey, &button);
+
+  return Button(button);
+}
+
+}  // namespace protocol
+}  // namespace webdriver
+}  // namespace cobalt
diff --git a/src/cobalt/webdriver/protocol/button.h b/src/cobalt/webdriver/protocol/button.h
new file mode 100644
index 0000000..ee7dd23
--- /dev/null
+++ b/src/cobalt/webdriver/protocol/button.h
@@ -0,0 +1,48 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef COBALT_WEBDRIVER_PROTOCOL_BUTTON_H_
+#define COBALT_WEBDRIVER_PROTOCOL_BUTTON_H_
+
+#include <string>
+
+#include "base/memory/scoped_ptr.h"
+#include "base/optional.h"
+#include "base/values.h"
+
+namespace cobalt {
+namespace webdriver {
+namespace protocol {
+
+// Represents the JSON parameters passed to the click, buttondown, and buttonup
+// WebDriver commands.
+// https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidelementidclick
+// https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidbuttondown
+// https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidbuttonup
+class Button {
+ public:
+  static scoped_ptr<base::Value> ToValue(const Button& button);
+  static base::optional<Button> FromValue(const base::Value* value);
+
+  int button() const { return button_; }
+
+ private:
+  explicit Button(const int button) : button_(button) {}
+  const int button_;
+};
+
+}  // namespace protocol
+}  // namespace webdriver
+}  // namespace cobalt
+#endif  // COBALT_WEBDRIVER_PROTOCOL_BUTTON_H_
diff --git a/src/cobalt/webdriver/protocol/moveto.cc b/src/cobalt/webdriver/protocol/moveto.cc
new file mode 100644
index 0000000..746f5db
--- /dev/null
+++ b/src/cobalt/webdriver/protocol/moveto.cc
@@ -0,0 +1,69 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "cobalt/webdriver/protocol/moveto.h"
+
+namespace cobalt {
+namespace webdriver {
+namespace protocol {
+namespace {
+const char kElementKey[] = "element";
+const char kXoffsetKey[] = "xoffset";
+const char kYoffsetKey[] = "yoffset";
+}  // namespace
+
+scoped_ptr<base::Value> Moveto::ToValue(const Moveto& moveto) {
+  scoped_ptr<base::DictionaryValue> moveto_object(new base::DictionaryValue());
+  if (moveto.element_) {
+    moveto_object->Set(kElementKey, ElementId::ToValue(*moveto.element_).get());
+  }
+  if (moveto.xoffset_) {
+    moveto_object->SetInteger(kXoffsetKey, *moveto.xoffset_);
+  }
+  if (moveto.yoffset_) {
+    moveto_object->SetInteger(kYoffsetKey, *moveto.yoffset_);
+  }
+  return moveto_object.PassAs<base::Value>();
+}
+
+base::optional<Moveto> Moveto::FromValue(const base::Value* value) {
+  const base::DictionaryValue* dictionary_value;
+  if (!value->GetAsDictionary(&dictionary_value)) {
+    return base::nullopt;
+  }
+
+  base::optional<ElementId> element;
+  const Value* element_value = NULL;
+  if (dictionary_value->Get(kElementKey, &element_value) && element_value) {
+    element = ElementId::FromValue(element_value);
+  }
+
+  int xoffset_value = 0;
+  base::optional<int> xoffset;
+  if (dictionary_value->GetInteger(kXoffsetKey, &xoffset_value)) {
+    xoffset = xoffset_value;
+  }
+
+  int yoffset_value = 0;
+  base::optional<int> yoffset;
+  if (dictionary_value->GetInteger(kYoffsetKey, &yoffset_value)) {
+    yoffset = yoffset_value;
+  }
+
+  return Moveto(element, xoffset, yoffset);
+}
+
+}  // namespace protocol
+}  // namespace webdriver
+}  // namespace cobalt
diff --git a/src/cobalt/webdriver/protocol/moveto.h b/src/cobalt/webdriver/protocol/moveto.h
new file mode 100644
index 0000000..ae36058
--- /dev/null
+++ b/src/cobalt/webdriver/protocol/moveto.h
@@ -0,0 +1,50 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef COBALT_WEBDRIVER_PROTOCOL_MOVETO_H_
+#define COBALT_WEBDRIVER_PROTOCOL_MOVETO_H_
+
+#include "base/memory/scoped_ptr.h"
+#include "base/optional.h"
+#include "base/values.h"
+#include "cobalt/webdriver/protocol/element_id.h"
+
+namespace cobalt {
+namespace webdriver {
+namespace protocol {
+
+// Represents the JSON parameters passed to the moveto WebDriver command.
+// https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidmoveto
+class Moveto {
+ public:
+  static scoped_ptr<base::Value> ToValue(const Moveto& moveto);
+  static base::optional<Moveto> FromValue(const base::Value* moveto);
+
+  const base::optional<ElementId>& element() const { return element_; }
+  const base::optional<int>& xoffset() const { return xoffset_; }
+  const base::optional<int>& yoffset() const { return yoffset_; }
+
+ private:
+  Moveto(const base::optional<ElementId>& element,
+         const base::optional<int>& xoffset, const base::optional<int>& yoffset)
+      : element_(element), xoffset_(xoffset), yoffset_(yoffset) {}
+  const base::optional<ElementId> element_;
+  const base::optional<int> xoffset_;
+  const base::optional<int> yoffset_;
+};
+
+}  // namespace protocol
+}  // namespace webdriver
+}  // namespace cobalt
+#endif  // COBALT_WEBDRIVER_PROTOCOL_MOVETO_H_
diff --git a/src/cobalt/webdriver/testdata/simple_test.py b/src/cobalt/webdriver/testdata/simple_test.py
new file mode 100755
index 0000000..61b6c21
--- /dev/null
+++ b/src/cobalt/webdriver/testdata/simple_test.py
@@ -0,0 +1,203 @@
+#!/usr/bin/env python
+#
+# Copyright 2017 Google Inc. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Simple script for Webdriver Wire Protocol communication."""
+
+import binascii
+import json
+import time
+import requests
+
+# This is a simple script for Webdriver Wire Protocol communication.
+#   https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol
+
+WEBDRIVER_HOST = 'http://localhost:4444'
+
+GET = 'GET'
+POST = 'POST'
+DELETE = 'DELETE'
+
+
+def Request(request_type, path='', parameters=None):
+  """Perform a WebDriver JSON Wire Protocol Request.
+
+  Args:
+    request_type: GET, POST, or DELETE
+    path: optional path string for the request
+    parameters: optional parameter dictionary for the request
+
+  Returns:
+    The dictionary returned by the WebDriver server
+  """
+  url = '%s/%s' % (WEBDRIVER_HOST, path)
+  headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
+  if request_type == GET:
+    request = requests.get(url, data=json.dumps(parameters), headers=headers)
+  if request_type == POST:
+    request = requests.post(url, data=json.dumps(parameters), headers=headers)
+  if request_type == DELETE:
+    request = requests.delete(url, data=json.dumps(parameters), headers=headers)
+  result = request.text if request.headers[
+      'content-type'] == 'text/plain' else request.json()
+  if request.status_code == 200:
+    return result
+  else:
+    print '*** Error %d: %s' % (request.status_code, result['value']['message']
+                                if isinstance(result, dict) else result)
+  return None
+
+
+def SessionRequest(session_id, request_type, path=None, parameters=None):
+  """Perform a WebDriver JSON Wire Protocol Session Request.
+
+  Args:
+    session_id: Value for ':sessionId' for the request
+    request_type: GET, POST, or DELETE
+    path: optional path string for the request
+    parameters: optional parameter dictionary for the request
+
+  Returns:
+    The dictionary returned by the WebDriver server
+  """
+  if path:
+    return Request(request_type, 'session/%s/%s' % (session_id, path),
+                   parameters)
+  return Request(request_type, 'session/%s' % (session_id), parameters)
+
+
+def ElementRequest(session_id,
+                   element_id,
+                   request_type,
+                   path=None,
+                   parameters=None):
+  return SessionRequest(session_id, request_type, 'element/%s/%s' %
+                        (element_id[u'ELEMENT'], path), parameters)
+
+
+def GetSessionID():
+  """Retrieve a WebDriver JSON Wire Protocol Session.
+
+  Returns:
+    The value for ':sessionId' to be used for Session Requests
+  """
+  request = Request(POST, 'session', {'desiredCapabilities': {}})
+  if request:
+    session_id = request[u'sessionId']
+  else:
+    # If creating a new session id fails, use an already existing session.
+    request = Request(GET, 'sessions')
+    if request:
+      session_id = request['value'][0]
+  return session_id
+
+
+def DeleteSession(session_id):
+  """Delete a WebDriver JSON Wire Protocol Session.
+
+  Args:
+    session_id: Value for ':sessionId' for the request
+
+  Returns:
+    The dictionary returned by the WebDriver server
+  """
+  return SessionRequest(session_id, DELETE)
+
+
+def GetScreenShot(session_id, filename):
+  """Retrieve a Screenshot.
+
+  Args:
+    session_id: Value for ':sessionId' for the request
+    filename: The filename to write the PNG screenshot to
+  """
+  request = SessionRequest(session_id, GET, 'screenshot')
+  if request:
+    with open(filename, 'w') as f:
+      f.write(binascii.a2b_base64(request['value']))
+      f.close()
+
+
+def GetActiveElement(session_id):
+  return SessionRequest(session_id, POST, 'element/active')['value']
+
+
+def Moveto(session_id, element, xoffset, yoffset):
+  return SessionRequest(session_id, POST, 'moveto', {
+      u'element': element,
+      u'xoffset': xoffset,
+      u'yoffset': yoffset
+  })
+
+
+def Click(session_id, button):
+  return SessionRequest(session_id, POST, 'click', {u'button': button})
+
+
+def Buttondown(session_id, button):
+  return SessionRequest(session_id, POST, 'buttondown', {u'button': button})
+
+
+def Buttonup(session_id, button):
+  return SessionRequest(session_id, POST, 'buttonup', {u'button': button})
+
+
+def ElementName(session_id, element_id):
+  return ElementRequest(session_id, element_id, GET, 'name')
+
+
+def ElementText(session_id, element_id):
+  return ElementRequest(session_id, element_id, GET, 'text')
+
+
+def ElementClick(session_id, element_id, button):
+  return ElementRequest(session_id, element_id, POST, 'click',
+                        {u'button': button})
+
+
+def ElementKeys(session_id, element_id, keys):
+  return ElementRequest(session_id, element_id, POST, 'value', {u'value': keys})
+
+
+def ElementFind(session_id, using, value):
+  return SessionRequest(session_id, POST, 'element',
+                        {u'using': using,
+                         u'value': value})['value']
+
+
+def MouseTest():
+  # Do a simple test that hovers the mouse to the right from the active
+  # element, then clicks on the element of class 'trending'.
+  session_id = GetSessionID()
+  active_element = GetActiveElement(session_id)
+  print 'active_element : %s' % active_element
+
+  for xoffset in range(0, 1900, 20):
+    print 'Moveto: %s' % Moveto(session_id, active_element, xoffset, 200)
+    time.sleep(0.05)
+
+  trending_element = ElementFind(session_id, 'class name', 'trending')
+  print 'trending_element : %s' % trending_element
+
+  print 'ElementClick: %s' % ElementClick(session_id, trending_element, 0)
+
+  DeleteSession(session_id)
+
+
+def main():
+  MouseTest()
+
+
+if __name__ == '__main__':
+  main()
diff --git a/src/cobalt/webdriver/web_driver_module.cc b/src/cobalt/webdriver/web_driver_module.cc
index daec972..fbb6259 100644
--- a/src/cobalt/webdriver/web_driver_module.cc
+++ b/src/cobalt/webdriver/web_driver_module.cc
@@ -341,6 +341,26 @@
       StringPrintf("/session/%s/cookie", kSessionIdVariable),
       current_window_command_factory->GetCommandHandler(
           base::Bind(&WindowDriver::AddCookie)));
+  webdriver_dispatcher_->RegisterCommand(
+      WebDriverServer::kPost,
+      StringPrintf("/session/%s/moveto", kSessionIdVariable),
+      current_window_command_factory->GetCommandHandler(
+          base::Bind(&WindowDriver::MouseMoveTo)));
+  webdriver_dispatcher_->RegisterCommand(
+      WebDriverServer::kPost,
+      StringPrintf("/session/%s/buttondown", kSessionIdVariable),
+      current_window_command_factory->GetCommandHandler(
+          base::Bind(&WindowDriver::MouseButtonDown)));
+  webdriver_dispatcher_->RegisterCommand(
+      WebDriverServer::kPost,
+      StringPrintf("/session/%s/buttonup", kSessionIdVariable),
+      current_window_command_factory->GetCommandHandler(
+          base::Bind(&WindowDriver::MouseButtonUp)));
+  webdriver_dispatcher_->RegisterCommand(
+      WebDriverServer::kPost,
+      StringPrintf("/session/%s/click", kSessionIdVariable),
+      current_window_command_factory->GetCommandHandler(
+          base::Bind(&WindowDriver::SendClick)));
 
   // Element commands.
   webdriver_dispatcher_->RegisterCommand(
@@ -374,6 +394,12 @@
       element_command_factory->GetCommandHandler(
           base::Bind(&ElementDriver::FindElements)));
   webdriver_dispatcher_->RegisterCommand(
+      WebDriverServer::kPost,
+      StringPrintf("/session/%s/element/%s/click", kSessionIdVariable,
+                   kElementId),
+      element_command_factory->GetCommandHandler(
+          base::Bind(&ElementDriver::SendClick)));
+  webdriver_dispatcher_->RegisterCommand(
       WebDriverServer::kGet,
       StringPrintf("/session/%s/element/%s/equals/%s", kSessionIdVariable,
                    kElementId, kOtherElementId),
@@ -411,14 +437,14 @@
   webdriver_thread_.message_loop()->PostTask(
       FROM_HERE, base::Bind(&WebDriverModule::StartServer,
                             base::Unretained(this), server_port, listen_ip));
-}
+}  // NOLINT(readability/fn_size)
 
 WebDriverModule::~WebDriverModule() {
   webdriver_thread_.message_loop()->PostTask(
       FROM_HERE, base::Bind(&WebDriverModule::StopServer,
                             base::Unretained(this)));
   webdriver_thread_.Stop();
-}
+}  // NOLINT(readability/fn_size)
 
 void WebDriverModule::OnWindowRecreated() {
   if (MessageLoop::current() != webdriver_thread_.message_loop()) {
diff --git a/src/cobalt/webdriver/web_driver_module.h b/src/cobalt/webdriver/web_driver_module.h
index 28e946b..d2bef0d 100644
--- a/src/cobalt/webdriver/web_driver_module.h
+++ b/src/cobalt/webdriver/web_driver_module.h
@@ -22,8 +22,10 @@
 #include "base/memory/scoped_ptr.h"
 #include "base/threading/thread_checker.h"
 #include "cobalt/webdriver/dispatcher.h"
+#include "cobalt/webdriver/protocol/button.h"
 #include "cobalt/webdriver/protocol/capabilities.h"
 #include "cobalt/webdriver/protocol/element_id.h"
+#include "cobalt/webdriver/protocol/moveto.h"
 #include "cobalt/webdriver/protocol/server_status.h"
 #include "cobalt/webdriver/protocol/session_id.h"
 #include "cobalt/webdriver/protocol/window_id.h"
diff --git a/src/cobalt/webdriver/webdriver.gyp b/src/cobalt/webdriver/webdriver.gyp
index 73cfe7d..6408c48 100644
--- a/src/cobalt/webdriver/webdriver.gyp
+++ b/src/cobalt/webdriver/webdriver.gyp
@@ -30,6 +30,8 @@
             'element_driver.h',
             'keyboard.cc',
             'keyboard.h',
+            'protocol/button.cc',
+            'protocol/button.h',
             'protocol/capabilities.cc',
             'protocol/capabilities.h',
             'protocol/cookie.h',
@@ -46,6 +48,8 @@
             'protocol/log_entry.h',
             'protocol/log_type.cc',
             'protocol/log_type.h',
+            'protocol/moveto.cc',
+            'protocol/moveto.h',
             'protocol/response.cc',
             'protocol/response.h',
             'protocol/search_strategy.cc',
diff --git a/src/cobalt/webdriver/window_driver.cc b/src/cobalt/webdriver/window_driver.cc
index 45fcfc2..5101204 100644
--- a/src/cobalt/webdriver/window_driver.cc
+++ b/src/cobalt/webdriver/window_driver.cc
@@ -18,7 +18,11 @@
 
 #include "base/synchronization/waitable_event.h"
 #include "cobalt/dom/document.h"
+#include "cobalt/dom/dom_rect.h"
 #include "cobalt/dom/location.h"
+#include "cobalt/dom/pointer_event.h"
+#include "cobalt/dom/pointer_event_init.h"
+#include "cobalt/math/clamp.h"
 #include "cobalt/script/global_environment.h"
 #include "cobalt/webdriver/keyboard.h"
 #include "cobalt/webdriver/search.h"
@@ -28,6 +32,8 @@
 namespace webdriver {
 namespace {
 
+const int kWebDriverMousePointerId = 0x12345678;
+
 class SyncExecuteResultHandler : public ScriptExecutorResult::ResultHandler {
  public:
   void OnResult(const std::string& result) OVERRIDE {
@@ -110,17 +116,18 @@
     const GetGlobalEnvironmentFunction& get_global_environment_function,
     KeyboardEventInjector keyboard_event_injector,
     PointerEventInjector pointer_event_injector,
-    WheelEventInjector wheel_event_injector,
     const scoped_refptr<base::MessageLoopProxy>& message_loop)
     : window_id_(window_id),
       window_(window),
       get_global_environment_(get_global_environment_function),
       keyboard_event_injector_(keyboard_event_injector),
       pointer_event_injector_(pointer_event_injector),
-      wheel_event_injector_(wheel_event_injector),
       window_message_loop_(message_loop),
       element_driver_map_deleter_(&element_drivers_),
-      next_element_id_(0) {
+      next_element_id_(0),
+      pointer_buttons_(0),
+      pointer_x_(0),
+      pointer_y_(0) {
   // The WindowDriver may have been created on some arbitrary thread (i.e. the
   // thread that owns the Window). Detach the thread checker so it can be
   // re-bound to the next thread that calls a webdriver API, which should be
@@ -338,6 +345,44 @@
                                  protocol::Response::kNoSuchWindow);
 }
 
+util::CommandResult<void> WindowDriver::MouseMoveTo(
+    const protocol::Moveto& moveto) {
+  DCHECK(thread_checker_.CalledOnValidThread());
+  return util::CallOnMessageLoop(window_message_loop_,
+                                 base::Bind(&WindowDriver::MouseMoveToInternal,
+                                            base::Unretained(this), moveto),
+                                 protocol::Response::kNoSuchWindow);
+}
+
+util::CommandResult<void> WindowDriver::MouseButtonDown(
+    const protocol::Button& button) {
+  DCHECK(thread_checker_.CalledOnValidThread());
+  return util::CallOnMessageLoop(
+      window_message_loop_,
+      base::Bind(&WindowDriver::MouseButtonDownInternal, base::Unretained(this),
+                 button),
+      protocol::Response::kNoSuchWindow);
+}
+
+util::CommandResult<void> WindowDriver::MouseButtonUp(
+    const protocol::Button& button) {
+  DCHECK(thread_checker_.CalledOnValidThread());
+  return util::CallOnMessageLoop(
+      window_message_loop_,
+      base::Bind(&WindowDriver::MouseButtonUpInternal, base::Unretained(this),
+                 button),
+      protocol::Response::kNoSuchWindow);
+}
+
+util::CommandResult<void> WindowDriver::SendClick(
+    const protocol::Button& button) {
+  DCHECK(thread_checker_.CalledOnValidThread());
+  return util::CallOnMessageLoop(window_message_loop_,
+                                 base::Bind(&WindowDriver::SendClickInternal,
+                                            base::Unretained(this), button),
+                                 protocol::Response::kNoSuchWindow);
+}
+
 protocol::ElementId WindowDriver::ElementToId(
     const scoped_refptr<dom::Element>& element) {
   DCHECK_EQ(base::MessageLoopProxy::current(), window_message_loop_);
@@ -360,8 +405,10 @@
       element_drivers_.insert(std::make_pair(
           element_id.id(),
           new ElementDriver(element_id, weak_element, this,
-                            keyboard_event_injector_, pointer_event_injector_,
-                            wheel_event_injector_, window_message_loop_)));
+                            keyboard_event_injector_,
+                            base::Bind(&WindowDriver::InjectPointerEvent,
+                                       base::Unretained(this)),
+                            window_message_loop_)));
   DCHECK(pair_it.second)
       << "An ElementDriver was already mapped to the element id: "
       << element_id.id();
@@ -473,6 +520,172 @@
   return CommandResult(protocol::Response::kSuccess);
 }
 
+void WindowDriver::InitPointerEvent(dom::PointerEventInit* event) {
+  event->set_buttons(pointer_buttons_);
+
+  event->set_screen_x(pointer_x_);
+  event->set_screen_y(pointer_y_);
+  event->set_client_x(pointer_x_);
+  event->set_client_y(pointer_y_);
+
+  event->set_pointer_type("mouse");
+  event->set_pointer_id(kWebDriverMousePointerId);
+#if SB_API_VERSION >= SB_POINTER_INPUT_API_VERSION
+  event->set_width(0.0f);
+  event->set_height(0.0f);
+  event->set_pressure(pointer_buttons_ ? 0.5f : 0.0f);
+  event->set_tilt_x(0.0f);
+  event->set_tilt_y(0.0f);
+#endif
+  event->set_is_primary(true);
+}
+
+void WindowDriver::InjectPointerEvent(scoped_refptr<dom::Element> element,
+                                      base::Token type,
+                                      const dom::PointerEventInit& event) {
+  pointer_x_ = event.screen_x();
+  pointer_y_ = event.screen_y();
+  pointer_event_injector_.Run(element, type, event);
+}
+
+util::CommandResult<void> WindowDriver::MouseMoveToInternal(
+    const protocol::Moveto& moveto) {
+  typedef util::CommandResult<void> CommandResult;
+  DCHECK_EQ(base::MessageLoopProxy::current(), window_message_loop_);
+  if (!window_) {
+    return CommandResult(protocol::Response::kNoSuchWindow);
+  }
+
+  // Move the mouse by an offset of the specified element. If no element is
+  // specified, the move is relative to the current mouse cursor. If an element
+  // is provided but no offset, the mouse will be moved to the center of the
+  // element.
+  //   https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidmoveto
+  float x = 0;
+  float y = 0;
+  scoped_refptr<dom::Element> element;
+  const base::optional<protocol::ElementId>& element_id = moveto.element();
+  if (element_id) {
+    // The element to move to.
+    element = IdToElement(*element_id);
+  }
+  if (element) {
+    scoped_refptr<dom::DOMRect> rect = element->GetBoundingClientRect();
+    if (rect) {
+      if (moveto.xoffset()) {
+        // X offset to move to, relative to the top-left corner of the element.
+        x = rect->left() + *moveto.xoffset();
+      } else {
+        // If not specified, the mouse will move to the middle of the element.
+        x = rect->left() + rect->width() / 2;
+      }
+
+      if (moveto.yoffset()) {
+        // Y offset to move to, relative to the top-left corner of the element.
+        y = rect->top() + *moveto.yoffset();
+      } else {
+        // If not specified, the mouse will move to the middle of the element.
+        y = rect->top() + rect->height() / 2;
+      }
+    }
+  } else {
+    // If the element not specified or is null, the offset is relative to
+    // current position of the mouse.
+    x = pointer_x_;
+    y = pointer_y_;
+    if (moveto.xoffset()) {
+      x += *moveto.xoffset();
+    }
+    if (moveto.yoffset()) {
+      y += *moveto.yoffset();
+    }
+  }
+
+  pointer_x_ = math::Clamp(x, 0.0f, GetWeak()->inner_width());
+  pointer_y_ = math::Clamp(y, 0.0f, GetWeak()->inner_height());
+
+  dom::PointerEventInit event;
+  InitPointerEvent(&event);
+  pointer_event_injector_.Run(scoped_refptr<dom::Element>(),
+                              base::Tokens::pointermove(), event);
+
+  return CommandResult(protocol::Response::kSuccess);
+}
+
+void WindowDriver::InjectMouseButtonUp(const protocol::Button& button) {
+  dom::PointerEventInit event;
+  event.set_button(button.button());
+
+  // The buttons attribute reflects the state of the mouse's buttons for any
+  // MouseEvent object (while it is being dispatched).
+  //   https://www.w3.org/TR/2016/WD-uievents-20160804/#ref-for-dom-mouseevent-buttons-2
+  // Clear the buttons state bit corresponding to the button that has just been
+  // released.
+  pointer_buttons_ &= ~(1 << event.button());
+
+  InitPointerEvent(&event);
+
+  pointer_event_injector_.Run(scoped_refptr<dom::Element>(),
+                              base::Tokens::pointerup(), event);
+}
+
+void WindowDriver::InjectMouseButtonDown(const protocol::Button& button) {
+  dom::PointerEventInit event;
+  event.set_button(button.button());
+
+  // The buttons attribute reflects the state of the mouse's buttons for any
+  // MouseEvent object (while it is being dispatched).
+  //   https://www.w3.org/TR/2016/WD-uievents-20160804/#ref-for-dom-mouseevent-buttons-2
+  // Set the buttons state bit corresponding to the button that has just been
+  // pressed.
+  pointer_buttons_ |= 1 << event.button();
+
+  InitPointerEvent(&event);
+
+  pointer_event_injector_.Run(scoped_refptr<dom::Element>(),
+                              base::Tokens::pointerdown(), event);
+}
+
+util::CommandResult<void> WindowDriver::MouseButtonDownInternal(
+    const protocol::Button& button) {
+  typedef util::CommandResult<void> CommandResult;
+  DCHECK_EQ(base::MessageLoopProxy::current(), window_message_loop_);
+  if (!window_) {
+    return CommandResult(protocol::Response::kNoSuchWindow);
+  }
+
+  InjectMouseButtonDown(button);
+
+  return CommandResult(protocol::Response::kSuccess);
+}
+
+util::CommandResult<void> WindowDriver::MouseButtonUpInternal(
+    const protocol::Button& button) {
+  typedef util::CommandResult<void> CommandResult;
+  DCHECK_EQ(base::MessageLoopProxy::current(), window_message_loop_);
+  if (!window_) {
+    return CommandResult(protocol::Response::kNoSuchWindow);
+  }
+
+  InjectMouseButtonUp(button);
+
+  return CommandResult(protocol::Response::kSuccess);
+}
+
+util::CommandResult<void> WindowDriver::SendClickInternal(
+    const protocol::Button& button) {
+  typedef util::CommandResult<void> CommandResult;
+  DCHECK_EQ(base::MessageLoopProxy::current(), window_message_loop_);
+  if (!window_) {
+    return CommandResult(protocol::Response::kNoSuchWindow);
+  }
+
+  InjectMouseButtonDown(button);
+  InjectMouseButtonUp(button);
+
+  return CommandResult(protocol::Response::kSuccess);
+}
+
 util::CommandResult<protocol::ElementId>
 WindowDriver::GetActiveElementInternal() {
   typedef util::CommandResult<protocol::ElementId> CommandResult;
diff --git a/src/cobalt/webdriver/window_driver.h b/src/cobalt/webdriver/window_driver.h
index 3e2b47c..baba5a5 100644
--- a/src/cobalt/webdriver/window_driver.h
+++ b/src/cobalt/webdriver/window_driver.h
@@ -30,14 +30,17 @@
 #include "base/threading/thread_checker.h"
 #include "cobalt/dom/keyboard_event.h"
 #include "cobalt/dom/pointer_event.h"
-#include "cobalt/dom/wheel_event.h"
+#include "cobalt/dom/pointer_event_init.h"
 #include "cobalt/dom/window.h"
 #include "cobalt/webdriver/element_driver.h"
 #include "cobalt/webdriver/element_mapping.h"
 #include "cobalt/webdriver/keyboard.h"
+#include "cobalt/webdriver/protocol/button.h"
 #include "cobalt/webdriver/protocol/cookie.h"
+#include "cobalt/webdriver/protocol/element_id.h"
 #include "cobalt/webdriver/protocol/frame_id.h"
 #include "cobalt/webdriver/protocol/keys.h"
+#include "cobalt/webdriver/protocol/moveto.h"
 #include "cobalt/webdriver/protocol/script.h"
 #include "cobalt/webdriver/protocol/search_strategy.h"
 #include "cobalt/webdriver/protocol/size.h"
@@ -61,9 +64,6 @@
   typedef base::Callback<void(scoped_refptr<dom::Element>, const base::Token,
                               const dom::PointerEventInit&)>
       PointerEventInjector;
-  typedef base::Callback<void(scoped_refptr<dom::Element>, const base::Token,
-                              const dom::WheelEventInit&)>
-      WheelEventInjector;
 
   typedef base::Callback<scoped_refptr<script::GlobalEnvironment>()>
       GetGlobalEnvironmentFunction;
@@ -72,7 +72,6 @@
                const GetGlobalEnvironmentFunction& get_global_environment,
                KeyboardEventInjector keyboard_event_injector,
                PointerEventInjector pointer_event_injector,
-               WheelEventInjector wheel_event_injector,
                const scoped_refptr<base::MessageLoopProxy>& message_loop);
   ~WindowDriver();
   const protocol::WindowId& window_id() { return window_id_; }
@@ -100,6 +99,10 @@
   util::CommandResult<std::vector<protocol::Cookie> > GetCookie(
       const std::string& name);
   util::CommandResult<void> AddCookie(const protocol::Cookie& cookie);
+  util::CommandResult<void> MouseMoveTo(const protocol::Moveto& moveto);
+  util::CommandResult<void> MouseButtonDown(const protocol::Button& button);
+  util::CommandResult<void> MouseButtonUp(const protocol::Button& button);
+  util::CommandResult<void> SendClick(const protocol::Button& button);
 
  private:
   typedef base::hash_map<std::string, ElementDriver*> ElementDriverMap;
@@ -139,6 +142,27 @@
 
   util::CommandResult<void> AddCookieInternal(const protocol::Cookie& cookie);
 
+  void InitPointerEvent(dom::PointerEventInit* event);
+
+  // Used to receive pointer positions from events injected from an
+  // ElementDriver.
+  void InjectPointerEvent(scoped_refptr<dom::Element> element, base::Token type,
+                          const dom::PointerEventInit& event);
+
+  util::CommandResult<void> MouseMoveToInternal(const protocol::Moveto& moveto);
+
+  void InjectMouseButtonUp(const protocol::Button& button);
+
+  void InjectMouseButtonDown(const protocol::Button& button);
+
+  util::CommandResult<void> MouseButtonDownInternal(
+      const protocol::Button& button);
+
+  util::CommandResult<void> MouseButtonUpInternal(
+      const protocol::Button& button);
+
+  util::CommandResult<void> SendClickInternal(const protocol::Button& button);
+
   util::CommandResult<protocol::ElementId> GetActiveElementInternal();
 
   const protocol::WindowId window_id_;
@@ -148,7 +172,6 @@
 
   KeyboardEventInjector keyboard_event_injector_;
   PointerEventInjector pointer_event_injector_;
-  WheelEventInjector wheel_event_injector_;
 
   // Anything that interacts with the window must be run on this message loop.
   scoped_refptr<base::MessageLoopProxy> window_message_loop_;
@@ -175,6 +198,10 @@
 
   // Monotonically increasing number to provide unique element ids.
   int32 next_element_id_;
+
+  int pointer_buttons_;
+  float pointer_x_;
+  float pointer_y_;
 };
 
 }  // namespace webdriver
diff --git a/src/cobalt/xhr/xml_http_request.cc b/src/cobalt/xhr/xml_http_request.cc
index 4c2e893..7599751 100644
--- a/src/cobalt/xhr/xml_http_request.cc
+++ b/src/cobalt/xhr/xml_http_request.cc
@@ -82,7 +82,7 @@
   return true;
 }
 
-#if !defined(__LB_SHELL__FOR_RELEASE__)
+#if !defined(COBALT_BUILD_TYPE_GOLD)
 const char* kStateNames[] = {"Unsent", "Opened", "HeadersReceived", "Loading",
                              "Done"};
 const char* kMethodNames[] = {"GET", "POST", "HEAD", "DELETE", "PUT"};
@@ -104,7 +104,7 @@
     return "";
   }
 }
-#endif  // defined(__LB_SHELL__FOR_RELEASE__)
+#endif  // defined(COBALT_BUILD_TYPE_GOLD)
 
 bool IsForbiddenMethod(const std::string& method) {
   for (size_t i = 0; i < arraysize(kForbiddenMethods); ++i) {
@@ -932,7 +932,7 @@
 }
 
 std::ostream& operator<<(std::ostream& out, const XMLHttpRequest& xhr) {
-#if !defined(__LB_SHELL__FOR_RELEASE__)
+#if !defined(COBALT_BUILD_TYPE_GOLD)
   base::StringPiece response_text("");
   if ((xhr.state_ == XMLHttpRequest::kDone) &&
       (xhr.response_type_ == XMLHttpRequest::kDefault ||
diff --git a/src/net/dial/dial_http_server.cc b/src/net/dial/dial_http_server.cc
index 482d27d..3dde86f 100644
--- a/src/net/dial/dial_http_server.cc
+++ b/src/net/dial/dial_http_server.cc
@@ -140,7 +140,7 @@
 void DialHttpServer::SendDeviceDescriptionManifest(int conn_id) {
   DCHECK_EQ(message_loop_proxy_, base::MessageLoopProxy::current());
   DialSystemConfig* system_config = DialSystemConfig::GetInstance();
-#if defined(__LB_SHELL__FOR_RELEASE__)
+#if defined(COBALT_BUILD_TYPE_GOLD)
   const char* friendly_name = system_config->friendly_name();
 #else
   // For non-Gold builds, append the IP to the friendly name
diff --git a/src/net/url_request/url_request_context.cc b/src/net/url_request/url_request_context.cc
index 7dd2bb3..e090ded 100644
--- a/src/net/url_request/url_request_context.cc
+++ b/src/net/url_request/url_request_context.cc
@@ -40,7 +40,7 @@
 }
 
 URLRequestContext::~URLRequestContext() {
-#if !defined(__LB_SHELL__FOR_RELEASE__)
+#if !defined(COBALT_BUILD_TYPE_GOLD)
   AssertNoURLRequests();
 #endif
 }
diff --git a/src/starboard/linux/x64x11/directgles/atomic_public.h b/src/starboard/linux/x64x11/directgles/atomic_public.h
deleted file mode 100644
index 7bd6e3b..0000000
--- a/src/starboard/linux/x64x11/directgles/atomic_public.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef STARBOARD_LINUX_X64X11_DIRECTGLES_ATOMIC_PUBLIC_H_
-#define STARBOARD_LINUX_X64X11_DIRECTGLES_ATOMIC_PUBLIC_H_
-
-#include "starboard/linux/shared/atomic_public.h"
-
-#endif  // STARBOARD_LINUX_X64X11_DIRECTGLES_ATOMIC_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/directgles/configuration_public.h b/src/starboard/linux/x64x11/directgles/configuration_public.h
deleted file mode 100644
index 0158690..0000000
--- a/src/starboard/linux/x64x11/directgles/configuration_public.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// The Starboard configuration for Desktop X86 Linux configured for the future
-// starboard API.
-
-#ifndef STARBOARD_LINUX_X64X11_DIRECTGLES_CONFIGURATION_PUBLIC_H_
-#define STARBOARD_LINUX_X64X11_DIRECTGLES_CONFIGURATION_PUBLIC_H_
-
-// This is not a released configuration, so it should implement the
-// experimental API version to validate trunk's viability.
-#define SB_API_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Include the X64X11 Linux configuration.
-#include "starboard/linux/x64x11/configuration_public.h"
-
-#endif  // STARBOARD_LINUX_X64X11_DIRECTGLES_CONFIGURATION_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/directgles/gyp_configuration.gypi b/src/starboard/linux/x64x11/directgles/gyp_configuration.gypi
deleted file mode 100644
index 09f46da..0000000
--- a/src/starboard/linux/x64x11/directgles/gyp_configuration.gypi
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-{
-  'variables': {
-    # Use the direct-to-GLES rasterizer.
-    'rasterizer_type': 'direct-gles',
-
-    # The rasterizer does not benefit much from rendering only the dirty
-    # region. Disable this option since it costs GPU time.
-    'render_dirty_region_only': 0,
-  },
-  'target_defaults': {
-    'default_configuration': 'linux-x64x11-directgles_debug',
-    'configurations': {
-      'linux-x64x11-directgles_debug': {
-        'inherit_from': ['debug_base'],
-      },
-      'linux-x64x11-directgles_devel': {
-        'inherit_from': ['devel_base'],
-      },
-      'linux-x64x11-directgles_qa': {
-        'inherit_from': ['qa_base'],
-      },
-      'linux-x64x11-directgles_gold': {
-        'inherit_from': ['gold_base'],
-      },
-    }, # end of configurations
-  },
-
-  'includes': [
-    '../gyp_configuration.gypi',
-  ],
-}
diff --git a/src/starboard/linux/x64x11/directgles/gyp_configuration.py b/src/starboard/linux/x64x11/directgles/gyp_configuration.py
deleted file mode 100644
index ca2ca64..0000000
--- a/src/starboard/linux/x64x11/directgles/gyp_configuration.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Starboard Linux X64 X11 future platform configuration for gyp_cobalt."""
-
-import logging
-
-# Import the shared Linux platform configuration.
-from starboard.linux.shared import gyp_configuration
-
-
-def CreatePlatformConfig():
-  try:
-    return gyp_configuration.PlatformConfig('linux-x64x11-directgles')
-  except RuntimeError as e:
-    logging.critical(e)
-    return None
diff --git a/src/starboard/linux/x64x11/directgles/starboard_platform.gyp b/src/starboard/linux/x64x11/directgles/starboard_platform.gyp
deleted file mode 100644
index 9a450cc..0000000
--- a/src/starboard/linux/x64x11/directgles/starboard_platform.gyp
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2016 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-{
-  'includes': [
-    '../starboard_platform.gypi'
-  ],
-  'targets': [
-    {
-      'target_name': 'starboard_platform',
-      'product_name': 'starboard_platform_future',
-      'type': 'static_library',
-      'sources': [
-        '<@(starboard_platform_sources)',
-      ],
-      'defines': [
-        # This must be defined when building Starboard, and must not when
-        # building Starboard client code.
-        'STARBOARD_IMPLEMENTATION',
-      ],
-      'dependencies': [
-        '<@(starboard_platform_dependencies)',
-      ],
-    },
-  ],
-}
diff --git a/src/starboard/linux/x64x11/directgles/thread_types_public.h b/src/starboard/linux/x64x11/directgles/thread_types_public.h
deleted file mode 100644
index 4809a57..0000000
--- a/src/starboard/linux/x64x11/directgles/thread_types_public.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef STARBOARD_LINUX_X64X11_DIRECTGLES_THREAD_TYPES_PUBLIC_H_
-#define STARBOARD_LINUX_X64X11_DIRECTGLES_THREAD_TYPES_PUBLIC_H_
-
-#include "starboard/linux/shared/thread_types_public.h"
-
-#endif  // STARBOARD_LINUX_X64X11_DIRECTGLES_THREAD_TYPES_PUBLIC_H_
diff --git a/src/starboard/log.h b/src/starboard/log.h
index bd0edef..b89afff 100644
--- a/src/starboard/log.h
+++ b/src/starboard/log.h
@@ -114,7 +114,7 @@
 }  // extern "C"
 #endif
 
-#if defined(__LB_SHELL__FOR_RELEASE__)
+#if defined(COBALT_BUILD_TYPE_GOLD)
 #define SB_LOGGING_IS_OFFICIAL_BUILD 1
 #else
 #define SB_LOGGING_IS_OFFICIAL_BUILD 0
diff --git a/src/starboard/raspi/2/directgles/atomic_public.h b/src/starboard/raspi/2/directgles/atomic_public.h
deleted file mode 100644
index d8c1445..0000000
--- a/src/starboard/raspi/2/directgles/atomic_public.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef STARBOARD_RASPI_2_DIRECTGLES_ATOMIC_PUBLIC_H_
-#define STARBOARD_RASPI_2_DIRECTGLES_ATOMIC_PUBLIC_H_
-
-#include "starboard/raspi/2/atomic_public.h"
-
-#endif  // STARBOARD_RASPI_2_DIRECTGLES_ATOMIC_PUBLIC_H_
diff --git a/src/starboard/raspi/2/directgles/configuration_public.h b/src/starboard/raspi/2/directgles/configuration_public.h
deleted file mode 100644
index 92b76a8..0000000
--- a/src/starboard/raspi/2/directgles/configuration_public.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// The Starboard configuration for Raspberry PI 2 Raspbian.
-
-// Other source files should never include this header directly, but should
-// include the generic "starboard/configuration.h" instead.
-
-#ifndef STARBOARD_RASPI_2_DIRECTGLES_CONFIGURATION_PUBLIC_H_
-#define STARBOARD_RASPI_2_DIRECTGLES_CONFIGURATION_PUBLIC_H_
-
-#include "starboard/raspi/2/configuration_public.h"
-
-#endif  // STARBOARD_RASPI_2_DIRECTGLES_CONFIGURATION_PUBLIC_H_
diff --git a/src/starboard/raspi/2/directgles/gyp_configuration.gypi b/src/starboard/raspi/2/directgles/gyp_configuration.gypi
deleted file mode 100644
index fdac07a..0000000
--- a/src/starboard/raspi/2/directgles/gyp_configuration.gypi
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 2017 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-{
-  'variables': {
-    # Use the direct-to-GLES rasterizer.
-    'rasterizer_type': 'direct-gles',
-
-    # The rasterizer does not benefit much from rendering only the dirty
-    # region. Disable this option since it costs GPU time.
-    'render_dirty_region_only': 0,
-  },
-
-  'target_defaults': {
-    'default_configuration': 'raspi-2-directgles_debug',
-    'configurations': {
-      'raspi-2-directgles_debug': {
-        'inherit_from': ['debug_base'],
-      },
-      'raspi-2-directgles_devel': {
-        'inherit_from': ['devel_base'],
-      },
-      'raspi-2-directgles_qa': {
-        'inherit_from': ['qa_base'],
-      },
-      'raspi-2-directgles_gold': {
-        'inherit_from': ['gold_base'],
-      },
-    }, # end of configurations
-  },
-
-  'includes': [
-    '../architecture.gypi',
-    '../../shared/gyp_configuration.gypi',
-  ],
-}
diff --git a/src/starboard/raspi/2/directgles/gyp_configuration.py b/src/starboard/raspi/2/directgles/gyp_configuration.py
deleted file mode 100644
index 172b1d2..0000000
--- a/src/starboard/raspi/2/directgles/gyp_configuration.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2017 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Starboard Raspberry Pi 2 platform configuration for gyp_cobalt."""
-
-import logging
-import os
-import sys
-
-_SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
-sys.path.insert(0, os.path.join(_SCRIPT_DIR, '../..'))
-
-# pylint: disable=g-import-not-at-top
-from shared.gyp_configuration import RaspiPlatformConfig
-
-
-def CreatePlatformConfig():
-  try:
-    return RaspiPlatformConfig('raspi-2-directgles')
-  except RuntimeError as e:
-    logging.critical(e)
-    return None
diff --git a/src/starboard/raspi/2/directgles/starboard_platform.gyp b/src/starboard/raspi/2/directgles/starboard_platform.gyp
deleted file mode 100644
index a304ac6..0000000
--- a/src/starboard/raspi/2/directgles/starboard_platform.gyp
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2017 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-{
-  'includes': [
-    '../../shared/starboard_platform.gypi',
-  ],
-}
diff --git a/src/starboard/raspi/2/directgles/thread_types_public.h b/src/starboard/raspi/2/directgles/thread_types_public.h
deleted file mode 100644
index 8e76ba5..0000000
--- a/src/starboard/raspi/2/directgles/thread_types_public.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2017 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef STARBOARD_RASPI_2_DIRECTGLES_THREAD_TYPES_PUBLIC_H_
-#define STARBOARD_RASPI_2_DIRECTGLES_THREAD_TYPES_PUBLIC_H_
-
-#include "starboard/raspi/2/thread_types_public.h"
-
-#endif  // STARBOARD_RASPI_2_DIRECTGLES_THREAD_TYPES_PUBLIC_H_
diff --git a/src/starboard/shared/linux/socket_get_interface_address.cc b/src/starboard/shared/linux/socket_get_interface_address.cc
index 36f59bd..3a607d5 100644
--- a/src/starboard/shared/linux/socket_get_interface_address.cc
+++ b/src/starboard/shared/linux/socket_get_interface_address.cc
@@ -14,11 +14,21 @@
 
 #include "starboard/socket.h"
 
+// linux/if.h assumes the symbols for structs defined in ifaddrs.h are
+// already present. These includes must be above <linux/if.h> below.
 #include <arpa/inet.h>
 #include <ifaddrs.h>
+
+#if SB_HAS_QUIRK(SOCKET_BSD_HEADERS)
+#include <errno.h>
+#include <net/if.h>
+#include <net/if_dl.h>
+#else
 #include <linux/if.h>
 #include <linux/if_addr.h>
 #include <netdb.h>
+#endif
+
 #include <netinet/in.h>
 #include <string.h>
 #include <sys/socket.h>
diff --git a/src/starboard/shared/starboard/player/filter/video_dmp_reader.cc b/src/starboard/shared/starboard/player/filter/video_dmp_reader.cc
new file mode 100644
index 0000000..2566b74
--- /dev/null
+++ b/src/starboard/shared/starboard/player/filter/video_dmp_reader.cc
@@ -0,0 +1,139 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file is deliberately not using any Cobalt/Starboard specific API so it
+// can be used in an independent application.
+#include "cobalt/media/base/video_dmp_reader.h"
+
+#include <algorithm>
+
+namespace {
+
+template <typename T>
+bool ReadUnchecked(VideoDmpReader* reader, bool reverse_byte_order, T* value) {
+  if (!value) {
+    reader->ReportFatalError();
+    return false;
+  }
+
+  int bytes_to_read = static_cast<int>(sizeof(*value));
+  int bytes_read = reader->Read(value, bytes_to_read);
+
+  if (reverse_byte_order) {
+    std::reverse(reinterpret_cast<uint8_t*>(value),
+                 reinterpret_cast<uint8_t*>(value + 1));
+  }
+
+  return bytes_to_read == bytes_read;
+}
+template <typename T>
+void ReadChecked(VideoDmpReader* reader, bool reverse_byte_order, T* value) {
+  if (!ReadUnchecked(reader, reverse_byte_order, value)) {
+    reader->ReportFatalError();
+  }
+}
+void ReadChecked(VideoDmpReader* reader, bool reverse_byte_order,
+                 std::vector<uint8_t>* value) {
+  if (!value) {
+    reader->ReportFatalError();
+  }
+
+  uint32_t size;
+  ReadChecked(reader, reverse_byte_order, &size);
+
+  value->resize(size);
+
+  if (size == 0) {
+    return;
+  }
+
+  int bytes_read = reader->Read(value->data(), size);
+  if (bytes_read != size) {
+    reader->ReportFatalError();
+  }
+}
+
+VideoDmpReader::AccessUnit ReadAccessUnitChecked(
+    VideoDmpReader* reader, bool reverse_byte_order,
+    VideoDmpReader::AccessUnitType access_unit_type) {
+  int64_t timestamp;
+  ReadChecked(reader, reverse_byte_order, &timestamp);
+
+  std::vector<uint8_t> key_id, iv;
+  ReadChecked(reader, reverse_byte_order, &key_id);
+  ReadChecked(reader, reverse_byte_order, &iv);
+
+  uint32_t subsample_count;
+  ReadChecked(reader, reverse_byte_order, &subsample_count);
+
+  VideoDmpReader::Subsamples subsamples(subsample_count);
+  for (auto& subsample : subsamples) {
+    ReadChecked(reader, reverse_byte_order, &subsample.clear_bytes);
+    ReadChecked(reader, reverse_byte_order, &subsample.encrypted_bytes);
+  }
+
+  std::vector<uint8_t> data;
+  ReadChecked(reader, reverse_byte_order, &data);
+
+  return VideoDmpReader::AccessUnit(access_unit_type, timestamp, key_id, iv,
+                                    subsamples, std::move(data));
+}
+
+}  // namespace
+
+void VideoDmpReader::Parse() {
+  reverse_byte_order_ = false;
+  uint32_t bom;
+  ReadChecked(this, reverse_byte_order_, &bom);
+  if (bom != kBOM) {
+    std::reverse(reinterpret_cast<uint8_t*>(&bom),
+                 reinterpret_cast<uint8_t*>(&bom + 1));
+    if (bom != kBOM) {
+      ReportFatalError();
+      return;
+    }
+    reverse_byte_order_ = true;
+  }
+  uint32_t type;
+  EmeInitData eme_init_data;
+  while (ReadUnchecked(this, reverse_byte_order_, &type)) {
+    uint32_t size;
+    switch (type) {
+      case kRecordTypeAudioConfig:
+        ReadChecked(this, reverse_byte_order_, &size);
+        if (size != 0) {
+          ReportFatalError();
+        }
+        break;
+      case kRecordTypeVideoConfig:
+        ReadChecked(this, reverse_byte_order_, &size);
+        if (size != 0) {
+          ReportFatalError();
+        }
+        break;
+      case kRecordTypeEmeInitData:
+        ReadChecked(this, reverse_byte_order_, &eme_init_data);
+        eme_init_datas_.push_back(eme_init_data);
+        break;
+      case kRecordTypeAudioAccessUnit:
+        access_units_.push_back(ReadAccessUnitChecked(this, reverse_byte_order_,
+                                                      kAccessUnitTypeAudio));
+        break;
+      case kRecordTypeVideoAccessUnit:
+        access_units_.push_back(ReadAccessUnitChecked(this, reverse_byte_order_,
+                                                      kAccessUnitTypeVideo));
+        break;
+    }
+  }
+}
diff --git a/src/starboard/shared/starboard/player/filter/video_dmp_reader.h b/src/starboard/shared/starboard/player/filter/video_dmp_reader.h
new file mode 100644
index 0000000..6cd4486
--- /dev/null
+++ b/src/starboard/shared/starboard/player/filter/video_dmp_reader.h
@@ -0,0 +1,129 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// TODO: Move this into Starboard
+
+// This file is deliberately not using any Cobalt/Starboard specific API so it
+// can be used in an independent application.
+#ifndef COBALT_MEDIA_BASE_VIDEO_DMP_READER_H_
+#define COBALT_MEDIA_BASE_VIDEO_DMP_READER_H_
+
+#include <string>
+#include <vector>
+
+// File: <BOM> <Record>*
+//   BOM: 0x76543210
+//   Record: <4 bytes fourcc type> + <4 bytes size> + <|size| bytes binary data>
+//
+//     audio config:
+//       fourcc type: 'acfg'
+//       2 bytes audio codec type in SbMediaAudioCodec
+//       2 bytes format_tag
+//       2 bytes number_of_channels
+//       4 bytes samples_per_second
+//       4 bytes average_bytes_per_second
+//       2 bytes block_alignment
+//       2 bytes bits_per_sample
+//       2 bytes audio_specific_config_size
+//       |audio_specific_config_size| bytes audio specific config
+//
+//     video config:
+//       fourcc type: 'vcfg'
+//       2 bytes video codec type in SbMediaVideoCodec
+//
+//     eme init data
+//       fourcc type: 'emei'
+//       4 bytes size
+//         |size| bytes eme init data
+//     audio/video access unit;
+//       fourcc type: 'adat'/'vdat'
+//       <8 bytes time stamp in microseconds>
+//       <4 bytes size of key_id> + |size| bytes of key id
+//       <4 bytes size of iv> + |size| bytes of iv
+//       <4 bytes count> (0 for non-encrypted AU/frame)
+//         (subsample: 4 bytes clear size, 4 bytes encrypted size) * |count|
+//       <4 bytes size>
+//         |size| bytes encoded binary data
+class VideoDmpReader {
+ public:
+  enum {
+    kRecordTypeAudioConfig = 'acfg',
+    kRecordTypeVideoConfig = 'vcfg',
+    kRecordTypeEmeInitData = 'emei',
+    kRecordTypeAudioAccessUnit = 'adat',
+    kRecordTypeVideoAccessUnit = 'vdat',
+  };
+
+  enum AccessUnitType { kAccessUnitTypeAudio, kAccessUnitTypeVideo };
+
+  struct Subsample {
+    uint32_t clear_bytes;
+    uint32_t encrypted_bytes;
+  };
+
+  typedef std::vector<Subsample> Subsamples;
+  typedef std::vector<uint8_t> EmeInitData;
+
+  class AccessUnit {
+   public:
+    AccessUnit(AccessUnitType access_unit_type, int64_t timestamp,
+               const std::vector<uint8_t>& key_id,
+               const std::vector<uint8_t>& iv, const Subsamples& subsamples,
+               std::vector<uint8_t> data)
+        : access_unit_type_(access_unit_type),
+          timestamp_(timestamp),
+          key_id_(key_id),
+          iv_(iv),
+          subsamples_(subsamples),
+          data_(std::move(data)) {}
+    AccessUnitType access_unit_type() const { return access_unit_type_; }
+    int64_t timestamp() const { return timestamp_; }
+    // Returns empty vector when the AU is not encrypted.
+    const std::vector<uint8_t>& key_id() const { return key_id_; }
+    const std::vector<uint8_t>& iv() const { return iv_; }
+    const Subsamples& subsamples() const { return subsamples_; }
+    const std::vector<uint8_t> data() const { return data_; }
+
+   private:
+    AccessUnitType access_unit_type_;
+    int64_t timestamp_;
+    std::vector<uint8_t> key_id_;
+    std::vector<uint8_t> iv_;
+    Subsamples subsamples_;
+    std::vector<uint8_t> data_;
+  };
+
+  static const uint32_t kBOM = 0x76543210;
+
+  VideoDmpReader() : reverse_byte_order_(false) {}
+
+  // Abstract function implemented by the derived class to read data.  When
+  // the return value is less than |bytes_to_read|, the stream reaches the end.
+  virtual size_t Read(void* buffer, size_t bytes_to_read) = 0;
+  virtual void ReportFatalError() = 0;
+
+  const std::vector<EmeInitData> eme_init_datas() const {
+    return eme_init_datas_;
+  }
+  const std::vector<AccessUnit>& access_units() const { return access_units_; }
+
+  void Parse();
+
+ private:
+  bool reverse_byte_order_;
+  std::vector<EmeInitData> eme_init_datas_;
+  std::vector<AccessUnit> access_units_;
+};
+
+#endif  // COBALT_MEDIA_BASE_VIDEO_DMP_READER_H_
diff --git a/src/starboard/shared/uwp/window_create.cc b/src/starboard/shared/uwp/window_create.cc
index 9f9a0fa..2ca5590 100644
--- a/src/starboard/shared/uwp/window_create.cc
+++ b/src/starboard/shared/uwp/window_create.cc
@@ -17,6 +17,11 @@
 #include "starboard/shared/uwp/application_uwp.h"
 
 SbWindow SbWindowCreate(const SbWindowOptions* options) {
+  SbWindowOptions default_options;
+  if (options == nullptr) {
+    SbWindowSetDefaultOptions(&default_options);
+    options = &default_options;
+  }
   return starboard::shared::uwp::ApplicationUwp::Get()->CreateWindowForUWP(
       options);
 }
diff --git a/src/starboard/shared/uwp/window_internal.cc b/src/starboard/shared/uwp/window_internal.cc
index 5363628..fd79b8d 100644
--- a/src/starboard/shared/uwp/window_internal.cc
+++ b/src/starboard/shared/uwp/window_internal.cc
@@ -15,7 +15,6 @@
 #include <EGL/egl.h>
 #include <windows.h>
 
-// For __getActivationFactoryByPCWSTR custom definition.
 #include "starboard/shared/uwp/application_uwp.h"
 #include "starboard/shared/uwp/window_internal.h"
 
@@ -23,9 +22,9 @@
 
 // TODO: Make sure the width and height here behave well given that we want
 // 1080 video, but perhaps 4k UI where applicable.
-SbWindowPrivate::SbWindowPrivate(const SbWindowOptions* /*options*/)
-    : width(1920),
-      height(1080) {
+SbWindowPrivate::SbWindowPrivate(const SbWindowOptions* options)
+    : width(options->size.width),
+      height(options->size.height) {
   egl_native_window_ = reinterpret_cast<EGLNativeWindowType>(
       starboard::shared::uwp::ApplicationUwp::Get()->GetCoreWindow().Get());
 }
diff --git a/src/starboard/shared/uwp/window_set_default_options.cc b/src/starboard/shared/uwp/window_set_default_options.cc
index e7d13c6..38b5500 100644
--- a/src/starboard/shared/uwp/window_set_default_options.cc
+++ b/src/starboard/shared/uwp/window_set_default_options.cc
@@ -12,6 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+#include "starboard/memory.h"
 #include "starboard/window.h"
 
-void SbWindowSetDefaultOptions(SbWindowOptions* /*options*/) {}
+void SbWindowSetDefaultOptions(SbWindowOptions* options) {
+  SbMemorySet(options, 0, sizeof(*options));
+  options->size.width = 1920;
+  options->size.height = 1080;
+}
diff --git a/src/starboard/shared/win32/decode_target_internal.cc b/src/starboard/shared/win32/decode_target_internal.cc
index 125b186..a015cde 100644
--- a/src/starboard/shared/win32/decode_target_internal.cc
+++ b/src/starboard/shared/win32/decode_target_internal.cc
@@ -104,10 +104,31 @@
                                       EGL_NONE};
 
   EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
   EGLConfig config;
+  EGLint attribute_list[] = {
+    EGL_SURFACE_TYPE,  // this must be first
+    EGL_WINDOW_BIT | EGL_PBUFFER_BIT,
+    EGL_RED_SIZE,
+    8,
+    EGL_GREEN_SIZE,
+    8,
+    EGL_BLUE_SIZE,
+    8,
+    EGL_ALPHA_SIZE,
+    8,
+    EGL_BIND_TO_TEXTURE_RGBA,
+    EGL_TRUE,
+    EGL_RENDERABLE_TYPE,
+    EGL_OPENGL_ES2_BIT,
+    EGL_NONE
+  };
+
   EGLint num_configs;
-  bool ok = eglGetConfigs(display, &config, 1, &num_configs);
+  bool ok = eglChooseConfig(
+      display, attribute_list, &config, 1, &num_configs);
   SB_DCHECK(ok);
+  SB_DCHECK(num_configs == 1);
 
   GLuint gl_textures[2] = {0};
   glGenTextures(2, gl_textures);
diff --git a/src/starboard/win/lib/gyp_configuration.gypi b/src/starboard/win/lib/gyp_configuration.gypi
index f530aed..9a3622e 100644
--- a/src/starboard/win/lib/gyp_configuration.gypi
+++ b/src/starboard/win/lib/gyp_configuration.gypi
@@ -14,7 +14,7 @@
 
 {
   'variables': {
-    'javascript_engine': 'mozjs',
+    'javascript_engine': 'mozjs-45',
     'cobalt_enable_jit': 0,
     # TODO: In theory, there are tools that can combine static libraries into
     # thick static libraries with all their transitive dependencies. Using
diff --git a/src/starboard/win/win32/gyp_configuration.gypi b/src/starboard/win/win32/gyp_configuration.gypi
index a0356ea..3ba6c7c 100644
--- a/src/starboard/win/win32/gyp_configuration.gypi
+++ b/src/starboard/win/win32/gyp_configuration.gypi
@@ -14,7 +14,7 @@
 
 {
   'variables': {
-    'javascript_engine': 'mozjs',
+    'javascript_engine': 'mozjs-45',
     'cobalt_enable_jit': 0,
     'angle_build_winrt': 0,
     'winrt': 0,
diff --git a/src/third_party/WebKit/.dir-locals.el b/src/third_party/WebKit/.dir-locals.el
new file mode 100644
index 0000000..3fe2340
--- /dev/null
+++ b/src/third_party/WebKit/.dir-locals.el
@@ -0,0 +1,15 @@
+;; Per-directory local variables for GNU Emacs 23 and later.
+
+;; Syntax: ((MODE (VAR . VAL) ...) ...)
+;; MODE is a symbol like `c-mode', or `nil' for all modes.
+((c-mode
+  (indent-tabs-mode . nil)
+  (c-basic-offset . 4))
+ (c++-mode
+  (indent-tabs-mode . nil)
+  (c-basic-offset . 4))
+ (java-mode
+  (indent-tabs-mode . nil)
+  (c-basic-offset . 4))
+ (change-log-mode
+  (indent-tabs-mode . nil)))
diff --git a/src/third_party/WebKit/.qmake.conf b/src/third_party/WebKit/.qmake.conf
new file mode 100644
index 0000000..646dc0c
--- /dev/null
+++ b/src/third_party/WebKit/.qmake.conf
@@ -0,0 +1,4 @@
+# The qmake generated module files belong into our Tools/qmake dir
+MODULE_QMAKE_OUTDIR = $$shadowed($$PWD/Tools/qmake)
+QMAKEPATH += $$PWD/Tools/qmake $$MODULE_QMAKE_OUTDIR
+load(qt_build_config)
diff --git a/src/third_party/WebKit/ChangeLog b/src/third_party/WebKit/ChangeLog
new file mode 100644
index 0000000..bdf1fd3
--- /dev/null
+++ b/src/third_party/WebKit/ChangeLog
@@ -0,0 +1,5523 @@
+2012-12-17  Kenneth Rohde Christiansen  <kenneth@webkit.org>
+
+        Add manual test to verify that geometry methods (moveTo, etc) work
+        https://bugs.webkit.org/show_bug.cgi?id=105160
+
+        Reviewed by Alexis Menard.
+
+        * ManualTests/window-geometry.html: Added.
+
+2012-12-16  ChangSeok Oh  <shivamidow@gmail.com>
+
+        [GTK][AC] Build failure with an option --with-acceleration-backend=clutter
+        https://bugs.webkit.org/show_bug.cgi?id=105027
+
+        Reviewed by Gustavo Noronha Silva.
+
+        I turned off opengl related variables, enable_glx, enable_egl and enable_gles2
+        when selecting clutter as the acceleration-backend. Because they seem useless for the AC by clutter.
+
+        * configure.ac:
+
+2012-12-15  Simon Fraser  <simon.fraser@apple.com>
+
+        Fix repaint issues when resizing a window with centered content, for platforms with a tile cache
+        https://bugs.webkit.org/show_bug.cgi?id=105073
+
+        Reviewed by Dan Bernstein.
+
+        Add a manual test for window resize with a centered element.
+
+        * ManualTests/resize-repaint.html: Added.
+
+2012-12-13  Stephen White  <senorblanco@chromium.org>
+
+        Added manual test for canvas setFont speed.
+        https://bugs.webkit.org/show_bug.cgi?id=104923
+
+        Reviewed by James Robinson.
+
+        * ManualTests/canvas-font-speed.html: Added.
+
+2012-12-13  Jerome Pasion  <jerome.pasion@digia.com>
+
+        [Qt] Doc: Fixing Qt WebKit reference documentation.
+
+        Reviewed by Simon Hausmann.
+
+        Fixes:
+        -added \module for C++ classes and \qmlmodule for QML types
+        -added links to the Qt WebKit Examples pages
+        -fixed the qhp settings for Qt Creator
+
+        Task-number: QTBUG-28583
+        Task-number: QTBUG-28418
+        Task-number: QTBUG-27646
+
+        * Source/qtwebkit.qdocconf:
+
+2012-12-13  Jerome Pasion <Jerome.Pasion@digia.com>
+
+        [Qt] Fix missing doc dependency to examples
+
+        Reviewed by Simon Hausmann.
+
+        * Source/qtwebkit.qdocconf:
+
+2012-12-12  John Griggs  <jgriggs@rim.com>
+
+        2012-12-12  John Griggs  <jgriggs@rim.com>
+
+        [BlackBerry] Update Media Controls for BlackBerry Platform
+        https://bugs.webkit.org/show_bug.cgi?id=104443
+        https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=204748
+
+        Update Media Controls for BlackBerry platform to allow audio, embedded video and fullscreen video controls to be positioned and styled differently.
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-12-12  Xianzhu Wang  <wangxianzhu@chromium.org>
+
+        Pre-painting should not paint out-of-view fixed position elements
+        https://bugs.webkit.org/show_bug.cgi?id=104724
+
+        Reviewed by James Robinson.
+
+        New manual test.
+
+        * ManualTests/compositing/fixed-position-out-of-view-scroll-prepaint.html: Added.
+
+2012-12-12  Krzysztof Czech  <k.czech@samsung.com>
+
+        [EFL] Possibility to turn off accessibility feature for WebKit-EFL.
+        https://bugs.webkit.org/show_bug.cgi?id=103036
+
+        Reviewed by Laszlo Gombos.
+
+        Guard dependencies for accessibility (ATK), so that they can be turned off.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-12-12  Zan Dobersek  <zandobersek@gmail.com>
+
+        [GTK] Remove the last of unnecessary configuration options in configure.ac
+        https://bugs.webkit.org/show_bug.cgi?id=104793
+
+        Reviewed by Martin Robinson.
+
+        Remove the last of the configuration options that don't introduce any dependencies and/or
+        are enabled by default in the GNUmakefile.features.am.in file.
+
+        * configure.ac:
+
+2012-12-11  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
+
+        [Qt] Fix the inspector not showing up on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=104677
+
+        Reviewed by Simon Hausmann.
+
+        Resources aren't transfered properly from a static WebCore to the final DLL
+        with MSVC since the linker only pick from the static lib symbols that
+        are referenced in the final binary.
+
+        Move the resource files directly to Qt5WebKit.dll to make sure that they are
+        available.
+
+        * Source/api.pri:
+
+2012-12-11  Xianzhu Wang  <wangxianzhu@chromium.org>
+
+        Add window.internals.mainThreadScrollReasonsAsText for testing slow scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=104714
+
+        Reviewed by Eric Seidel.
+
+        Export symbol Page::mainThreadScrollingReasonsAsText().
+
+        * Source/autotools/symbols.filter:
+
+2012-12-11  Michael Pruett  <michael@68k.org>
+
+        [JSC] Add tests for explicit serialization values
+        https://bugs.webkit.org/show_bug.cgi?id=104423
+
+        Reviewed by Oliver Hunt.
+
+        Add tests for serialization and deserialization mechanisms of
+        the JSC implementation of SerializedScriptValue. Similar tests
+        already exist for the V8 implementation.
+
+        * Source/autotools/symbols.filter:
+
+2012-12-11  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Install GObject DOM bindings headers in its own directory
+        https://bugs.webkit.org/show_bug.cgi?id=104663
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * GNUmakefile.am: Add GENSOURCES_WEBKITDOM and
+        webkitgtk_gdom_built_h_api variables.
+
+2012-12-11  Stephen Kelly  <stephen.kelly@kdab.com>
+
+        WebKit tests for the Qt API should include tests of CMake config files
+        https://bugs.webkit.org/show_bug.cgi?id=104003
+
+        Reviewed by Simon Hausmann.
+
+        The Qt WebKit CI system is not going to run this test, but it can
+        be run locally and to test packages.
+
+        * Source/tests.pri:
+
+2012-12-11  Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+        [GTK][jhbuild] Switch to GStreamer 1.0 build
+        https://bugs.webkit.org/show_bug.cgi?id=91727
+
+        Reviewed by Philippe Normand.
+
+        Switch build-webkit --gtk to GStreamer 1.0 support and build the
+        necessary GStreamer git modules from JHBuild.
+
+        * configure.ac: Removed GStreamer unstable API flag, made
+        GStreamer 1.0 default instead of 0.10 and made required version
+        1.0.3. In case no GStreamer version is specified, it falls back to
+        0.10. In case no video or web-audio are requested, GStreamer
+        and Farstream checks are not performed.
+
+2012-12-11  Zan Dobersek  <zandobersek@gmail.com>
+
+        [GTK] Feature enabling/disabling should be possible through build-webkit
+        https://bugs.webkit.org/show_bug.cgi?id=99271
+
+        Reviewed by Gustavo Noronha Silva.
+
+        The autogen.sh script now calls the Tools/gtk/override-feature-defines script
+        before calling autoreconf. This ensures that Source/WebCore/GNUmakefile.features.am
+        is present and properly modified if the build-webkit script intends to override
+        any feature.
+
+        The Source/WebCore/GNUmakefile.features.am file is added to the ignored files list
+        so it doesn't pop out as a new, untracked file.
+
+        * .gitignore:
+        * autogen.sh:
+
+2012-12-10  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Remove the Pango backend
+        https://bugs.webkit.org/show_bug.cgi?id=104569
+
+        Reviewed by Daniel Bates.
+
+        Always look for Freetype and Harfbuzz. We still depend on Pango for a few
+        things, so we cannot yet eliminate our dependency on Pango.
+
+        * configure.ac: Always look for FreeType/Harfbuzz.
+
+2012-12-10  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Change the minimum required EFL version to 1.6
+        https://bugs.webkit.org/show_bug.cgi?id=104431
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Change the minimum required EFL version to 1.6 from 1.7 to enable
+        building on Tizen.
+
+        The elementary EFL package is only required to build MiniBrowser,
+        so I moved the required only to the Minibrowser CMake file.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-12-10  Alexis Menard  <alexis@webkit.org>
+
+        [CSS3 Backgrounds and Borders] Remove CSS3_BACKGROUND feature flag.
+        https://bugs.webkit.org/show_bug.cgi?id=104539
+
+        Reviewed by Antonio Gomes.
+
+        As discussed on webkit-dev it is not needed to keep this feature flag
+        as support for <position> type is a small feature that is already
+        implemented by three other UAs. It was useful while landing this
+        feature as partial bits were landed one after one.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-12-10  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
+
+        [Qt] Remove the support for building a debug WebKit with a release Qt
+        https://bugs.webkit.org/show_bug.cgi?id=104560
+
+        Reviewed by Tor Arne Vestbø.
+
+        This creates issues with non-framework builds of Qt (necessary for debug-only
+        builds) since a Qt5 prefix is now added to the base target name.
+
+        * Source/api.pri:
+
+2012-12-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
+
+        [Soup] utilize multipart/x-mixed-replace support recently added to libsoup
+        https://bugs.webkit.org/show_bug.cgi?id=94515
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: require soup 2.40.0, which adds the new support.
+
+2012-12-10  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Bring Harfbuzz-ng support to Gtk
+        https://bugs.webkit.org/show_bug.cgi?id=92098
+
+        Reviewed by Gustavo Noronha Silva.
+
+        Add support for detecting HarfBuzz during configuration phase. Add these
+        flags to the FreeType ones since HarfBuzz support is part of the FreeType
+        backend.
+
+        * configure.ac: Detect HarfBuzz.
+
+2012-12-08  Seokju Kwon  <seokju.kwon@gmail.com>
+
+        [EFL][WK2] Add Remote Web Inspector
+        https://bugs.webkit.org/show_bug.cgi?id=98705
+
+        Reviewed by Gyuyoung Kim.
+
+        Prepare inspectorPageIndex.html for remote web inspector.
+
+        * Source/PlatformEfl.cmake:
+
+2012-12-06  Rick Byers  <rbyers@chromium.org>
+
+        CSS cursor property should support webkit-image-set
+        https://bugs.webkit.org/show_bug.cgi?id=99493
+
+        Reviewed by Beth Dakin.
+
+        Add ENABLE_MOUSE_CURSOR_SCALE (disabled by default)
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-12-06  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Remove ENABLE_GLIB_SUPPORT CMake variable
+        https://bugs.webkit.org/show_bug.cgi?id=104278
+
+        Reviewed by Brent Fulgham.
+
+        The variable is unnecessary as glib is a required dependency
+        for the EFL port and glib is not used by other ports building
+        with CMake.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-12-06  Tony Chang  <tony@chromium.org>
+
+        REGRESSION(r135082): Restore the ability to insert author level style sheets from script
+        https://bugs.webkit.org/show_bug.cgi?id=104042
+
+        Reviewed by Antti Koivisto.
+
+        Update exports for Internals.cpp.
+
+        * Source/autotools/symbols.filter:
+
+2012-12-06  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Optimize binary size by removing dead sections on unix/gcc
+        https://bugs.webkit.org/show_bug.cgi?id=102827
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Turn on -ffunction-sections -fdata-sections --gc-section flags
+        on unix for the gcc toolchain for release builds to optimize binary
+        size for the Efl port.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-12-06  Seokju Kwon  <seokju.kwon@gmail.com>
+
+        [EFL] Fix destination path in Source/PlatformEfl.cmake
+        https://bugs.webkit.org/show_bug.cgi?id=104237
+
+        Reviewed by Laszlo Gombos.
+
+        Remove InspectorBackendCommands.js when copying it for the consistency in Source/PlatformEfl.cmake.
+
+        * Source/PlatformEfl.cmake:
+
+2012-12-06  Shinya Kawanaka  <shinyak@chromium.org>
+
+        Internals.getElementByIdInShadowRoot is nonsense now.
+        https://bugs.webkit.org/show_bug.cgi?id=104241
+
+        Reviewed by Kent Tamura.
+
+        * Source/autotools/symbols.filter:
+
+2012-12-05  Halton Huo  <halton.huo@intel.com>
+
+        [CMake] Unify coding style for CMake files
+        https://bugs.webkit.org/show_bug.cgi?id=103605
+
+        Reviewed by Laszlo Gombos.
+
+        Update cmake files(.cmake, CMakeLists.txt) with following style rules:
+        1. Indentation
+        1.1 Use spaces, not tabs.
+        1.2 Four spaces as indent.
+        2. Spacing
+        2.1 Place one space between control statements and their parentheses.
+            For eg, if (), else (), elseif (), endif (), foreach (),
+            endforeach (), while (), endwhile (), break ().
+        2.2 Do not place spaces between function and macro statements and
+            their parentheses. For eg, macro(), endmacro(), function(),
+            endfunction().
+        2.3 Do not place spaces between a command or function or macro and its
+            parentheses, or between a parenthesis and its content. For eg,
+            message("testing") not message( "testing") or message ("testing" )
+        2.4 No space at line ending.
+        3. Lowercase when call commands macros and functions. For eg,
+           add_executable() not ADD_EXECUTABLE(), set() not SET().
+
+        * CMakeLists.txt:
+        * Source/CMakeLists.txt:
+        * Source/PlatformEfl.cmake:
+        * Source/cmake/EFLHelpers.cmake:
+        * Source/cmake/FindATK.cmake:
+        * Source/cmake/FindCFLite.cmake:
+        * Source/cmake/FindCairo.cmake:
+        * Source/cmake/FindDBus.cmake:
+        * Source/cmake/FindDirectX.cmake:
+        * Source/cmake/FindE_DBus.cmake:
+        * Source/cmake/FindEcore.cmake:
+        * Source/cmake/FindEdje.cmake:
+        * Source/cmake/FindEet.cmake:
+        * Source/cmake/FindEeze.cmake:
+        * Source/cmake/FindEfreet.cmake:
+        * Source/cmake/FindEina.cmake:
+        * Source/cmake/FindElementary.cmake:
+        * Source/cmake/FindEnchant.cmake:
+        * Source/cmake/FindEvas.cmake:
+        * Source/cmake/FindFontconfig.cmake:
+        * Source/cmake/FindGLIB.cmake:
+        * Source/cmake/FindGStreamer.cmake:
+        * Source/cmake/FindGperf.cmake:
+        * Source/cmake/FindHarfBuzz.cmake:
+        * Source/cmake/FindICU.cmake:
+        * Source/cmake/FindLibSoup.cmake:
+        * Source/cmake/FindQuickTimeSDK.cmake:
+        * Source/cmake/FindSqlite.cmake:
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmake/OptionsCommon.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmake/OptionsWindows.cmake:
+        * Source/cmake/WebKitFS.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmake/WebKitHelpers.cmake:
+        * Source/cmake/WebKitMacros.cmake:
+        * Source/cmake/WebKitPackaging.cmake:
+        * Source/cmake/gtest/CMakeLists.txt:
+
+2012-12-05  Yong Li  <yoli@rim.com>
+
+        [BlackBerry] Build with libjpegturbo
+        https://bugs.webkit.org/show_bug.cgi?id=104152
+
+        Reviewed by Rob Buis.
+
+        RIM PR# 196975.
+        This change is made by Ming Xie to link with libjpegturbo.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-12-05  Leo Yang  <leoyang@rim.com>
+
+        [BlackBerry] Enable CSS_IMAGE_RESOLUTION
+        https://bugs.webkit.org/show_bug.cgi?id=104132
+
+        Reviewed by Yong Li.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-12-05  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [CMake] Enable to build WebKit sources without Tools
+        https://bugs.webkit.org/show_bug.cgi?id=103918
+
+        Reviewed by Gyuyoung Kim.
+
+        Turn on building Tools by default only if ENABLE_TOOLS is not explicitly set
+        (enabled or disabled) and the Tools directory exists for all CMake based ports.
+
+        This change enables the possibility to build WebKit even if the Tools directory 
+        does not exists.
+
+        * CMakeLists.txt:
+
+2012-12-04  Kondapally Kalyan  <kalyan.kondapally@intel.com>
+
+        [EFL][WK2][AC] USE_GRAPHICS_SURFACE should be enabled only if Xcomposite and Xrender extensions are found.
+        https://bugs.webkit.org/show_bug.cgi?id=103710.
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        When using GLX back-end we are dependent on GLX support, Xcomposite and Xrender extensions.
+        In this case, GraphicsSurface usage depends on Xcomposite and Xrender extensions. 
+        USE_GRAPHICS_SURFACE should be enabled only if Xcomposite and Xrender extensions are found.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-12-03  Pierre Rossi  <pierre.rossi@digia.com>
+
+        [Qt] another stab at fixing the windows build 
+
+        It seems the QT_BUILD_{TARGET}_LIB are not set as they should by qt_module.prf.
+        Define them by hand to be on the safe side.
+
+        * Source/widgetsapi.pri:
+
+2012-12-03  Alexis Menard  <alexis@webkit.org>
+
+        [EFL] Enable CSS3 background-position offsets by default.
+        https://bugs.webkit.org/show_bug.cgi?id=103879
+
+        Reviewed by Laszlo Gombos.
+
+        Enable the feature for EFL only.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-12-03  Alexis Menard  <alexis@webkit.org>
+
+        [GTK] Enable CSS3 background-background position offset by default.
+        https://bugs.webkit.org/show_bug.cgi?id=103903
+
+        Reviewed by Philippe Normand.
+
+        Turn on the flag by default.
+
+        * configure.ac:
+
+2012-12-03  Cosmin Truta  <ctruta@rim.com>
+
+        [BlackBerry] Enable HIDDEN_PAGE_DOM_TIMER_THROTTLING
+        https://bugs.webkit.org/show_bug.cgi?id=103842
+
+        Reviewed by Yong Li.
+
+        Set ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING to ON.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-12-03  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [CMake] Enable building WebKit2-only build for the EFL port
+        https://bugs.webkit.org/show_bug.cgi?id=103820
+
+        Reviewed by Gyuyoung Kim.
+
+        To create a WebKit2-only build for EFL use the following command:
+        build-webkit --efl --cmakeargs="-DENABLE_WEBKIT=OFF".
+
+        * CMakeLists.txt: Turn on WebKit1 support if it is not explicitly set (enabled or disabled) for
+        all CMake based ports.
+
+        * Source/cmake/OptionsEfl.cmake: Enable WebKit2 
+        for the EFL port if it is not explicitly set (enabled or disabled).
+
+2012-12-03  Zeno Albisser  <zeno@webkit.org>
+
+        [Qt][Mac] QtWebKitWidgets has wrong install_name.
+
+        This part got lost during the library split.
+        It was done for QtWebKit before, but it also
+        needs to be applied to QtWebKitWidgets.
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/widgetsapi.pri:
+
+2012-11-30  Justin Novosad  <junov@google.com>
+
+        [Chromium] Animation updates fail when using a canvas as a CSS backround-image style with -webkit-canvas
+        https://bugs.webkit.org/show_bug.cgi?id=103643
+
+        Reviewed by Stephen White.
+
+        New test to verify that elements using a canvas as a style image
+        source are redrawn when the canvas is animated.  Added as a manual test
+        because the bug was not reproducible in DumpRenderTree.
+
+        * ManualTests/animated-canvas-as-background.html: Added.
+
+2012-11-30  Pierre Rossi  <pierre.rossi@gmail.com>
+
+        [Qt] Unreviewed build break
+
+        Rubber-stamped by Simon Hausmann.
+
+        Poor man's way to trigger a clean build on a bot.
+
+        * WebKit.pro:
+
+2012-11-30  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Unreviewed doc fix
+
+        Add additional search paths for API folders.
+
+        * Source/qtwebkit.qdocconf:
+
+2012-11-30  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi  <pierre.rossi@digia.com>
+
+        [Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
+        https://bugs.webkit.org/show_bug.cgi?id=99314
+
+        Reviewed by Tor Arne Vestbø.
+
+        This big change separates QtWebKit into QtWebKit and QtWebKitWidgets as
+        shared libraries.
+
+        It's a big refactoring that mostly involves moving WebCore dependent
+        code into QtWebKit and accessing it through exported QWebFrameAdapter
+        and QWebPageAdapter classes.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+        * Source/sync.profile:
+        * Source/widgetsapi.pri: Added.
+        * WebKit.pro:
+
+2012-11-30  Tor Arne Vestbø  <tor.arne.vestbo@digia.com>
+
+        [Qt] Build as a regular Qt module when production_build is enabled
+
+        Instead of always setting CONFIG+=force_independent. This means the
+        libs, headers, and documentation will end up in qtbase for developer
+        builds of Qt, instead of always in the QtWebKit build directory.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2012-11-29  Rafael Weinstein  <rafaelw@chromium.org>
+
+        [HTMLTemplateElement] Add feature flag
+        https://bugs.webkit.org/show_bug.cgi?id=103694
+
+        Reviewed by Adam Barth.
+
+        This flag will guard the implementation of the HTMLTemplateElement.
+        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-11-28  Michael Pruett  <michael@68k.org>
+
+        IndexedDB: Remove duplicate toWireString() and createFromWire() methods in JSC SerializedScriptValue
+        https://bugs.webkit.org/show_bug.cgi?id=103554
+
+        Reviewed by Kentaro Hara.
+
+        In r135022, duplicate createFromWire() and toWireString() methods
+        were added to the JSC version of SerializedScriptValue. In
+        order to allow the JSC SerializedScriptValue to compile when
+        ENABLE(INDEXED_DATABASE) is turned on, these new methods have
+        been removed and the old methods have been moved outside the
+        ENABLE(INDEXED_DATABASE) guard.
+
+        * Source/autotools/symbols.filter:
+
+2012-11-28  Shinya Kawanaka  <shinyak@chromium.org>
+
+        [Shadow] Move Distribution stuffs from ShadowRoot
+        https://bugs.webkit.org/show_bug.cgi?id=103481
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2012-11-26  Halton Huo  <halton.huo@intel.com>
+
+        [EFL] CMake shows ENABLE_3D_RENDERING and ENABLE_WEBGL is still OFF when AC is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=100829
+
+        Reviewed by Gyuyoung Kim.
+
+        In WebKitFeatures.cmake, only use ${_name} for condition to print
+        a option as ON will prevent the overridden ones in OptionsXXX.cmake,
+        should use ${_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name}} instead.
+
+        * Source/cmake/OptionsEfl.cmake: Turn on ENABLE_3D_RENDERING and
+        ENABLE_WEBGL
+        * Source/cmake/WebKitFeatures.cmake: Use
+        ${_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name}} to as value of 
+        a feature is enabled. Adjust options in lexicographical order.
+
+2012-11-26  Kalev Lember  <kalevlember@gmail.com>
+
+        [GTK] Explicitly link against librt
+        https://bugs.webkit.org/show_bug.cgi?id=103194
+
+        Reviewed by Martin Robinson.
+
+        Fixes broken build with undefined references to shm_open / shm_unlink
+        symbols. SharedMemoryUnix.cpp uses these so we need to link with -lrt.
+
+        * configure.ac:
+
+2012-11-26  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [CMake] Allow user specified compiler flags to take precedence
+        https://bugs.webkit.org/show_bug.cgi?id=103101
+
+        Reviewed by Brent Fulgham.
+
+        Make sure that compiler and linker flags specified by the build system
+        are always prepended to the variables that can be specified by the
+        environment and the user as well. 
+
+        * Source/cmake/OptionsCommon.cmake:
+        * Source/cmake/OptionsWindows.cmake:
+        * Source/cmake/WebKitHelpers.cmake:
+
+2012-11-23  Alexis Menard  <alexis@webkit.org>
+
+        [CSS3 Backgrounds and Borders] Implement new CSS3 background-position parsing.
+        https://bugs.webkit.org/show_bug.cgi?id=102104
+
+        Reviewed by Julien Chaffraix.
+
+        Protect the new feature behind a feature flag.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-11-23  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Add support for winflexbison distribution
+        https://bugs.webkit.org/show_bug.cgi?id=102551
+
+        Reviewed by Laszlo Gombos.
+
+        Since GnuWin32 does not provide recent versions of bision and flex supporting
+        the alternative winflexbison distribution is the prefered option.
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2012-11-23  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Define WTF_PLATFORM_EFL in Platform.h
+        https://bugs.webkit.org/show_bug.cgi?id=101482
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Remove the definition of WTF_PLATFORM_EFL from the build system to
+        make the EFL port consistent with other ports.
+ 
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-23  Krzysztof Czech  <k.czech@samsung.com>
+
+        [EFL] Platform support for Accessibility feature.
+        https://bugs.webkit.org/show_bug.cgi?id=100848
+
+        Reviewed by Gyuyoung Kim.
+
+        Add support for ATK library.
+
+        * Source/cmake/FindATK.cmake: Added.
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-09-26  Gustavo Noronha Silva  <gns@gnome.org>
+
+        [GTK] Split SVG from WebCore to work-around make limitation
+        https://bugs.webkit.org/show_bug.cgi?id=97735
+
+        Reviewed by Carlos Garcia Campos.
+
+        Add a new libtool convenience library, libWebCoreSVG.la, to work-around
+        make limitation when linking libWebCore.
+
+        * GNUmakefile.am: variables for the new library.
+
+2012-11-22  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi <pierre.rossi@digia.com>
+
+        [Qt] Separate QWidget dependant code into separate WebKitWidgets static library
+        https://bugs.webkit.org/show_bug.cgi?id=102800
+
+        Reviewed by Tor Arne Vestbø.
+
+        This patch separates code that needs to use QWidget related APIs in
+        WebKit/qt/WebCoreSupport and Api from code that doesn't. This means for
+        example FrameLoaderClientQt.cpp remains in the WebKit1 static library,
+        while qwebpage.cpp and qwebframe.cpp become part of the WebKitWidgets
+        static library. WebKit1 is compiled without QT += widgets and therefore
+        any widget related dependency has been moved "up" and out of WebKit1 into
+        the WebKitWidgets library.
+
+        Between the code in WebKit.a and WebKitWidgets.a new adapters and
+        interfaces have been introduced, such as QWebPageAdapter and
+        QWebFrameAdapter. QWebPageAdapter, when used from WebKit1, is a way to
+        call out into the API layer, implemented by QWebPage (QWebPagePrivate).
+        The other way around if QWebPage wants to access WebCore or
+        WebCoreSupport related functionality, it will go through
+        QWebPageAdapater (as base class). The separation in the direction up
+        into the API layer is complete with this patch, no code in WebKit1
+        depends on QtWidgets. The separation the other way around, code in the
+        API layer not using any WebCore types, is not complete yet.
+
+        Some classes such as QWebSettings, QWebElement or
+        DumpRenderTreeSupportQt remain in WebKit1. While they are API layer,
+        they do not depend on widget related Qt APIs and they make much more
+        use of WebCore internal APIs and therefore are easier to keep in
+        WebKit1.
+
+        In the future we plan to place a real shared library boundary between
+        WebKit1 and WebKitWidgets, by keeping the WebKit1 static library as
+        part of the QtWebKit shared library and by turning the WebKitWidgets
+        static library into a shared one.
+
+
+        * Source/api.pri:
+        * WebKit.pro:
+
+2012-11-21  Ryuan Choi  <ryuan.choi@gmail.com>
+
+        [EFL] Remove unnecessary definition, -DENABLE_SPELLCHECK=1
+        https://bugs.webkit.org/show_bug.cgi?id=102988
+
+        Reviewed by Laszlo Gombos.
+
+        Removed -DENABLE_SPELLCHECK=1 because feature macros are controlled by
+        WEBKIT_OPTION_XXX and cmakeconfig.h.cmake.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-21  Kondapally Kalyan  <kalyan.kondapally@intel.com>
+
+        [EFL] GLX detection is broken.
+        https://bugs.webkit.org/show_bug.cgi?id=102687.
+
+        Reviewed by Laszlo Gombos.
+
+        HAVE_GLX is enabled only if WebGL is enabled. This is wrong and we should
+        explicitly test for GLX support.
+        This patch makes changes so that we check for glx.h header and sets HAVE_GLX flag appropriately.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-21  Yael Aharon  <yael.aharon@intel.com>
+
+        [EFL] Turn on WTF_USE_TILED_BACKING_STORE by default
+        https://bugs.webkit.org/show_bug.cgi?id=101526
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Separate out ENABLE_WEBGL. It is not ready to be enabled by default.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r133859.
+        http://trac.webkit.org/changeset/133859
+        https://bugs.webkit.org/show_bug.cgi?id=102875
+
+        This patch makes API test broken (Requested by gyuyoung on
+        #webkit).
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
+
+        Store MutationObserver callback in a hidden property for V8
+        https://bugs.webkit.org/show_bug.cgi?id=102555
+
+        Reviewed by Adam Barth.
+
+        Test for reference cycle leaks with mutation observers. There doesn't seem
+        to be a way to check this for v8, but if you manually run you can see if it
+        leaks observers.
+
+        * ManualTests/leak-cycle-observer-wrapper.html: Added.
+
+2012-11-20  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Update NEWS and configure.ac for 1.11.2 release
+
+        * configure.ac: Bump tarball version number, not updated in
+        previous commit by mistake.
+
+2012-11-20  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Update NEWS and configure.ac for 1.11.2 release
+
+        * configure.ac: Bump version numbers.
+
+2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>
+
+        Add PROXIMITY_EVENTS feature
+        https://bugs.webkit.org/show_bug.cgi?id=102658
+
+        Reviewed by Kentaro Hara.
+
+        Add PROXIMITY_EVENTS feature to cmake.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
+
+        Remove non-existent directories from the make system
+        https://bugs.webkit.org/show_bug.cgi?id=102632
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Remove (non-existent) symbian references from the exclude list for packaging.
+
+        * Source/cmake/WebKitPackaging.cmake:
+
+2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
+
+        Remove non-existent directories from the make system
+        https://bugs.webkit.org/show_bug.cgi?id=102632
+
+        Reviewed by Adam Barth.
+
+        Remove (non-existent) symbian references from the exclude list for packaging.
+
+        * Source/cmake/WebKitPackaging.cmake:
+
+2012-11-18  Genevieve Mak  <gmak@rim.com>
+
+         [BlackBerry] Enable Touch Sliders
+         https://bugs.webkit.org/show_bug.cgi?id=102516
+
+         Reviewed by Rob Buis.
+
+         Enabled for BlackBerry only
+         PR #242781
+         PR #176014
+
+         * Source/cmake/OptionsBlackBerry.cmake:
+         * Source/cmake/WebKitFeatures.cmake:
+         * Source/cmakeconfig.h.cmake:
+
+2012-11-18  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Fix GTK+ build after r135022.
+
+        * Source/autotools/symbols.filter: Add exports for
+        SerializedScriptValue changes.
+
+2012-11-16  Tony Chang  <tony@chromium.org>
+
+        Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
+        https://bugs.webkit.org/show_bug.cgi?id=102554
+
+        Reviewed by Andreas Kling.
+
+        As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
+        we're going to revist this feature once additional vendor support is
+        achieved.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-11-16  Ulan Degenbaev  <ulan@chromium.org>
+
+        [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
+        https://bugs.webkit.org/show_bug.cgi?id=94463
+
+        Reviewed by Kentaro Hara.
+
+        Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
+
+        * ManualTests/typed-array-memory.html:
+
+2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r134908.
+        http://trac.webkit.org/changeset/134908
+        https://bugs.webkit.org/show_bug.cgi?id=102473
+
+        Broke the Apple Windows Debug build. (Requested by dydx on
+        #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r134865.
+        http://trac.webkit.org/changeset/134865
+        https://bugs.webkit.org/show_bug.cgi?id=102466
+
+        Broke the Apple Windows Debug build. (Requested by dydx on
+        #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
+
+        Avoid copying of ViewportArguments in computeViewportAttributes function
+        https://bugs.webkit.org/show_bug.cgi?id=102354
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Updated exported symbols for GTK.
+
+        * Source/autotools/symbols.filter:
+
+2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
+
+        [GTK] Split WebCore/platform into a separate library
+        https://bugs.webkit.org/show_bug.cgi?id=94435
+
+        Reviewed by Martin Robinson.
+
+        More people have been reporting problems when linking WebCore because
+        the command line limit is being exceeded. Splitting WebCore a bit more
+        is in order.
+
+        * GNUmakefile.am: add variable that will hold the list of source files
+        for libWebCorePlatform .
+
+2012-11-15  Tony Chang  <tony@chromium.org>
+
+        Generate Settings from a .in file
+        https://bugs.webkit.org/show_bug.cgi?id=100393
+
+        Reviewed by Adam Barth.
+
+        Generate SettingsMacros.h for cmake.
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2012-11-15  Rick Byers  <rbyers@chromium.org>
+
+        No tests for changing mouse cursors
+        https://bugs.webkit.org/show_bug.cgi?id=100550
+
+        Reviewed by Brent Fulgham.
+
+        Add necessary exports for Internals::getCurrentCursorInfo
+
+        * Source/autotools/symbols.filter:
+
+2012-11-15  Kent Tamura  <tkent@chromium.org>
+
+        Support stand-alone month names in calendar picker
+        https://bugs.webkit.org/show_bug.cgi?id=102196
+
+        Reviewed by Kentaro Hara.
+
+        * ManualTests/forms/calendar-picker.html:
+        - Remove monthLabels arguments.
+        - Add a mock implementation of pagePopupController.formatMonth.
+
+2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r134741.
+        http://trac.webkit.org/changeset/134741
+        https://bugs.webkit.org/show_bug.cgi?id=102337
+
+        "Change is incorrect." (Requested by dydx on #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-11-14  Daniel Bates  <dbates@webkit.org>
+
+        Attempt to fix the Apple Windows Debug and GTK builds after <http://trac.webkit.org/changeset/134691>
+        (https://bugs.webkit.org/show_bug.cgi?id=96818)
+
+        Export symbols similar to the ones we added to WebCore.exp.in in
+        <http://trac.webkit.org/changeset/134691>.
+
+        * Source/autotools/symbols.filter:
+
+2012-11-14  KyungTae Kim  <ktf.kim@samsung.com>
+
+        [EFL] Turn on error on warnings for "sign-compare"
+        https://bugs.webkit.org/show_bug.cgi?id=101761
+
+        Reviewed by Gyuyoung Kim.
+
+        Remove "-Wno-error=sign-compare" to turn on error on warnings for "sign-compare"
+
+        * Source/cmake/WebKitHelpers.cmake:
+
+2012-11-13  Hugo Parente Lima  <hugo.lima@openbossa.org>
+
+        FindGLIB.cmake fails do find glib gmodule module.
+        https://bugs.webkit.org/show_bug.cgi?id=101784
+
+        Reviewed by Caio Marcelo de Oliveira Filho.
+
+        * Source/cmake/FindGLIB.cmake:
+
+2012-11-13  Huang Dongsung  <luxtella@company100.net>
+
+        Coordinated Graphics: Directly composited animated GIFs only render the first image.
+        https://bugs.webkit.org/show_bug.cgi?id=102043
+
+        Reviewed by Noam Rosenthal.
+
+        Add a test to check that a gif animation can run on a compositing layer.
+
+        * ManualTests/animated-gif-on-compositing-layer.html: Added.
+
+2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
+
+        [EFL] Turn on errors on warnings for WebKit1 and WebKit2 libraries
+        https://bugs.webkit.org/show_bug.cgi?id=101762
+
+        Reviewed by Gyuyoung Kim.
+
+        In case of EFL, add ENABLE_WERROR to EXTRA_COMPILER_FLAGS for WEBKIT and WEBKIT2
+
+        * Source/CMakeLists.txt:
+
+2012-11-12  Joe Mason  <jmason@rim.com>
+
+        [BlackBerry] NetworkJob should not check if data is received with HEAD
+        https://bugs.webkit.org/show_bug.cgi?id=102034
+
+        Reviewed by George Staikos.
+
+        Internal PR: 241391
+
+        Add test that HEAD XMLHttpRequests return status 404 instead of calling onerror.
+
+        * ManualTests/blackberry/head-xhr-nonexistant-file.html: Added.
+
+2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
+
+        [EFL] Turn on error on warnings for "switch"
+        https://bugs.webkit.org/show_bug.cgi?id=101760
+
+        Reviewed by Gyuyoung Kim.
+
+        Turn on error on warning for "switch" by removing "-Wno-error=switch" 
+
+        * Source/cmake/WebKitHelpers.cmake:
+
+2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
+
+        [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
+        https://bugs.webkit.org/show_bug.cgi?id=101180
+
+        Reviewed by Dimitri Glazkov.
+
+        Exposes necessary symbols.
+
+        * Source/autotools/symbols.filter:
+
+2012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r134144.
+        http://trac.webkit.org/changeset/134144
+        https://bugs.webkit.org/show_bug.cgi?id=101876
+
+        seems to break win 7 chromium browser test (Requested by
+        hayato on #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-11-09  Rick Byers  <rbyers@chromium.org>
+
+        No tests for changing mouse cursors
+        https://bugs.webkit.org/show_bug.cgi?id=100550
+
+        Reviewed by Adam Barth.
+
+        Add necessary exports for Internals::getCurrentCursorInfo
+
+        * Source/autotools/symbols.filter:
+
+2012-11-09  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Enable -Werror for the EFL port
+        https://bugs.webkit.org/show_bug.cgi?id=98715
+
+        Reviewed by Gyuyoung Kim.
+
+        Treat all warnings as errors, except the existing warnings in the
+        current code base ("unused-parameter", "sign-compare" and "switch").
+
+        Thanks for Raphael Kubo da Costa for the extra help.      
+
+        * Source/CMakeLists.txt: Enable warnings as error for all libraries
+        (except WebKit and WebKit2) for the EFL port. 
+        Other cmake-based ports are welcome to join.
+
+        * Source/cmake/WebKitHelpers.cmake: Treat warnings as errors by
+        default for cmake-based ports when ENABLE_WERROR is set.
+
+2012-11-08  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
+
+        [EFL] Turn WTF_USE_TILED_BACKING_STORE in OptionsEfl.cmake.
+        https://bugs.webkit.org/show_bug.cgi?id=101559
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Follow-up to 133859; also change the default value in
+        OptionsEfl.cmake so that the default changes for people not using
+        build-webkit (ie. users) as well.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-08  Yael Aharon  <yael.aharon@intel.com>
+
+        [EFL] Turn on WTF_USE_TILED_BACKING_STORE by default
+        https://bugs.webkit.org/show_bug.cgi?id=101526
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Separate out ENABLE_WEBGL. It is not ready to be enabled by default.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-08  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Remove non-variable options from the build system
+        https://bugs.webkit.org/show_bug.cgi?id=101506
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Remove WTF_USE_PTHREADS, WTF_USE_ICU_UNICODE, WTF_USE_CAIRO,
+        WTF_USE_FREETYPE and WTF_USE_HARFBUZZ_NG cmake variables 
+        as these are always set to const 1 and not really configurable.
+
+        Remove the definition of ENABLE_CONTEXT_MENUS as this is already set to 1 by default in Platform.h.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r133865.
+        http://trac.webkit.org/changeset/133865
+        https://bugs.webkit.org/show_bug.cgi?id=101579
+
+        dependent patch has been rolled out. (Requested by drott on
+        #webkit).
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-08  Dominik Röttsches  <dominik.rottsches@intel.com>
+
+        Unreviewed, rolling out r133859.
+        http://trac.webkit.org/changeset/133859
+        https://bugs.webkit.org/show_bug.cgi?id=101526
+
+        Breaks EFL bots test execution.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-08  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
+
+        [EFL] Turn WTF_USE_TILED_BACKING_STORE in OptionsEfl.cmake.
+        https://bugs.webkit.org/show_bug.cgi?id=101559
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Follow-up to 133859; also change the default value in
+        OptionsEfl.cmake so that the default changes for people not using
+        build-webkit (ie. users) as well.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-08  Yael Aharon  <yael.aharon@intel.com>
+
+        [EFL] Turn on WTF_USE_TILED_BACKING_STORE by default
+        https://bugs.webkit.org/show_bug.cgi?id=101526
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Separate out ENABLE_WEBGL. It is not ready to be enabled by default.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-07  Keishi Hattori  <keishi@webkit.org>
+
+        Implement week picking to calendar picker
+        https://bugs.webkit.org/show_bug.cgi?id=101449
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/forms/calendar-picker.html: Added test for week picker.
+
+2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r133841.
+        http://trac.webkit.org/changeset/133841
+        https://bugs.webkit.org/show_bug.cgi?id=101542
+
+        Reverted patches were innocent (Requested by shinyak on
+        #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-11-07  Shinya Kawanaka  <shinyak@chromium.org> 
+
+        Unreviewed, rolling out r133428 and r133749
+        https://bugs.webkit.org/show_bug.cgi?id=101533
+
+        These patches might cause memory regression.
+
+        * Source/autotools/symbols.filter:
+
+2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
+
+        [Shadow] Use setPseudo() instead of setShadowPseudoId().
+        https://bugs.webkit.org/show_bug.cgi?id=101306
+
+        Reviewed by Kent Tamura.
+
+        Exposes necessary symbols.
+
+        * Source/autotools/symbols.filter:
+
+2012-11-07  Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+        [Qt] Fix build of modules depending on QtWebKit when using prefix
+        https://bugs.webkit.org/show_bug.cgi?id=101437
+
+        Reviewed by Simon Hausmann.
+
+        .qmake.conf loads qt_build_config.prf, which nowadays is responsible for
+        adding the path to .qmake.super (before it was done by default_pre.prf,
+        so having setting the path in our default_pre wrapper was sufficient).
+
+        * .qmake.conf:
+
+2012-11-06  Keishi Hattori  <keishi@webkit.org>
+
+        Implement month picking to calendar picker
+        https://bugs.webkit.org/show_bug.cgi?id=101333
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/forms/calendar-picker.html: Added test for month picker.
+
+2012-11-06  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Simplify the build system
+        https://bugs.webkit.org/show_bug.cgi?id=101392
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Remove unused cmake variables. In addition there is no longer a need to define 
+        WTF_USE_TEXTURE_MAPPER_GL in the build system as that is now handled in Platform.h
+        (see r133623).
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-11-05  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Trivial unreviewed: Add missing module dependencies for builds in Qt CI system.
+
+        These fields aren't used by anyone except some perl scripts in the Qt CI builds.
+
+        * Source/sync.profile:
+
+2012-11-02  Adam Barth  <abarth@webkit.org>
+
+        ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
+        https://bugs.webkit.org/show_bug.cgi?id=100711
+
+        Reviewed by Eric Seidel.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-11-02  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Remove dependency on SoupPasswordManager
+        https://bugs.webkit.org/show_bug.cgi?id=100775
+
+        Reviewed by Carlos Garcia Campos.
+
+        Add a libsecret dependency to the build. This is necessary so that we can remove
+        a dependency on SoupPasswordManager.
+
+        * configure.ac: Look for libsecret using the pkg-config configuration macro.
+
+2012-11-02  Michael Brüning  <michael.bruning@digia.com>
+
+        [Qt][WK2] ASSERT hit for every mouse click
+        https://bugs.webkit.org/show_bug.cgi?id=100607
+
+        Reviewed by Jocelyn Turcotte.
+
+        Added a test with a link that contains an <em> tag surrounding the entire inner text.
+        The test should be run on an assert enabled build and the assert should not be
+        triggered when tapping the link.
+
+        * ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html: Added.
+
+2012-11-01  Ami Fischman  <fischman@chromium.org>
+
+        HTMLMediaPlayer should free m_player when src is set/changed
+        https://bugs.webkit.org/show_bug.cgi?id=99647
+
+        Reviewed by Eric Carlson.
+
+        * ManualTests/media-players-are-dropped-on-error.html: Added.
+            Various scenarios are tested to make sure players aren't
+            leaked in different ways for each of them.
+
+2012-11-01  Beth Dakin  <bdakin@apple.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=100917
+        There should be a way to dump the scrolling tree from the layout tests
+
+        Reviewed by Simon Fraser.
+
+        * Source/autotools/symbols.filter:
+
+2012-10-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        Added viewport at-rule to the CSS parser and tokenizer
+        https://bugs.webkit.org/show_bug.cgi?id=95961
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Enable CSS Device Adaptation by default on EFL.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-31  Ian Vollick  <vollick@chromium.org>
+
+        Add support for text-based repaint testing
+        https://bugs.webkit.org/show_bug.cgi?id=100584
+
+        Reviewed by Simon Fraser.
+
+        Allows tracked repaint rects to be dumped as text.
+
+        * Source/autotools/symbols.filter:
+          Exports for:
+            FrameView::setTracksRepaints(bool)
+            Frame::trackedRepaintRectsAsText() const
+
+
+2012-10-30  Vivek Galatage  <vivekgalatage@gmail.com>
+
+        Add files generated by Windows to ignore list for git repository
+        https://bugs.webkit.org/show_bug.cgi?id=100729
+
+        Reviewed by Gyuyoung Kim.
+
+        Adding the additional files generated by windows port to the ignore list
+
+        * .gitignore:
+
+2012-10-30  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Add a configure option to build with -g1
+        https://bugs.webkit.org/show_bug.cgi?id=100670
+
+        Reviewed by Martin Robinson.
+
+        Add min and full options to the --enable-debug-symbols configure
+        option. Using --enable-debug-symbols=min will use -g1 instead of
+        -g (which is actually -g2). The first level is enough for most of
+        the cases, like getting a backtrace, and it's the only way to
+        build WebKit with debug symbols in a 32 bit system. The option
+        full is actually the same than yes for backwards compatibility.
+
+        * configure.ac:
+
+2012-10-26  Rob Buis  <rbuis@rim.com>
+
+        [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
+        https://bugs.webkit.org/show_bug.cgi?id=100518
+
+        PR 231732
+
+        Reviewed by Yong Li.
+
+        Remove RESOURCE_PATH from webkit, this is now abstracted in our platform layer.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
+
+        [EFL][WK2] Enable WebGL
+        https://bugs.webkit.org/show_bug.cgi?id=97652
+
+        Reviewed by Gyuyoung Kim.
+
+        Use Graphics Surface to enable WebGL for WebKit2 EFL.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r132601.
+        http://trac.webkit.org/changeset/132601
+        https://bugs.webkit.org/show_bug.cgi?id=100494
+
+        It broke the Qt build (Requested by Ossy on #webkit).
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
+
+        [EFL][WK2] Enable WebGL
+        https://bugs.webkit.org/show_bug.cgi?id=97652
+
+        Reviewed by Gyuyoung Kim.
+
+        Use Graphics Surface to enable WebGL for WebKit2 EFL.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        Add feature flags for CSS Device Adaptation
+        https://bugs.webkit.org/show_bug.cgi?id=95960
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-10-25  Yael Aharon  <yael.aharon@intel.com>
+
+        [EFL][WK2][AC] Enable 3D_RENDERING flag
+        https://bugs.webkit.org/show_bug.cgi?id=99535
+
+        Reviewed by Laszlo Gombos.
+
+        Turn on the flag ENABLE_3D_RENDERING when WTF_USE_TILE_BACKING_STORE flag is on.
+        This flag controls perspective and preserves-3d behavior.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
+
+        Adding feature for XHR_TIMEOUT
+
+        Conditionalize XHR timeout support
+        https://bugs.webkit.org/show_bug.cgi?id=100356
+
+        Reviewed by Adam Barth.
+
+        Adding feature for XHR_TIMEOUT to disable it on ports that don't have
+        network backend support for setTimeoutInterval.
+
+        * Source/cmake/OptionsEfl.cmake: Default ON on EFL.
+        * Source/cmake/WebKitFeatures.cmake: Default OFF for any CMAKE based port.
+        * Source/cmakeconfig.h.cmake: Adding define.
+        * configure.ac: Make autogen.sh support the --enable/--disable-xhr-timeout parameter.
+
+2012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
+
+        Add setMediaTypeOverride to window.internals.settings
+        https://bugs.webkit.org/show_bug.cgi?id=100249
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for GTK port.
+
+        * Source/autotools/symbols.filter:
+
+2012-10-24  Michael Carmody  <mcarmody@rim.com>
+
+        [BlackBerry] change CMAKE_<CCXX|C>_FLAGS_<RELEASE|DEBUG> from enviroment flags
+        https://bugs.webkit.org/show_bug.cgi?id=100256
+
+        Reviewed by Rob Buis.
+
+        This allow override of compile flags without having to edit CMake files.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-10-24  Priit Laes  <plaes@plaes.org>
+
+        [GTK] ./configure output for CSS Shaders is broken
+        https://bugs.webkit.org/show_bug.cgi?id=100217
+
+        Reviewed by Martin Robinson.
+
+        Reformat CSS Filters / Shaders check to clean configure output.
+
+        * configure.ac:
+
+2012-10-24  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [EFL] run-webkit-tests writes garbage on stderr when running on Xvfb
+        https://bugs.webkit.org/show_bug.cgi?id=100243
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Search for X11 development libraries (and thus Xext), necessary to
+        disable the X extensions error reporting.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-24  Mario Sanchez Prada  <mario@webkit.org>
+
+        [WK2] [GTK] TestWebKitAccessibility is not being run
+        https://bugs.webkit.org/show_bug.cgi?id=100102
+
+        Reviewed by Carlos Garcia Campos.
+
+        Moved check for at-spi2 after the definition of enable_webkit2,
+        since it's only needed for WebKit2GTK API tests.
+
+        * configure.ac: Moved the check for at-spi2 down in the file.
+
+2012-10-23  Martin Robinson  <mrobinson@igalia.com>
+
+        POTFILES.in/.skip need updates for translators
+        https://bugs.webkit.org/show_bug.cgi?id=67580
+
+        Reviewed by Xan Lopez.
+
+        Now process POTFILES.in during configuration.
+
+        * configure.ac:
+
+2012-10-23  Kenneth Rohde Christiansen  <kenneth@webkit.org>
+
+        Add support for resolution media query
+        https://bugs.webkit.org/show_bug.cgi?id=99077
+
+        Reviewed by Antti Koivisto.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+            Add support for the RESOLUTION_MEDIA_QUERY feature flag.
+
+        * Source/autotools/symbols.filter:
+
+            Export the WebCore::Settings setting.
+
+2012-10-23  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Update NEWS and configure.ac for 1.11.1 release
+
+        * configure.ac: Bump version numbers.
+
+2012-10-23  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [EFL][WK2] Add support for IMF composition
+        https://bugs.webkit.org/show_bug.cgi?id=89552
+
+        Reviewed by Gyuyoung Kim.
+
+        * Source/cmake/FindEcore.cmake: Checked Ecore_IMF.
+
+2012-10-23  Andras Becsi  <andras.becsi@digia.com>
+
+        Remove devicePixelRatio from ViewportAttributes
+        https://bugs.webkit.org/show_bug.cgi?id=99845
+
+        Reviewed by Adam Barth.
+
+        * Source/autotools/symbols.filter: Update symbol.
+
+2012-10-22  Pavel Feldman  <pfeldman@chromium.org>
+
+        Web Inspector: merge "docked" state into the "dock side" enum.
+        https://bugs.webkit.org/show_bug.cgi?id=99717
+
+        Reviewed by Vsevolod Vlasov.
+
+        Otherwise, it is hard to manage these inter-dependent flags.
+
+        * Source/autotools/symbols.filter:
+
+2012-10-19  Tony Chang  <tony@chromium.org>
+
+        Unreviewed, rolling out r131936.
+        http://trac.webkit.org/changeset/131936
+        https://bugs.webkit.org/show_bug.cgi?id=99717
+
+        Broke the clang build
+
+        * Source/autotools/symbols.filter:
+
+2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>
+
+        Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
+        https://bugs.webkit.org/show_bug.cgi?id=99804
+
+        Reviewed by Julien Chaffraix.
+
+        CSS3 text related properties will be implemented under this flag,
+        including text decoration, text-align-last, and text-justify.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-10-18  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Buildfix if Netscape plugin support is disabled
+        https://bugs.webkit.org/show_bug.cgi?id=99757
+
+        Reviewed by Gyuyoung Kim.
+
+        Set ENABLE_PLUGIN_PROCESS only if ENABLE_NETSCAPE_PLUGIN_API is set.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-18  Pablo Flouret  <pablof@motorola.com>
+
+        Implement css3-conditional's @supports rule
+        https://bugs.webkit.org/show_bug.cgi?id=86146
+
+        Reviewed by Antti Koivisto.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+            Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
+
+2012-10-18  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Clean up variables controlling Qt module creation/handling
+
+        Reviewed by Tor Arne Vestbø.
+
+        We now depend on a Qt 5 version that is new enough to allow us to
+        clean this up. Qt's default_pre.prf uses MODULE_QMAKE_OUTDIR, but
+        the other MODULE_BASE_* variables are onl used in qmodule.prf.
+
+        * Source/api.pri:
+
+2012-10-17  Tor Arne Vestbø  <tor.arne.vestbo@digia.com>
+
+        [Qt] Modularize documentation for QtWebKit
+
+        Running 'make docs' would fail unless 'make qmake_all' was ran first,
+        but qmake_all involved generating all the derived sources, which seems
+        overly complex just for building documentation.
+
+        We solve this by preventing all subdirs except QtWebKit from having a
+        docs target. This would normally work fine on its own, but since we
+        use CONFIG += ordered, there's now a missing doc target for the
+        immediate dependency of the QtWebKit subdir. We solve this by adding
+        a dummy-target ourselves.
+
+        Finally, we clean up the qdocconf file to match the rest of the Qt
+        documentation modularization efforts.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+        * Source/qtwebkit.qdocconf: Added.
+
+2012-10-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>, Michal Roj <m.roj@sasmung.com>
+
+        [WK2][EFL] Implementation of spellchecking feature.
+        https://bugs.webkit.org/show_bug.cgi?id=91854
+
+        Reviewed by Gyuyoung Kim.
+
+        Define SPELLCHECK macro and enable it for WK2-Efl.
+        The spellchecking implementation is based on the Enchant library.
+        It can be used by other WebKit ports.
+
+        * Source/cmake/FindEnchant.cmake: Added.
+        * Source/cmake/OptionsEfl.cmake: Enable spellchecking feature for WebKit2-EFL.
+        * Source/cmake/WebKitFeatures.cmake: Define the SPELLCHECK macro.
+        * Source/cmakeconfig.h.cmake: Add the feature.
+
+2012-10-16  Pablo Flouret  <pablof@motorola.com>
+
+        Pre-process CSSGrammar.y before running through bison.
+        https://bugs.webkit.org/show_bug.cgi?id=94290
+
+        Reviewed by Tony Chang.
+
+        * Source/cmake/WebKitMacros.cmake:
+            Use WebCore/css/makegrammar.pl to generate bison grammar files.
+
+2012-10-15  Jer Noble  <jer.noble@apple.com>
+
+        WebAudio: limit output level to 0db
+        https://bugs.webkit.org/show_bug.cgi?id=95792
+        <rdar://problem/11966135>
+
+        Reviewed by Chris Rogers.
+
+        Add a manual test to determine that output volume has been limited to 0db.
+
+        * ManualTests/webaudio/limit-level-0db.html: Added.
+
+2012-10-16  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Fix support for silent builds
+
+        Reviewed by Tor Arne Vestbø.
+
+        The .qmake.conf file in Qt modules usually contains a load(qt_build_config), which
+        ends up loading qmodule.pri, which contains the CONFIG += silent if Qt was configured
+        with -silent.
+
+        * .qmake.conf:
+
+2012-10-16  Simon Hausmann  <simon.hausmann@digia.com>, Tor Arne Vestbø <tor.arne.vestbo@digia.com>
+
+        [Qt] Add logic for triggering clean builds on changes to build system files
+
+        Reviewed by Csaba Osztrogonác.
+
+        Add a line here that can be re-used for recording dummy commits to count how the clean-build-needed
+        logic failed.
+
+        * WebKit.pro:
+
+2012-10-16  Simon Hausmann  <simon.hausmann@digia.com>
+
+        Unreviewed, rolling out r131436.
+        http://trac.webkit.org/changeset/131436
+
+        Broke various Qt bots strangely
+
+        * .qmake.conf:
+
+2012-10-16  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Fix support for silent builds
+
+        Reviewed by Tor Arne Vestbø.
+
+        The .qmake.conf file in Qt modules usually contains a load(qt_build_config), which
+        ends up loading qmodule.pri, which contains the CONFIG += silent if Qt was configured
+        with -silent.
+
+        * .qmake.conf:
+
+2012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [EFL] Share resources installed for inspector
+        https://bugs.webkit.org/show_bug.cgi?id=98991
+
+        Reviewed by Gyuyoung Kim.
+
+        Now, WebKit1/Efl and WebKit2/Efl install same resources to different directory
+        when INSPECTOR is enabled.
+
+        This patch changes to install resources one time and share it.
+
+        * Source/PlatformEfl.cmake:
+        Extracted build scripts which install resources from WebKit/PlatformEfl.cmake.
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-15  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
+        https://bugs.webkit.org/show_bug.cgi?id=88162
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Rename the QtWebKit module to QtWebKitWidgets.
+
+        * Source/api.pri:
+        * Source/sync.profile:
+
+2012-10-14  Patrick Gansterer  <paroga@webkit.org>
+
+        Unreviewed, rolling out r130656.
+        http://trac.webkit.org/changeset/130656
+        https://bugs.webkit.org/show_bug.cgi?id=97592
+
+        Broke CMake build on Windows
+
+        * CMakeLists.txt:
+
+2012-10-12  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r131189.
+        http://trac.webkit.org/changeset/131189
+        https://bugs.webkit.org/show_bug.cgi?id=99187
+
+        Made inspector http tests crash on WK2. (Requested by rakuco
+        on #webkit).
+
+        * Source/PlatformEfl.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-12  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [EFL] Share resources installed for inspector
+        https://bugs.webkit.org/show_bug.cgi?id=98991
+
+        Reviewed by Gyuyoung Kim.
+
+        Now, WebKit1/Efl and WebKit2/Efl install same resources to different directory
+        when INSPECTOR is enabled.
+
+        This patch changes to install resources one time and share it.
+
+        * Source/PlatformEfl.cmake:
+        Extracted build scripts which install resources from WebKit/PlatformEfl.cmake.
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
+
+        Unreviewed, rolling out r130389.
+        http://trac.webkit.org/changeset/130389
+        https://bugs.webkit.org/show_bug.cgi?id=98048
+
+        It broke chromium
+
+        * Source/autotools/symbols.filter:
+
+2012-10-11  Jinwoo Song  <jinwoo7.song@samsung.com>
+
+        [CMAKE] Add HIDDEN_PAGE_DOM_TIMER_THROTTLING feature
+        https://bugs.webkit.org/show_bug.cgi?id=99030
+
+        Reviewed by Laszlo Gombos.
+
+        Add HIDDEN_PAGE_DOM_TIMER_THROTTLING feature which throttles DOM timers
+        on hidden pages to WebKitFeatures.cmake and cmakeconfig.h.cmake.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-10-11  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic build fixes.
+
+        Get the password from the first item of the array now that each JSON contains an array as
+        the top-level structure instead of a dictionary, which is the first item in the array.
+
+        Remove spaces after comma to save space in Runs objects to work-around the AppEngine's
+        object size limit. This should buy us a couple of days. We'll implement a proper fix later.
+
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Runs.update_incrementally):
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (RunsTest.test_update_or_insert):
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post):
+
+2012-10-10  Tony Chang  <tony@chromium.org>
+
+        Unreviewed, rolling out r130937, r130949, r130955, and
+        r130957.
+        http://trac.webkit.org/changeset/130937
+        http://trac.webkit.org/changeset/130949
+        http://trac.webkit.org/changeset/130955
+        http://trac.webkit.org/changeset/130957
+        https://bugs.webkit.org/show_bug.cgi?id=94290
+
+        Breaks Qt build
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2012-10-10  Pablo Flouret  <pablof@motorola.com>
+
+        Pre-process CSSGrammar.y before running through bison.
+        https://bugs.webkit.org/show_bug.cgi?id=94290
+
+        Reviewed by Tony Chang.
+
+        * Source/cmake/WebKitMacros.cmake:
+            Use WebCore/css/makegrammar.pl to generate bison grammar files.
+
+2012-10-10  Simon Fraser  <simon.fraser@apple.com>
+
+        Attempt to fix gtk build which controls exports via this mysteriously-named
+        file.
+        
+        * Source/autotools/symbols.filter:
+
+2012-10-10  Shinya Kawanaka  <shinyak@chromium.org>
+
+        Needs internal API to return distributed nodes for InsertionPoint
+        https://bugs.webkit.org/show_bug.cgi?id=98868
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2012-10-10  Yong Li  <yoli@rim.com>
+
+        [BlackBerry] Define WTF_USE_EXTRA_MACROS in cmake rather than Platform.h
+        https://bugs.webkit.org/show_bug.cgi?id=98819
+
+        Reviewed by Rob Buis.
+
+        And make it depend on SHARED_CORE
+        RIM PR# 221339.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-10-10  Keishi Hattori  <keishi@webkit.org>
+
+        REGRESSION (r129738): Calendar picker is too wide when the input is rtl
+        https://bugs.webkit.org/show_bug.cgi?id=98881
+
+        Reviewed by kent Tamura.
+
+        * ManualTests/forms/calendar-picker.html: Added isCalendarRTL parameters.
+
+2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL][WK2] Port MiniBrowser to Elementary
+        https://bugs.webkit.org/show_bug.cgi?id=98748
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Bump EFL librairies dependencies to v1.7
+        and add Elementary as optional dependency now
+        that it is needed to build MiniBrowser.
+
+        * Source/cmake/FindEet.cmake: Added.
+        * Source/cmake/FindElementary.cmake: Added.
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-09  Simon Pena  <spena@igalia.com>
+
+        [GTK] Add support for running JavaScript from GResources
+        https://bugs.webkit.org/show_bug.cgi?id=98488
+
+        Reviewed by Carlos Garcia Campos.
+
+        GResources allow embedding certain resources, frequently used, in a "bundle"
+        which can be kept separated or stored in the binary. This patch adds
+        support for running JavaScript from GResources.
+
+        * configure.ac: Add support for compiling GResources
+
+2012-10-09  Zan Dobersek  <zandobersek@gmail.com>
+
+        Unreviewed GTK build fix after r130689.
+
+        Adding a required symbol to symbols.filter.
+
+        * Source/autotools/symbols.filter:
+
+2012-10-08  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Add minimum version information for tool dependencies
+        https://bugs.webkit.org/show_bug.cgi?id=97592
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Capture the minimum version information for the tools that are required
+        to build the EFL port (or more generally WebKit).
+
+        * CMakeLists.txt:
+
+2012-10-08  Dongwoo Joshua Im  <dw.im@samsung.com>
+
+        [EFL] Fix build break when WEB_AUDIO is enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=98635
+
+        Unreviewed build fix.
+
+        Build error is occurred because of the new flag, ENABLE_LEGACY_WEB_AUDIO,
+        which was introduced by https://bugs.webkit.org/show_bug.cgi?id=97050.
+
+        * Source/cmakeconfig.h.cmake: Add ENABLE_LEGACY_WEB_AUDIO.
+
+2012-10-08  Joone Hur  <joone.hur@intel.com>
+
+        [EFL] Add support for -webkit-sticky
+        https://bugs.webkit.org/show_bug.cgi?id=95182
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Turn on CSS sticky position by default for WebKitEfl,
+        but most of the CSS sticky position test cases still do not pass on WK1.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-05  José Dapena Paz  <jdapena@igalia.com>
+
+        [GTK] Add support for creating EGL contexts
+        https://bugs.webkit.org/show_bug.cgi?id=77921
+
+        Reviewed by Martin Robinson.
+
+        This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
+        options are set up on compile time, with the configure options
+        --enable-egl and --enable-gles2.
+
+        The implementation only adds support for EGL on top of X11, to
+        isolate the changes to the minimum. More changes should come
+        later to enable EGL for other targets (as Wayland).
+
+        * GNUmakefile.am:
+        * configure.ac: new configure options --enable-egl and --enable-gles2.
+
+2012-10-04  Rob Buis  <rbuis@rim.com>
+
+        [BlackBerry] Sync up CMake files
+        https://bugs.webkit.org/show_bug.cgi?id=98442
+
+        Reviewed by Gyuyoung Kim.
+
+        Amongst others some internal paths changed.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-10-04  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Add libxml 2.8.0 to jhbuild
+        https://bugs.webkit.org/show_bug.cgi?id=98418
+
+        Reviewed by Laszlo Gombos.
+
+        Bump dependency for libxml to 2.8.0 to match
+        jhbuild.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-10-04  Balazs Kelemen  <kbalazs@webkit.org>
+
+        Don't allow to disable compositing in forced compositing mode
+        https://bugs.webkit.org/show_bug.cgi?id=98048
+
+        Reviewed by Jocelyn Turcotte.
+
+        Export Settings::setAcceleratedCompositingEnabled because it has been deinlined.
+
+        * Source/autotools/symbols.filter:
+
+2012-10-03  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [EFL] Default.edj should be generated although ENABLE_WEBKIT disabled.
+        https://bugs.webkit.org/show_bug.cgi?id=97753
+
+        Reviewed by Laszlo Gombos.
+
+        default.edj is used in both webkit/efl and webkit2/efl.
+        However, it has been generated only when ENABLE_WEBKIT is enabled.
+
+        This patch separates the script which generates default.edj
+        from source/webkit/platformefl.cmake.
+
+        * Source/CMakeLists.txt:
+        * Source/PlatformEfl.cmake: Added to generate custom target for default theme.
+        * Source/cmake/OptionsEfl.cmake:
+        Moved directory generation from WebKit/PlatformEfl.cmake
+        because THEME_BINARY_DIR is used for both Default Theme and control theme in Tools.
+
+2012-10-03  Otto Derek Cheung  <otcheung@rim.com>
+
+        [BlackBerry] Implementing the NetworkInfo API for BB port 
+        https://bugs.webkit.org/show_bug.cgi?id=98273
+
+        Reviewed by Rob Buis.
+
+        Adding references to new classes added to support BlackBerry's
+        NetworkInfo implementation.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-10-01  Keishi Hattori  <keishi@webkit.org>
+
+        Calendar picker should use zero as default step base
+        https://bugs.webkit.org/show_bug.cgi?id=97976
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/forms/calendar-picker.html: Added stepBase parameters.
+
+2012-09-28  Mariusz Grzegorczyk  <mariusz.g@samsung.com>
+
+        [WK2][GTK][EFL] Share WebKit2-GTK plugin process implementation with EFL port
+        https://bugs.webkit.org/show_bug.cgi?id=91844
+
+        Reviewed by Simon Hausmann.
+
+        Turn on Netscape Plugin API by default  for WebKit2-Efl.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-09-28  Alpha Lam  <hclam@chromium.org>
+
+        REGRESSION(r122215) - CachedImage::likelyToBeUsedSoon crashes on accessing a deleted CachedImageClient
+        https://bugs.webkit.org/show_bug.cgi?id=97749
+
+        Reviewed by James Robinson.
+
+        Added a manual test to demonstrate drag image and crashing.
+
+        * ManualTests/drag-image-no-crash.html: Added.
+
+2012-09-27  Keishi Hattori  <keishi@webkit.org>
+
+        SuggestionPicker should support rtl
+        https://bugs.webkit.org/show_bug.cgi?id=97555
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/forms/calendar-picker.html: Added tests for Arabic with datalist.
+
+2012-09-27  Patrick Gansterer  <paroga@webkit.org>
+
+        [WINCE] Enable JIT by default
+
+        * Source/cmake/OptionsWinCE.cmake:
+
+2012-09-26  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Use XDamage to simplify RedirectedXCompositeWindow
+        https://bugs.webkit.org/show_bug.cgi?id=97267
+
+        Reviewed by Alejandro G. Castro.
+
+        Use XDamage to queue redraws of the widget when redirecting accelerated compositing
+        to an offscreen window. This allows removing a finicky timer-based approach, improves
+        performance, and allows simplifying things greatly.
+
+        * configure.ac: Add support for finding XDamage via pkg-config.
+
+2012-09-26  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Remove Qt Quick 1 support
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        It is being moved to the Qt5 QtQuick1 module.
+
+        * Source/tests.pri:
+
+2012-09-26  Zan Dobersek  <zandobersek@gmail.com>
+
+        [GTK] Enable some of the unstable CSS features
+        https://bugs.webkit.org/show_bug.cgi?id=97572
+
+        Reviewed by Martin Robinson.
+
+        Export the required RuntimeEnabledFeatures symbol.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-25  Cosmin Truta  <ctruta@rim.com>
+
+        [BlackBerry] Enable LLInt
+        https://bugs.webkit.org/show_bug.cgi?id=97604
+
+        Reviewed by Yong Li.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-09-25  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic should store "values" and support array'ed input
+        https://bugs.webkit.org/show_bug.cgi?id=97601
+
+        Reviewed by Dirk Pranke.
+
+        Support new JSON format where the outermost structure is an array instead of a dictionary and results may
+        contain "values". This change will let us remove some code from run-perf-tests.
+
+        Old: {"webkit-revision": 123456, "results": {"test": {"avg": 123}}
+        New: [{"webkit-revision": 123456, "results": {"test": {"avg": 123, values: [122, 123, 124]}}}]
+
+        * Websites/webkit-perf.appspot.com/app.yaml: Incremented the version number.
+        * Websites/webkit-perf.appspot.com/models.py:
+        (TestResult): Added values property.
+        (TestResult.get_or_insert_from_parsed_json): Pass in "values" to the constructor if the value is present.
+        (ReportLog.get_value): Use the first item in the array if self._parsed uses the new format.
+        (ReportLog.results_are_well_formed): Verifies that items in "values" are floats convertible. Also verify that
+        if the JSON uses new format, there is exactly one set of results. In theory, we could support multiple results
+        but we don't do that now for its complexity.
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (TestResultTests.test_get_or_insert_stat_value): Make sure values is present and is an empty list.
+        (TestResultTests.test_get_or_insert_stat_value_with_values): Added.
+        (ReportLogTests.test_results_are_well_formed):
+        (ReportLogTests.test_chromium_revision): Renamed from chromium_revision so that it actually runs.
+        (ReportLogTests.test_results_in_array):
+
+2012-09-25  Laszlo Gombos  <l.gombos@samsung.com>
+
+        [EFL] Update minimal required versions for dependencies
+        https://bugs.webkit.org/show_bug.cgi?id=97523
+
+        Reviewed by Gyuyoung Kim.
+
+        Use the same versions numbers for dependencies as in Tools/efl/jhbuild.modules.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-09-24  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Fix build with latest Qt 5
+        https://bugs.webkit.org/show_bug.cgi?id=97479
+
+        Reviewed by Tor Arne Vestbø.
+
+        Define MODULE_BASE_DIR before loading qt_module.prf, which now calls syncqt. MODULE_BASE_DIR is
+        passed as last parameter (source dir) to syncqt now, so set it to the directory that contains
+        sync.profile.
+
+        * Source/api.pri:
+
+2012-09-24  Bo Liu  <boliu@chromium.org>
+
+        Reland "Add in-place reload behavior to ImagesEnabled setting" with optimizations
+        https://bugs.webkit.org/show_bug.cgi?id=97055
+
+        Reviewed by Adam Barth.
+
+        Relanding 128780, 128676, 128645. Was reverted in 128914 due to
+        performance regression in Chromium.
+
+        New changes in addition to previously reverted patches:
+
+        Refactored CachedResource::requestResource, loadResource, and
+        revalidateResource. Moved CachedResource::load method to end of
+        requestResource so there is one place where load is called for all
+        resources.
+
+        Added a enum parameter for requestResource and
+        determineRevalidationPolicy so that FrameLoaderClient::allowImage call
+        do not need to be called multiple times.
+
+        Removed CachedImage::load call in requestImage so it is not called
+        twice.
+
+        Removed unnecessary Frame.h includes in CachedResource and
+        CachedImage.
+
+        Removed dead load() method declaration in CachedImage.
+
+        Updated text expectation for two image-permissions tests to reflect
+        the removed calls to allowImage.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-24  Byungwoo Lee  <bw80.lee@samsung.com>
+
+        [CMake] Change hardcoded 'lib' and 'bin' in CMakeLists.txt to 'LIB_INSTALL_DIR' and 'EXEC_INSTALL_DIR'.
+        https://bugs.webkit.org/show_bug.cgi?id=97419
+
+        Reviewed by Gyuyoung Kim.
+
+        Use the value of LIB_INSTALL_DIR and EXEC_INSTALL_DIR instead of
+        hardcoding 'lib' and 'bin' for CMAKE_{ARCHIVE,LIBRARY,RUNTIME}_OUTPUT_DIRECTORY.
+
+        * CMakeLists.txt:
+        Use ${LIB_INSTALL_DIR} instead of hardcoding "lib".
+        Use ${EXEC_INSTALL_DIR} instead of hardcoding "bin".
+
+2012-09-24  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r129343.
+        http://trac.webkit.org/changeset/129343
+        https://bugs.webkit.org/show_bug.cgi?id=97479
+
+        It broke the build (Requested by Ossy_NIGHT on #webkit).
+
+        * Source/api.pri:
+
+2012-09-24  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r129388.
+        http://trac.webkit.org/changeset/129388
+        https://bugs.webkit.org/show_bug.cgi?id=97477
+
+        Caused an assertion in a WebKit2 unit test (Requested by
+        abarth on #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-09-24  Dominik Röttsches  <dominik.rottsches@intel.com>
+
+        [EFL][DRT] Enable Regions support
+        https://bugs.webkit.org/show_bug.cgi?id=83897
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Default build setting for CSS regions set to on.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-09-24  Bo Liu  <boliu@chromium.org>
+
+        Reland "Add in-place reload behavior to ImagesEnabled setting" with optimizations
+        https://bugs.webkit.org/show_bug.cgi?id=97055
+
+        Reviewed by Adam Barth.
+
+        Relanding 128780, 128676, 128645. Was reverted in 128914 due to
+        performance regression in Chromium.
+
+        New changes in addition to previously reverted patches:
+
+        Refactored CachedResource::requestResource, loadResource, and
+        revalidateResource. Moved CachedResource::load method to end of
+        requestResource so there is one place where load is called for all
+        resources.
+
+        Added a enum parameter for requestResource and
+        determineRevalidationPolicy so that FrameLoaderClient::allowImage call
+        do not need to be called multiple times.
+
+        Removed CachedImage::load call in requestImage so it is not called
+        twice.
+
+        Removed unnecessary Frame.h includes in CachedResource and
+        CachedImage.
+
+        Removed dead load() method declaration in CachedImage.
+
+        Updated text expectation for two image-permissions tests to reflect
+        the removed calls to allowImage.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-24  Vivek Galatage  <vivekgalatage@gmail.com>
+
+        Web Inspector: implement testing harness for pure protocol tests.
+        https://bugs.webkit.org/show_bug.cgi?id=90675
+
+        Reviewed by Yury Semikhatsky.
+
+        Added export symbols required for Gtk+ to support the Inspector Protocol
+        testing harness.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-24  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Fix build with latest Qt 5
+
+        Reviewed by Tor Arne Vestbø.
+
+        Define MODULE_BASE_DIR before loading qt_module.prf, which now calls syncqt. MODULE_BASE_DIR is
+        passed as last parameter (source dir) to syncqt now, so set it to the directory that contains
+        sync.profile.
+
+        * Source/api.pri:
+
+2012-09-23  Keishi Hattori  <keishi@webkit.org>
+
+        Add suggestionPicker to CalendarPicker
+        https://bugs.webkit.org/show_bug.cgi?id=97201
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/forms/calendar-picker.html: Added tests for SuggestionPicker.
+
+2012-09-21  Ami Fischman  <fischman@chromium.org>
+
+        HTMLMediaElement isn't garbage collected between document reloads
+        https://bugs.webkit.org/show_bug.cgi?id=97020
+
+        Reviewed by Eric Carlson.
+
+        Manual test added: ManualTests/audio-freed-during-reload.html
+
+        * ManualTests/audio-freed-during-reload.html:
+
+2012-09-21  Chris Rogers  <crogers@google.com>
+
+        Add Web Audio support for deprecated/legacy APIs
+        https://bugs.webkit.org/show_bug.cgi?id=97050
+
+        Reviewed by Eric Carlson.
+
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-09-21  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Bail out when trying to build WebKit with Qt != 5
+
+        Reviewed by Tor Arne Vestbø.
+
+        Moved check for Qt version out of default_pre into top-level WebKit.pro,
+        because we never reach default_pre.prf due to the lack of .qmake.conf support
+        in older versions of Qt/QMake.
+
+        * WebKit.pro:
+
+2012-09-20  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] QtWebKit module header includes private dependencies
+
+        Reviewed by Tor Arne Vestbø.
+
+        Moved loading of webkit_modules.prf a few lines down after the definition
+        of QT_API_DEPENDS, because webkit_modules.prf does the sanitization of the
+        QT variable now and therefore needs QT_API_DEPENDS.
+
+        * Source/api.pri:
+
+2012-09-18  Sailesh Agrawal  <sail@chromium.org>
+
+        Chromium: Scrollbar with tickmarks doesn't respond to clicks
+        https://bugs.webkit.org/show_bug.cgi?id=96049
+
+        Reviewed by Beth Dakin.
+
+        Update exported symbols.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-18  Bo Liu  <boliu@chromium.org>
+
+        Revert 128780, 128676, 128645
+        https://bugs.webkit.org/show_bug.cgi?id=97022
+
+        Reviewed by Adam Barth.
+
+        I made these revisions to add in-place reload behavior to ImagesEnabled setting.
+        Reverting this for now due to them causing performance regression in
+        chromium, possibly caused by increased calls to
+        PermissionClient::imageAllowed.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-18  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [CMAKE] Fix build break because of memory exhausted.
+        https://bugs.webkit.org/show_bug.cgi?id=77327
+
+        Reviewed by Gyuyoung Kim.
+
+        Added to avoid memory exhaustion on 32bit linux debug build.
+
+        * Source/cmake/OptionsCommon.cmake:
+
+2012-09-17  Rob Buis  <rbuis@rim.com>
+
+        [BlackBerry] Enable VIDEO_TRACK
+        https://bugs.webkit.org/show_bug.cgi?id=96949
+
+        Reviewed by Antonio Gomes.
+
+        Turn on VIDEO_TRACK feature.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-09-17  Zan Dobersek  <zandobersek@gmail.com>
+
+        [Gtk] Remove configuration options for stable features that are currently enabled
+        https://bugs.webkit.org/show_bug.cgi?id=96621
+
+        Reviewed by Martin Robinson.
+
+        Remove configuration flags that were used for either features that were enabled
+        by default or were enabled only when unstable features support was enabled. In
+        any case the feature was removed only if it does not introduce a dependency.
+
+        * configure.ac:
+
+2012-09-17  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Auto-generate the module pri file for QtWebKit
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2012-09-14  Julien Chaffraix  <jchaffraix@webkit.org>
+
+        Revert r127457 and following fixes due to several hit-testing regressions
+        https://bugs.webkit.org/show_bug.cgi?id=96830
+
+        Reviewed by Antonio Gomes.
+
+        This change reverts r127457, r127863 and r128505.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-14  Adam Barth  <abarth@webkit.org>
+
+        Remove webkitPostMessage
+        https://bugs.webkit.org/show_bug.cgi?id=96577
+
+        Reviewed by Ojan Vafai.
+
+        Add ENABLE_LEGACY_VENDOR_PREFIXES flag.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-09-14  Jeffrey Pfau  <jpfau@apple.com>
+
+        Allow third-party storage blocking setting to change while a page is loaded
+        https://bugs.webkit.org/show_bug.cgi?id=95790
+
+        Reviewed by Brady Eidson.
+
+        Update exported symbols.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-14  Bo Liu  <boliu@chromium.org>
+
+        Add in-place reload behavior to ImagesEnabled setting
+        https://bugs.webkit.org/show_bug.cgi?id=95478
+
+        Reviewed by Adam Barth.
+
+        Export WebCore::Settings::setImagesEnabled symbol.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Fix handling of debug/release/debug_and_release/build_all
+
+        We now pick up the defaults from Qt, in default_pre (CONFIG already
+        contains the appropriate values for debug and release). We then let
+        the command line arguments to qmake, or the project files themselves,
+        override the configuration, and finally we sanitize the configuration
+        in default_post.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2012-09-14  Keishi Hattori  <keishi@webkit.org>
+
+        Add runtime flag that enables lang attribute for form controls in LayoutTests
+        https://bugs.webkit.org/show_bug.cgi?id=96636
+
+        Reviewed by Kent Tamura.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-13  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
+
+        [CMake] Remove some redundant warning flags and enable a few more warnings.
+        https://bugs.webkit.org/show_bug.cgi?id=96654
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/cmake/WebKitHelpers.cmake: Remove a few warning flags
+        which are already enabled by -Wall and -Wextra, remove -W which
+        looks useless and also enable a few more warnings by removing
+        their -Wno-foo counterparts which were present.
+
+2012-09-13  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Ensure that QT is finalized before loading qt_module.prf
+
+        As qt_module.prf does dependency tracking based on the content of the
+        QT variable. The intermediate WebKit modules modify the variable in
+        their .pri files, so we have to ensure we've loaded all the modules
+        before loading qt_module.
+
+        Reviewed by Tor Arne Vestbø.
+        Patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> on 2012-09-13
+
+        * Source/api.pri:
+
+2012-09-13  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Make sure LIBS, PKGCONFIG, and QT, do not affect QtWebKit's prl file
+
+        Unless it's actually a dependency of the public QtWebKit API.
+
+        We could replace every occurance of LIBS, PKGCONFIG, and QT, in the pri
+        files with their _PRIVATE equivivalent, but that's likely to break when
+        someone adds a new QT/LIBS/PKGCONFIG += foo line somewhere. Instead we
+        clean up the variables in default_post.
+
+        This means that the CONFIG -= explicitlib in linkAgainstLibrary() is no
+        longer needed, as it was a workaround for the intermediate libraries ending
+        up in the prl file. And, since CONFIG -= staticlib was there to support
+        the explicitlib option, we can remove that too (as well as the exception
+        for gprof, since it would be empty). If gprof needs tweaks to always link
+        statically they should go in gprof.prf.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2012-09-13  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
+
+        [Qt] Fllow rename of qt_module_config.prf to qt_module.prf
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri:
+
+2012-09-13  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] syncqt isn't re-run when WebKit1.pro changes and we're building with --no-webkit2
+        https://bugs.webkit.org/show_bug.cgi?id=96545
+
+        Reviewed by Tor Arne Vestbø.
+
+        Do the QMAKE_INTERNAL_INCLUDED_FILES trick separately for WebKit1.pro and WebKit2/Target.pri,
+        depending on build?(webkit1) and build?(webkit2), as discussed earlier.
+
+        * Source/api.pri:
+
+2012-09-12  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r127876.
+        http://trac.webkit.org/changeset/127876
+        https://bugs.webkit.org/show_bug.cgi?id=96600
+
+        mouse click doesn't work for spin button if spin button in
+        iframe (Requested by yosin on #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-09-12  KyungTae Kim  <ktf.kim@samsung.com>
+
+        [EFL] Support download attribute feature
+        https://bugs.webkit.org/show_bug.cgi?id=96462
+
+        Reviewed by Gyuyoung Kim.
+
+        * Source/cmake/OptionsEfl.cmake: Enable DOWNLOAD_ATTRIBUTE feature.
+
+2012-09-12  Sami Kyostila  <skyostil@google.com>
+
+        Rename OVERFLOW_SCROLLING as ACCELERATED_OVERFLOW_SCROLLING
+        https://bugs.webkit.org/show_bug.cgi?id=96251
+
+        Reviewed by Simon Fraser.
+
+        Rename OVERFLOW_SCROLLING as ACCELERATED_OVERFLOW_SCROLLING to better describe
+        the feature it controls.
+
+        * Source/cmakeconfig.h.cmake:
+
+2012-09-11  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [CMAKE] Supply feature defines to CodeGeneratorTestRunner.
+        https://bugs.webkit.org/show_bug.cgi?id=96273
+
+        Reviewed by Gyuyoung Kim.
+
+        * Source/cmake/WebKitFeatures.cmake: Generated FEATURE_DEFINES_WITH_SPACE_SEPARATOR.
+
+2012-09-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
+
+        [Gtk] allow building with css-shaders
+        https://bugs.webkit.org/show_bug.cgi?id=95603
+
+        Reviewed by Martin Robinson.
+
+        if unstable features and accelerated compositing are turned on, and
+        acceleration backend is opengl, then build CSS Shaders and CSS
+        Filters.
+
+        * configure.ac:
+
+2012-09-11  Marcelo Lira  <marcelo.lira@openbossa.org>
+
+        Restore original value of mock scrollbars enabled in InternalSettings
+        https://bugs.webkit.org/show_bug.cgi?id=87680
+
+        Reviewed by Adam Barth.
+
+        Added backup support for mock scrollbars state in
+        InternalSettings::Backup, and removed support for these
+        from Qt's DumpRenderTree.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-11  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [EFL] Rewrite the EFL-related Find modules
+        https://bugs.webkit.org/show_bug.cgi?id=95237
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        FindEFL.cmake had several problems which caused unnecessary trouble
+        when building the EFL port under some setups:
+
+        o It looked for some modules (such as ecore) more than once for no
+        reason, which led to people adding libraries and include paths in
+        different ways across the build system.
+
+        o It depended on pkg-config being present for the searches to
+        succeed.
+
+        o It obtained the library definitions from pkg-config, so
+        ${FOO_LIBRARIES} would be set to something like "foo;bar" which
+        expanded to "-lfoo -lbar" to the linker. If a wrong -L<path> was
+        passed before that, the wrong library installation would end up
+        being picked up.
+
+        o Due to the problem above, we also needed to set the LINK_FLAGS
+        property for each target with the value of ${FOO_LDFLAGS}, which was
+        also obtained from pkg-config and sort of compensated the fact that
+        the libraries did not use absolute paths and added the required -L
+        paths. This also included dependencies for these libraries, so we
+        ended up including libraries indirectly, which is bad.
+
+        We have now replaced that file with a set of Find-modules which are
+        much more granular, each of them responsible for looking for a
+        single library and its components and setting library and include
+        locations the right way (with FIND_PATH() and FIND_LIBRARY()), so
+        that all the problems above are fixed.
+
+        * Source/cmake/EFLHelpers.cmake: Added.
+        * Source/cmake/FindEDBus.cmake: Added.
+        * Source/cmake/FindEFL.cmake: Removed.
+        * Source/cmake/FindEcore.cmake: Added.
+        * Source/cmake/FindEdje.cmake: Added.
+        * Source/cmake/FindEeze.cmake: Added.
+        * Source/cmake/FindEfreet.cmake: Added.
+        * Source/cmake/FindEina.cmake: Added.
+        * Source/cmake/FindEvas.cmake: Added.
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-09-11  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] In-source builds are broken
+
+        Reviewed by Tor Arne Vestbø.
+
+        The Tools sub-directory contains a Makefile checked into SVN. For in-source builds let's not try to
+        overwrite it but instead generate a dedicated Makefile.Tools.
+
+        * Makefile:
+        * WebKit.pro:
+
+2012-09-11  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Add a configure step to the Qt build system
+
+        This allows building the Qt port using just 'qmake WebKit.pro'. Using
+        the build-webkit script is still supported, and will add slightly more
+        logic to the build, such as detecting the need for clean or incremental
+        builds.
+
+        Internally, the build system now uses a new variable, WEBKIT_CONFIG, for
+        all things related to configuring the build, such as use/have/enable flags,
+        and these are translated to defines in default_post. Project files should
+        no longer check contains(DEFINES,...) to detect features, but use the new
+        enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2
+        options have been translated into WEBKIT_CONFIG options as well, and can
+        be checked using build?().
+
+        Reviewed by Simon Hausmann.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+        * Source/tests.pri:
+        * WebKit.pro:
+
+2012-09-10  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [CMake][EFL] Enable the LLInt
+        https://bugs.webkit.org/show_bug.cgi?id=92682
+
+        Reviewed by Csaba Osztrogonác.
+
+        Added LLInt to CMake buildsystem and enabled it by default on EFL.
+        Note that Ruby is not enforced: a secondary check is done when LLInt
+        is enabled on the JSC's CMakeLists.txt.
+
+        * CMakeLists.txt:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-09-07  Simon Fraser  <simon.fraser@apple.com>
+
+        box-shadow causes overlay scrollbars to be in the wrong position when element is composited
+        https://bugs.webkit.org/show_bug.cgi?id=85647
+
+        Reviewed by James Robinson.
+
+        Test overlay scrollbars in composited layers.
+
+        * ManualTests/scrollbars/scrollbars-in-composited-layers.html: Added.
+
+2012-09-07  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Move user agent helpers to WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=95745
+
+        Reviewed by Carlos Garcia Campos.
+
+        Added an autoconf step for the new user agent shared code header in
+        WebCore. This is necessary so that we can use the user agent version
+        based on the information in the configure.ac file.
+
+        * configure.ac:
+
+2012-09-07  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
+
+        Simplify hitTestResultAtPoint and nodesFromRect APIs
+        https://bugs.webkit.org/show_bug.cgi?id=95720
+
+        Reviewed by Antonio Gomes.
+
+        Update exported symbols.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-07  Zan Dobersek  <zandobersek@gmail.com>
+
+        [GTK] Multiple feature defines in webcore_cppflags can occur
+        https://bugs.webkit.org/show_bug.cgi?id=95942
+
+        Reviewed by Martin Robinson.
+
+        Add the feature_defines_unstable variable that should control values of feature
+        defines for unstable features when unstable features are not enabled (e.g. release builds).
+
+        * GNUmakefile.am:
+
+2012-09-06  Zan Dobersek  <zandobersek@gmail.com>
+
+        [Gtk] Remove configuration options for features that are not supported by the Gtk port
+        https://bugs.webkit.org/show_bug.cgi?id=87664
+
+        Reviewed by Martin Robinson.
+
+        Remove configuration options for features that are completely unsupported by the GTK port.
+        They only bloat the configure.ac file. They should be re-added when the feature becomes
+        supported and introduces an external dependency that the users might want to avoid.
+
+        * configure.ac:
+
+2012-09-06  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Fix build with ANGLE on platforms that provide EGL/GLESv2
+        https://bugs.webkit.org/show_bug.cgi?id=95965
+
+        Reviewed by Tor Arne Vestbø.
+
+        Add ANGLE as separate static library to the build and dependencies.
+
+        * Source/api.pri:
+        * WebKit.pro:
+
+2012-09-05  George Staikos  <staikos@webkit.org>
+
+        [BlackBerry] Match th ebuild flags from the platform library
+        https://bugs.webkit.org/show_bug.cgi?id=95423
+
+        Reviewed by Antonio Gomes.
+
+        Unaligned build flags can cause crashes and other strange behavior.
+        These two were not defined here but were defined on the system.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-09-05  Kaustubh Atrawalkar  <kaustubh@motorola.com>
+
+        [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals
+        https://bugs.webkit.org/show_bug.cgi?id=92735
+
+        Reviewed by Hajime Morita.
+
+        Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner.
+        Added symbols for GTK builds for corresponding APIs.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-04  Julien Chaffraix  <jchaffraix@webkit.org>
+
+        REGRESSION(r120832): RenderLayer::clampScrollOffset doesn't properly clamp
+        https://bugs.webkit.org/show_bug.cgi?id=95776
+
+        Reviewed by Simon Fraser.
+
+        * ManualTests/select-menu-list-wrongly-positioned.html: Added.
+
+2012-09-04  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
+
+        [EFL] Context menu restore.
+        https://bugs.webkit.org/show_bug.cgi?id=74179
+
+        Reviewed by Gyuyoung Kim.
+
+        Adds context menu support for EFL port using non-CROSS_PLATFORM_CONTEXT_MENUS
+        approach, the same as used in WebKit2.
+
+        * Source/cmake/OptionsEfl.cmake: Turn on CONTEXT_MENUS flag for EFL port
+
+2012-09-04  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
+
+        Allow child-frame content in hit-tests.
+        https://bugs.webkit.org/show_bug.cgi?id=95204
+
+        Reviewed by Antonio Gomes.
+
+        Update exported symbols.
+
+        * Source/autotools/symbols.filter:
+
+2012-09-04  Jinwoo Song  <jinwoo7.song@samsung.com>
+
+        [CMAKE] Update cmakeconfig.h.cmake 
+        https://bugs.webkit.org/show_bug.cgi?id=95712
+       
+        Reviewed by Gyuyoung Kim.
+
+        Update feature definitions which are missing compared to WebKitFeatures.cmake
+
+        * Source/cmakeconfig.h.cmake:
+
+2012-09-03  Jinwoo Song  <jinwoo7.song@samsung.com>
+
+        [EFL] Use WebKitVersion.h to get version information
+        https://bugs.webkit.org/show_bug.cgi?id=95669
+
+        Reviewed by Gyuyoung Kim.
+
+        WEBKIT_USER_AGENT_MAJOR_VERSION and WEBKIT_USER_AGENT_MINOR_VERSION
+        are defined as constant in the OptionsEfl.cmake. But we do not need 
+        to define these here but can use the defined constant in WebKitVersion.h.
+
+        WebKitVersion.h is already generated with the version information 
+        from the Source/WebCore/Configurations/Version.xcconfig.
+
+        * Source/cmake/OptionsEfl.cmake: Do not set WEBKIT_USER_AGENT_* variables.
+        * Source/cmakeconfig.h.cmake: Remove WEBKIT_USER_AGENT_* definitions
+        as no more port uses.
+
+2012-08-31  Tony Chang  <tony@chromium.org>
+
+        Remove ENABLE_CSS3_FLEXBOX compile time flag
+        https://bugs.webkit.org/show_bug.cgi?id=95382
+
+        Reviewed by Ojan Vafai.
+
+        Everyone is already enabling this by default and the spec has stablized.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-08-30  JungJik Lee  <jungjik.lee@samsung.com>
+
+        [EFL][WK2] Add WebMemorySampler feature.
+        https://bugs.webkit.org/show_bug.cgi?id=91214
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Set WebMemorySampler feature on in EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-08-30  Rob Buis  <rbuis@rim.com>
+
+        [CMake] Suppress ANGLE compilation warnings
+        https://bugs.webkit.org/show_bug.cgi?id=95377
+
+        Reviewed by Antonio Gomes.
+
+        Change WEBKIT_SET_EXTRA_COMPILER_FLAGS so it has an option to suppress C++ warnings.
+
+        * Source/cmake/WebKitHelpers.cmake:
+
+2012-08-29  Thiago Macieira  <thiago.macieira@intel.com>
+
+        Tell git-archive to not export .gitattributes and .gitignore
+
+        Reviewed by Simon Hausmann.
+
+        Exclude git specific files from archives created via git-archive.
+
+        * .gitattributes:
+
+2012-08-28  Mario Sanchez Prada  <msanchez@igalia.com>
+
+        Add directory generated by Eclipse to .gitignore
+        https://bugs.webkit.org/show_bug.cgi?id=95231
+
+        Reviewed by Andreas Kling.
+
+        * .gitignore: Ignore .settings directory.
+
+2012-08-27  Rob Buis  <rbuis@rim.com>
+
+        [BlackBerry] remove -fno-rtti option in CMAKE_C_FLAGS
+        https://bugs.webkit.org/show_bug.cgi?id=95089
+
+        Reviewed by Antonio Gomes.
+
+        This option does not make sense for compiling C and gives a warning.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-08-27  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
+
+        Rename RegisterProtocolHandler API to NavigatorContentUtils
+        https://bugs.webkit.org/show_bug.cgi?id=94920
+
+        Reviewed by Adam Barth.
+
+        Modified configuration files so that they contain renamed NavigatorContentUtils-prefixed files.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-08-23  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Disable compilation of WebDOM file for now,
+        add the opentype directory, and remove old ATSUI files no longer in the tree.
+        
+        * wscript:
+
+2012-08-22  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
+
+        [EFL] Use WTF_USE_SOUP instead BUILDING_SOUP__
+        https://bugs.webkit.org/show_bug.cgi?id=94744
+
+        Reviewed by Gustavo Noronha Silva.
+
+        There is no need to define BUILDING_SOUP__ if only WTF_USE_SOUP
+        is used.
+
+        * GNUmakefile.am:
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-08-23  Zan Dobersek  <zandobersek@gmail.com>
+
+        [Gtk] Move feature defines processing into a GNUmakefile that's simple to autogenerate
+        https://bugs.webkit.org/show_bug.cgi?id=87127
+
+        Reviewed by Martin Robinson.
+
+        Add 'feature_defines_defaults' and 'feature_defines_overrides' variables
+        and define them, along with 'feature_defines' (changed from the all-caps version),
+        before webcore_cppflags.
+
+        * GNUmakefile.am:
+
+2012-08-23  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] The tarball should be called webkitgtk-x.x.x.tar.xz
+        https://bugs.webkit.org/show_bug.cgi?id=94572
+
+        Reviewed by Carlos Garcia Campos.
+
+        Change the name of the tarball to match the name of the library
+        and to disambiguate it from other WebKit ports.
+
+        * configure.ac: Update the tarball name.
+
+2012-08-23  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Bump WebKitGTK+ version number.
+
+        * configure.ac: Bump version number to 1.11.0 now that we branched
+        for 1.10.
+
+2012-08-23  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        REGRESSION(r126306): it broke the plugin process
+        https://bugs.webkit.org/show_bug.cgi?id=94797
+
+        Reviewed by Xan Lopez.
+
+        * GNUmakefile.am:
+
+2012-08-22  Beth Dakin  <bdakin@apple.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=94401
+        Add support for making a web site become paginated using overflow: 
+        paged-x | paged-y
+        -and corresponding-
+        <rdar://problem/11831783> 
+
+        Reviewed by Dave Hyatt.
+
+        * Source/autotools/symbols.filter:
+
+2012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
+
+        [GTK] Split WebCore/platform into a separate library
+        https://bugs.webkit.org/show_bug.cgi?id=94435
+
+        Reviewed by Martin Robinson.
+
+        More people have been reporting problems when linking WebCore because
+        the command line limit is being exceeded. Splitting WebCore a bit more
+        is in order.
+
+        * GNUmakefile.am: add variable that will hold the list of source files
+        for libWebCorePlatform .
+
+2012-08-21  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [EFL] Enable CSS Text Decoration by default
+        https://bugs.webkit.org/show_bug.cgi?id=94483
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        By enabling this feature by default, it will get tested by the bots
+        and we can make sure no regressions will happen.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-08-21  Ulan Degenbaev  <ulan@chromium.org>
+
+        Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer constructed and destructed
+        https://bugs.webkit.org/show_bug.cgi?id=92993
+
+        Reviewed by Kenneth Russell.
+
+        Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer
+        is constructed and destructed so that V8's garbage collection
+        heuristics can account for the memory held by these objects.
+
+        * ManualTests/typed-array-memory.html: Added.
+
+2012-08-21  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Using a native window for the WebView breaks GtkOverlay
+        https://bugs.webkit.org/show_bug.cgi?id=90085
+
+        Reviewed by Alejandro G. Castro.
+
+        * configure.ac: Parse xcomposite pkg-config file during configuration.
+
+2012-08-21  Patrick Gansterer  <paroga@webkit.org>
+
+        Build fix for WinCE after r115348.
+
+        * Source/cmake/OptionsWindows.cmake: Removed duplicated WEBKIT_OPTION_DEFAULT_PORT_VALUE().
+
+2012-08-20  George Staikos  <staikos@webkit.org>
+
+        [BlackBerry] Enable XHR Response BLOB
+        https://bugs.webkit.org/show_bug.cgi?id=94525
+
+        Reviewed by Rob Buis.
+
+        Add the XHR response blob enable feature to the cmake build system and
+        enable it for BlackBerry.
+
+        * Source/cmake/OptionsBlackBerry.cmake: Add the feature and enable
+        * Source/cmakeconfig.h.cmake: Add the feature
+
+2012-08-20  Dominik Röttsches  <dominik.rottsches@intel.com>
+
+        [EFL] Get rid of pango backend support once harfbuzz-ng is working
+        https://bugs.webkit.org/show_bug.cgi?id=92102
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Removing choice of font backend, Pango detection not required any more.
+
+        * Source/cmake/FindPango.cmake: Removed.
+        * Source/cmake/LibFindMacros.cmake: Removed.
+        * Source/cmake/OptionsEfl.cmake: Removing choice of font backend.
+
+2012-08-17  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Add FindDBus.cmake and use it in the EFL port.
+        https://bugs.webkit.org/show_bug.cgi?id=94319
+
+        Reviewed by Daniel Bates.
+
+        Currently, the Battery Status-related code in the EFL port uses
+        libdbus but does not directly include its directories or link
+        against it, relying instead on the compiler flags coming via
+        EDbus's pkg-config information.
+
+        That will break once we stop obtaining EFL's include directories
+        and library paths from pkg-config, so write FindDBus.cmake to
+        prepare for that.
+
+        * Source/cmake/FindDBus.cmake: Added.
+        * Source/cmake/OptionsEfl.cmake: Look for D-Bus if BATTERY_STATUS
+        support is enabled.
+
+2012-08-17  Rob Buis  <rbuis@rim.com>
+
+        [BlackBerry] Remove some shared libraries from linking
+        https://bugs.webkit.org/show_bug.cgi?id=94253
+
+        Reviewed by Yong Li.
+
+        Remove some shared libraries.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-08-16  Gustavo Noronha Silva  <gns@gnome.org>
+
+        Unreviewed speculative 32 bits build fix.
+
+        * Source/autotools/symbols.filter: add symbol version that gets
+        generated in 32 bits build.
+
+2012-08-16  Max Feil  <mfeil@rim.com>
+
+        [BlackBerry] Some media controls are mispositioned for dynamic live streams (HLS)
+        https://bugs.webkit.org/show_bug.cgi?id=94176
+
+        Reviewed by Antonio Gomes.
+
+        An automated layout test is not possible for this patch because
+        dynamic live streams require a special dedicated web server.
+        Putting an external video URL into an automated test is not
+        correct either. So I have created a manual test that points to
+        an external HLS video that works today.
+
+        * ManualTests/blackberry/video-hls-controls.html: Added.
+
+2012-08-16  Marja Hölttä  <marja@chromium.org>
+
+        FormController, WebHistoryItem: Enable reading selected file names from document state
+        https://bugs.webkit.org/show_bug.cgi?id=91231
+
+        Reviewed by Jochen Eisinger.
+
+        This change enables Chromium to set up file permissions properly when
+        the session restore feature restores a page with selected files.
+
+        * Source/autotools/symbols.filter: Exported FormController::getReferencedFilePaths and HistoryController::saveDocumentAndScrollState.
+
+2012-08-15  Kent Tamura  <tkent@chromium.org>
+
+        Calendar Picker: Localize numbers in a calendar picker
+        https://bugs.webkit.org/show_bug.cgi?id=93704
+
+        Reviewed by Hajime Morita.
+
+        * ManualTests/forms/calendar-picker.html:
+        Add a mock pagePopupController.localizeNumberString().
+
+2012-08-15  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Update manual tests and comments to refer to TestRunner instead of LayoutTestController
+        https://bugs.webkit.org/show_bug.cgi?id=94168
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/resources/multiFileResources/post-echo-and-notify-done.cgi:
+
+2012-08-15  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
+
+        [css3-text] Add CSS3 Text decoration compile flag
+        https://bugs.webkit.org/show_bug.cgi?id=93863
+
+        Reviewed by Julien Chaffraix.
+
+        This patch handles the compile flag implementation, which will come disabled by
+        default, thus not exposing the CSS3 text decoration features to the web, unless
+        when explicitly enabling it with "--css3-text-decoration" build parameter.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-08-15  Brady Eidson  <beidson@apple.com>
+
+        Removing a plug-in element from a page opened in a background tab in Safari crashes
+        <rdar://problem/12057991> and https://bugs.webkit.org/show_bug.cgi?id=93913
+
+        Reviewed by Beth Dakin.
+
+        * Source/autotools/symbols.filter: Allow this symbol through for DRT's sake.
+
+2012-08-14  Keishi Hattori  <keishi@webkit.org>
+
+        Share common code between calendar picker and color suggestion picker
+        https://bugs.webkit.org/show_bug.cgi?id=93802
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/forms/calendar-picker.html:
+        * ManualTests/forms/color-suggestion-picker.html:
+
+2012-08-14  Milian Wolff  <milian.wolff@kdab.com>
+
+        [Qt] QtWebKit linking fails for QNX cross build
+        https://bugs.webkit.org/show_bug.cgi?id=93460
+
+        Reviewed by Simon Hausmann.
+
+        The GCC 4.4.2 used by the QNX BBNDK 2.0.1 fails to link QtWebKit.
+        Apparently it does not properly support the linker invokation using
+        -Wl,-whole-archive -l... -Wl,-no-whole-archive
+        yielding a "cc: no files to process" error. This patch works around
+        this issue by adding an empty dummy file (and thus object file) to
+        the linking stage.
+
+        * Source/api.pri:
+
+2012-08-14  Keishi Hattori  <keishi@webkit.org>
+
+        Move page popup resources to separate directory
+        https://bugs.webkit.org/show_bug.cgi?id=93932
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/forms/calendar-picker.html:
+        * ManualTests/forms/color-suggestion-picker.html:
+
+2012-08-11  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Rewrite FindLibSoup2.cmake.
+        https://bugs.webkit.org/show_bug.cgi?id=93191
+
+        Reviewed by Rob Buis.
+
+        The existing LibSoup2 was imported from somewhere else and not
+        only did it contain a lot of unnecessary cruft to look for libsoup
+        2.2 (which we do not support anyway), but it also relied on the
+        paths returned by pkg-config for setting the library and include
+        paths.
+
+        For one, this meant "-lsoup-2.4" was passed to the linked instead
+        of "-L/path/to/libsoup-2.4.so", which would sometimes make a
+        system version of libsoup to be picked up instead of the one
+        installed by, say, jhbuild.
+
+        The new FindLibSoup.cmake now only looks for libsoup 2.4 and
+        relies on pkg-config solely for retrieving the current LibSoup
+        version.
+
+        * Source/cmake/FindLibSoup.cmake: Added.
+        * Source/cmake/FindLibSoup2.cmake: Removed.
+        * Source/cmake/OptionsEfl.cmake: Look for LibSoup instead of
+        LibSoup2, look for the GObject component of Glib.
+
+2012-08-13  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Remove glib-related Find modules and write single new one instead.
+        https://bugs.webkit.org/show_bug.cgi?id=93786
+
+        Reviewed by Rob Buis.
+
+        As part of the ongoing effort to write proper Find modules that use
+        absolute include and library paths instead of the short ones from
+        pkg-config, replace Find{GIO,Glib,Gthread}.cmake with a single
+        FindGLIB.cmake that optionally detects components such as GIO and
+        GObject.
+
+        Library paths are now defined as "/full/path/to/libfoo.so" instead of
+        simply "foo", so that the linker receives a full path and we can then
+        avoid accidentally picking up a libfoo.so installed into /usr/lib
+        instead of a local one built with jhbuild.
+
+        * Source/cmake/FindGIO.cmake: Removed.
+        * Source/cmake/FindGLIB.cmake: Added.
+        * Source/cmake/FindGlib.cmake: Removed.
+        * Source/cmake/FindGthread.cmake: Removed.
+        * Source/cmake/OptionsEfl.cmake: Look for GLIB with the GIO component.
+
+2012-08-13  Zan Dobersek  <zandobersek@gmail.com>
+
+        [Gtk] Remove SVG_FEATURES and HTML_FEATURES from Source/WebCore/GNUmakefile.am
+        https://bugs.webkit.org/show_bug.cgi?id=90693
+
+        Reviewed by Philippe Normand.
+
+        Remove exportation of SVG_FLAGS and HTML_FLAGS as Automake conditionals
+        as they are not required anymore.
+
+        * configure.ac:
+
+2012-08-12  Loïc Yhuel  <loic.yhuel@softathome.com>
+
+        [Qt] Make it possible to build without QtTest/QtPrintSupport
+        https://bugs.webkit.org/show_bug.cgi?id=93492
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/QtWebKit.pro: Disable tests if no testlib
+
+2012-08-10  Rob Buis  <rbuis@rim.com>
+
+        [BlackBerry] Enable relro link option for JSC executable
+        https://bugs.webkit.org/show_bug.cgi?id=93726
+
+        Reviewed by Yong Li.
+
+        Enable relro link option for JSC executable.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-08-09  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Bump minimum required version to 2.8.3.
+        https://bugs.webkit.org/show_bug.cgi?id=93450
+
+        Reviewed by Daniel Bates.
+
+        Following the discussion in bug 93189, it was decided that bumping
+        the minimum required version from 2.8.0 to 2.8.3 was a good thing
+        due to additional features, such as improved
+        FIND_PACKAGE_HANDLE_STANDARD_ARGS() support and better argument
+        handling in the PKG_CHECK_MODULES() call.
+
+        CMake 2.8.3 was released almost two years ago, so people are
+        expected to have it or a later version installed.
+
+        * CMakeLists.txt:
+
+2012-08-08  Shane Stephens  <shanestephens@google.com>
+
+        Compile flag for CSS Hierarchies
+        https://bugs.webkit.org/show_bug.cgi?id=92433
+
+        Reviewed by Tony Chang.
+
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-08-08  Ming Xie  <mxie@rim.com>
+
+        [BlackBerry] Fix "-fPIC" define in the BlackBerry build
+        https://bugs.webkit.org/show_bug.cgi?id=93548
+
+        Reviewed by Rob Buis.
+
+        In the current CMake release (version 2.8.5), ${CMAKE_SHARED
+        _LIBRARY_C_FLAGS} and ${CMAKE_SHARED_LIBRARY_CXX_FLAGS} is
+        set to empty (See cmake/Modules/Platform/QNX.cmake)
+
+        This breaks the assumption which WebKit CMake build system 
+        makes in Source/cmake/WebKitHelper.cmake
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-08-08  Philippe Normand  <pnormand@igalia.com>
+
+        [GStreamer] 0.11 build broken (again)
+        https://bugs.webkit.org/show_bug.cgi?id=93474
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Disable media-stream build if GStreamer 0.11
+        support is enabled, due to farstream-0.1 still messing up with
+        gstreamer-0.10 include path.
+
+2012-08-07  YoungTaeck Song  <youngtaeck.song@samsung.com>
+
+        [WK2][EFL] Implement accelerated compositing on WK2 Efl port
+        https://bugs.webkit.org/show_bug.cgi?id=89840
+
+        Reviewed by Noam Rosenthal.
+
+        Implement accelerated composition with TiledBackingStore on WK2 Efl port.
+        This implementation is based on COORDINATED_GRAPHICS.
+        Add COORDINATED_GRAPHICS related definitions in OptionsEfl.cmake.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-08-07  No'am Rosenthal  <noam.rosenthal@nokia.com>
+
+        [Qt] Make it possible to build without QtQuick
+
+        Reviewed by Simon Hausmann.
+
+        * Source/QtWebKit.pro:
+        * Source/tests.pri:
+
+2012-07-19  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Remove Qt 4 specific code paths
+        https://bugs.webkit.org/show_bug.cgi?id=88161
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/api.pri:
+        * WebKit.pro:
+
+2012-08-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [EFL] Enable link prefetch
+        https://bugs.webkit.org/show_bug.cgi?id=93281
+
+        Reviewed by Kentaro Hara.
+
+        * Source/cmake/OptionsEfl.cmake: Enable LINK_PREFETCH by default.
+
+2012-08-06  Xan Lopez  <xlopez@igalia.com>
+
+        [GTK] Cleanup configure.ac build options output
+        https://bugs.webkit.org/show_bug.cgi?id=93245
+
+        Reviewed by Laszlo Gombos.
+
+        Remove duplicated elements, sort alphabetically.
+
+        * configure.ac: ditto.
+
+2012-08-06  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Update NEWS and configure.ac for 1.9.6 release
+
+        * configure.ac: Bump version numbers.
+
+2012-08-03  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake][WIN] Disable C++ exceptions and RTTI
+        https://bugs.webkit.org/show_bug.cgi?id=93104
+
+        Reviewed by Ryosuke Niwa.
+
+        Both features are not used in WebKit, so remove them to safe some code.
+        Also enable compilation of plain c files with multiple processes.
+
+        * Source/cmake/OptionsWindows.cmake:
+
+2012-08-03  Mario Sanchez Prada  <msanchez@igalia.com>
+
+        Unreviewed build fix for GTK after r124479.
+
+        * Source/autotools/symbols.filter: Removed unneeded symbol.
+
+2012-08-03  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
+
+        [Qt] Populate .qmake.cache from the top-level project file
+
+        This makes it possible to build webkit without using the perl build
+        script. The duplicated logic in build-webkit will be removed when we
+        remove the Qt4 code paths. The build-webkit script will then simply
+        call 'qmake WebKit.pro' from WEBKITOUTPUTDIR.
+
+        Reviewed by Tor Arne Vestbø.
+
+        * WebKit.pro:
+
+2012-08-03  Dominik Röttsches  <dominik.rottsches@intel.com>
+
+        [cmake] Cleanup FindHarfBuzz.cmake
+        https://bugs.webkit.org/show_bug.cgi?id=92984
+
+        Reviewed by Hajime Morita.
+
+        Cleanup which didn't make it into my previous ptch.
+
+        * Source/cmake/FindHarfBuzz.cmake: Remove duplicate line, add a bit of documentation.
+
+2012-08-03  Joone Hur  <joone.hur@intel.com>
+
+        [EFL][DRT] WebKitAnimation API compile-time disabled
+        https://bugs.webkit.org/show_bug.cgi?id=84593
+
+        Reviewed by Laszlo Gombos.
+
+        Enable ENABLE_ANIMATION_API by default on the Efl port.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-08-02  Zan Dobersek  <zandobersek@gmail.com>
+
+        Unreviewed attempt at fixing the GTK 64-bit debug build.
+
+        * Source/autotools/symbols.filter:
+
+2012-08-02  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] When farstream is not present do not enable MediaStream
+
+        Reviewed by Philippe Normand.
+
+        When farstream libraries are no present, simply do not build MediaStream
+        support.
+
+        * configure.ac:
+
+2012-08-01  Jian Li  <jianli@chromium.org>
+
+        Add new CSS property "-webkit-widget-region" to expose dashboard region support for other port
+        https://bugs.webkit.org/show_bug.cgi?id=90298
+
+        Reviewed by Adam Barth.
+
+        * configure.ac: Add ENABLE_WIDGET_REGION define.
+
+2012-07-31  Joshua Netterfield  <jnetterfield@rim.com>
+
+        [BlackBerry] Enable CSS Filter Effects
+        https://bugs.webkit.org/show_bug.cgi?id=92685
+
+        Reviewed by Rob Buis.
+
+        Enable CSS filter effects, with the exception of custom effects (CSS shaders) and reference effects (SVG effects)
+
+        Internally reviewed by Arvid Nilsson <anilsson@rim.com> and Antonio Gomes <agomes@rim.com>.
+
+        * Source/cmake/OptionsBlackBerry.cmake: Add LayerFilterRenderer
+        * Source/cmakeconfig.h.cmake: Acknowledge CSS filter effects
+
+2012-07-31  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic: dashboard images are not generated properly from incrementally updated JSON
+        https://bugs.webkit.org/show_bug.cgi?id=92717
+
+        Reviewed by Hajime Morita.
+
+        Sort the values by timestamp. Unfortunately, there isn't a good way of testing this fix.
+
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Runs.chart_params):
+
+2012-07-31  Danilo Cesar Lemes de Paula  <danilo.cesar@collabora.co.uk>
+
+        add Farstream flags/deps to WebKit, for WebRTC
+        https://bugs.webkit.org/show_bug.cgi?id=87524
+
+        Reviewed by Philippe Normand.
+
+        Since Farstream will be used as the backend for GTK's WebRTC, this
+        patch adds it as a dependency to the build system.
+
+        * GNUmakefile.am:
+        * configure.ac:
+
+2012-07-30  Ryosuke Niwa  <rniwa@webkit.org>
+
+        /api/test/runs/chart expires on perf-o-matic
+        https://bugs.webkit.org/show_bug.cgi?id=92714
+
+        Reviewed by Hajime Morita.
+
+        Don't update the entire JSON while generating the dashboard images.
+        This is a bug and not doing this will reduce the server load significantly.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (RunsChartHandler.post):
+
+2012-07-30  Dominik Röttsches  <dominik.rottsches@intel.com>
+
+        Avoid Assertion Failure in HarfBuzzRun::characterIndexForXPosition
+        https://bugs.webkit.org/show_bug.cgi?id=92376
+
+        Reviewed by Tony Chang.
+
+        Added manual test to reliably reproduce assertion failure which is solved by this patch.
+
+        * ManualTests/harfbuzz-mouse-selection-crash.html: Added.
+
+2012-07-29  Vsevolod Vlasov  <vsevik@chromium.org>
+
+        Web Inspector: Resource agent's reference to cached resources should be weak.
+        https://bugs.webkit.org/show_bug.cgi?id=92108
+
+        Reviewed by Pavel Feldman.
+
+        * Source/autotools/symbols.filter:
+
+2012-07-30  Shinya Kawanaka  <shinyak@chromium.org>
+
+        Prohibit having AuthorShadowDOM of input or textarea element for a while and having a flag to enable it in Internals.
+        https://bugs.webkit.org/show_bug.cgi?id=92611
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r124000.
+        http://trac.webkit.org/changeset/124000
+        https://bugs.webkit.org/show_bug.cgi?id=92632
+
+        seems to have broken chromium Range_InstanceSizeUnknown unit
+        test across many platforms (Requested by tomhudson on
+        #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-07-30  Patrick Gansterer  <paroga@webkit.org>
+
+        Replace UnicodeWinCE with UnicodeWchar
+        https://bugs.webkit.org/show_bug.cgi?id=92539
+
+        Reviewed by Ryosuke Niwa.
+
+        UnicodeWinCE never contained WinCE specific code. UnicodeWchar
+        is a replacement for it, which is mainly based on the functions
+        from <wchar.h>. It is ment as a minimal Unicode backend, which
+        can be used very easy and has no external dependencies.
+
+        * Source/cmake/OptionsWinCE.cmake:
+
+2012-07-29  Vsevolod Vlasov  <vsevik@chromium.org>
+
+        Web Inspector: Resource agent's reference to cached resources should be weak.
+        https://bugs.webkit.org/show_bug.cgi?id=92108
+
+        Reviewed by Pavel Feldman.
+
+        * Source/autotools/symbols.filter:
+
+2012-07-29  Rik Cabanier  <cabanier@adobe.com>
+
+        Add ENABLE_CSS_COMPOSITING flag
+        https://bugs.webkit.org/show_bug.cgi?id=92553
+
+        Reviewed by Dirk Schulze.
+
+        Adds compiler flag CSS_COMPOSITING to build systems to enable CSS blending and compositing. See spec https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-07-27  Kihong Kwon  <kihong.kwon@samsung.com>
+
+        [EFL] Support for HTML media capture
+        https://bugs.webkit.org/show_bug.cgi?id=91842
+
+        Reviewed by Ryosuke Niwa.
+
+        Add HTML media capture feature, and enable that on the Efl port.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-27  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Unreviewed perf-o-matic build fix for dashboard image generation.
+        Also, only show Parser/html5-full-render on the dashboard by default
+        so that it won't take forever to load it.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (schedule_runs_update):
+        (RunsChartHandler.post):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Runs.chart_params):
+        (DashboardImage.get_image):
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (RunsTest.test_chart_params_with_value):
+
+2012-07-27  Dominik Röttsches  <dominik.rottsches@intel.com>
+
+        [Cairo] Add complex font drawing using HarfbuzzNG
+        https://bugs.webkit.org/show_bug.cgi?id=91864
+
+        Reviewed by Simon Hausmann and Martin Robinson.
+
+        Configuring Freetype backend to use HarfBuzz by default.
+
+        * Source/cmake/FindHarfBuzz.cmake: Added pkgconfig based discovery of HarfBuzz.
+        * Source/cmake/OptionsEfl.cmake: Adding Harfbuzz configuration.
+
+2012-07-26  Dan Bernstein  <mitz@apple.com>
+
+        When Safari 6 is launched via the WebKit Xcode workspace, it does not link against the built frameworks
+        https://bugs.webkit.org/show_bug.cgi?id=92331
+
+        Reviewed by Mark Rowe.
+
+        Changed references to the Safari executable to the SafariForWebKitDevelopment binary.
+
+        * WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme:
+        * WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
+
+2012-07-26  Keishi Hattori  <keishi@webkit.org>
+
+        Implement ColorSuggestionPicker page popup
+        https://bugs.webkit.org/show_bug.cgi?id=92109
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/forms/color-suggestion-picker.html: Added. Tests colorSuggestionPicker.{js,css}
+
+2012-07-26  Zoltan Nyul  <zoltan.nyul@intel.com>
+
+        [EFL] EFL port should use XDG paths
+        https://bugs.webkit.org/show_bug.cgi?id=91719
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Efreet library added.
+
+        * Source/cmake/FindEFL.cmake:
+
+2012-07-26  Kaustubh Atrawalkar  <kaustubh@motorola.com>
+
+        [DRT] LTC:: pageNumberForElementById() could be moved to Internals.
+        https://bugs.webkit.org/show_bug.cgi?id=92091
+
+        Reviewed by Adam Barth.
+
+        Exporting Internals::pageNumber symbols for the Gtk build.
+
+        * Source/autotools/symbols.filter:
+
+2012-07-25  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r123606.
+        http://trac.webkit.org/changeset/123606
+        https://bugs.webkit.org/show_bug.cgi?id=92247
+
+        broke Windows build of Chromium (Requested by tomhudson on
+        #webkit).
+
+        * ManualTests/forms/color-suggestion-picker.html: Removed.
+
+2012-07-25  Keishi Hattori  <keishi@webkit.org>
+
+        Implement ColorSuggestionPicker page popup
+        https://bugs.webkit.org/show_bug.cgi?id=92109
+
+        Reviewed by Kent Tamura.
+
+        * ManualTests/forms/color-suggestion-picker.html: Added. Tests colorSuggestionPicker.{js,css}
+
+2012-07-23  Kent Tamura  <tkent@chromium.org>
+
+        [GTK] Remove unnecessary trailing space in the previous commit.
+
+        * Source/autotools/symbols.filter:
+
+2012-07-23  Kent Tamura  <tkent@chromium.org>
+
+        [GTK] Attempt to fix build
+
+        * Source/autotools/symbols.filter: Export DocumentMarkerController::addTextMatchMarker.
+
+2012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r123184, r123195, and r123197.
+        http://trac.webkit.org/changeset/123184
+        http://trac.webkit.org/changeset/123195
+        http://trac.webkit.org/changeset/123197
+        https://bugs.webkit.org/show_bug.cgi?id=92049
+
+        pagecycler regression (Requested by morrita on #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-07-23  Roger Fong  <roger_fong@apple.com>
+
+        If select element in Windows is off screen horizontally, 
+        menu is either inappropriately resized or positioned offscreen.
+        https://bugs.webkit.org/show_bug.cgi?id=91913
+        <rdar://problem/7611229>
+
+        Reviewed by Tim Horton.
+
+        Add a manual test to verify that popup menus render in the correct place.
+        
+        * ManualTests/win/select-menu-off-screen.html: Added.
+
+2012-07-23  Simon Fraser  <simon.fraser@apple.com>
+
+        Implement sticky positioning
+        https://bugs.webkit.org/show_bug.cgi?id=90046
+
+        Reviewed by Ojan Vafai.
+
+        Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
+        
+        Sort the ENABLE_CSS lines in the file.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-23  Patrick Gansterer  <paroga@webkit.org>
+
+        [WINCE] Define NOMINMAX in the build system instead of Platform.h
+        https://bugs.webkit.org/show_bug.cgi?id=91938
+
+        Reviewed by Ryosuke Niwa.
+
+        Define it in OptionsWindows.cmake, since NOMINMAX
+        should to be defined for all windows ports.
+
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmake/OptionsWindows.cmake:
+
+2012-07-22  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r123298 and r123301.
+        http://trac.webkit.org/changeset/123298
+        http://trac.webkit.org/changeset/123301
+        https://bugs.webkit.org/show_bug.cgi?id=91953
+
+        We need to think some more about the intricacies of exposing a
+        CMake option for ENABLE_DFG_JIT as this option is specific to
+        the port and architecture. (Requested by dydx on #webkit).
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-22  Daniel Bates  <dbates@webkit.org>
+
+        Fix the Windows CE build after <http://trac.webkit.org/changeset/123298>
+        (https://bugs.webkit.org/show_bug.cgi?id=91939)
+
+        Disable the DFG JIT across all CMake ports (by default) (*). Enabling DFG JIT
+        breaks the Windows CE build as the Windows CE port builds with the JIT disabled
+        (ENABLE_JIT := 0) and hence ENABLE_ASSEMBLER := 0.
+
+        (*) We should look to further discuss with CMake port maintainers about enabling
+        the DFG JIT by default.
+
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-07-23  Kent Tamura  <tkent@chromium.org>
+
+        Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively
+        https://bugs.webkit.org/show_bug.cgi?id=91941
+
+        Reviewed by Kentaro Hara.
+
+        A flag name for an elmement should be ENABLE_*_ELEMENT.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-07-22  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Add option for ENABLE_DFG_JIT
+        https://bugs.webkit.org/show_bug.cgi?id=91939
+
+        Reviewed by Daniel Bates.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-22  Kent Tamura  <tkent@chromium.org>
+
+        Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT
+        https://bugs.webkit.org/show_bug.cgi?id=91928
+
+        Reviewed by Kentaro Hara.
+
+        A flag name for an elmement should be ENABLE_*_ELEMENT.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-07-20  Kent Tamura  <tkent@chromium.org>
+
+        Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT
+        https://bugs.webkit.org/show_bug.cgi?id=91846
+
+        Reviewed by Kentaro Hara.
+
+        A flag name for an elmement should be ENABLE_*_ELEMENT.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-07-19  MORITA Hajime  <morrita@google.com>
+
+        [Refactoring] Replace Node's Document pointer with a TreeScope pointer
+        https://bugs.webkit.org/show_bug.cgi?id=59816
+
+        Reviewed by Ryosuke Niwa.
+
+        * Source/autotools/symbols.filter: Added newly exported symbols.
+
+2012-07-19  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Bump libsoup dependency to v2.39.4.1 to fix cookie issues
+        https://bugs.webkit.org/show_bug.cgi?id=91741
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Bump libsoup dependency in CMake to v2.39.4.1 to fix issues
+        with cookies in non-suffixed/private domains [GNOME #679230].
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-07-19  Mario Sanchez Prada  <msanchez@igalia.com>
+
+        [GTK] Enable MHTML support by default at build time
+        https://bugs.webkit.org/show_bug.cgi?id=89987
+
+        Reviewed by Carlos Garcia Campos.
+
+        Enable MHTML support by default for GTK in configure.ac.
+
+        * configure.ac:
+
+2012-07-18  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [CMake][EFL] Should try to find the same libsoup version pulled by jhbuild
+        https://bugs.webkit.org/show_bug.cgi?id=91626
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Bump required version of libsoup in CMake to 2.39.3. This is the first
+        tarball version to contain the API we need (soup_cookie_jar_get_cookies()
+        and soup_cookie_jar_set_cookie_with_first_party()).
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-07-18  Varun Jain  <varunjain@chromium.org>
+
+        [chromium] Drag image for image elements should be scaled with device scale factor.
+        https://bugs.webkit.org/show_bug.cgi?id=89688
+
+        Reviewed by Adam Barth.
+
+        * ManualTests/chromium/drag-image-accounts-for-device-scale.html:
+
+2012-07-18  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [CMake] Make gtest a shared library
+        https://bugs.webkit.org/show_bug.cgi?id=90973
+
+        Reviewed by Daniel Bates.
+
+        It's nicer to make it a shared library because it might improve
+        linking time and we don't need to force gtest users to link with gtest
+        dependencies like pthreads (which causes linking errors when it is not
+        available).
+
+        * Source/cmake/gtest/CMakeLists.txt:
+
+2012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
+
+        [Qt][V8] Remove the V8 related codepaths and configuration
+        https://bugs.webkit.org/show_bug.cgi?id=90863
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+        * WebKit.pro:
+
+2012-07-17  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r122834.
+        http://trac.webkit.org/changeset/122834
+        https://bugs.webkit.org/show_bug.cgi?id=91492
+
+        it broke the chromium (Requested by kkristof on #webkit).
+
+        * Source/api.pri:
+        * WebKit.pro:
+
+2012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
+
+        [Qt][V8] Remove the V8 related codepaths and configuration
+        https://bugs.webkit.org/show_bug.cgi?id=90863
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+        * WebKit.pro:
+
+2012-07-17  David Barr  <davidbarr@chromium.org>
+
+        Introduce ENABLE_CSS_IMAGE_ORIENTATION compile flag
+        https://bugs.webkit.org/show_bug.cgi?id=89055
+
+        Reviewed by Kent Tamura.
+
+        The css3-images module is at candidate recommendation.
+        http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-orientation
+
+        Add a configuration option for CSS image-orientation support, disabling it by default.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-16  Pete Williamson  <petewil@google.com>
+
+        Expose an export for the iconUrl list so Internals can use it
+        https://bugs.webkit.org/show_bug.cgi?id=88665
+
+        Reviewed by Kent Tamura.
+
+        * Source/autotools/symbols.filter: export iconURLs
+
+2012-07-16  Hajime Morrita  <morrita@chromium.org>
+
+        WebCore needs WEBCORE_TESTING macro to mark methods being exported for testing.
+        https://bugs.webkit.org/show_bug.cgi?id=90764
+
+        Reviewed by Adam Barth.
+
+        Removed symbols which are now covered by WEBCORE_TESTING.
+
+        * Source/autotools/symbols.filter:
+
+2012-07-16  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Update NEWS and configure.ac for 1.9.5 release
+
+        * configure.ac: Bump version number.
+
+2012-07-12 Josh Hawn <jhawn@apple.com>
+
+        Fix for WebContext::getWebCoreStatistics() causes crash if no m_process
+        https://bugs.webkit.org/show_bug.cgi?id=91116
+
+        Reviewed by Simon Fraser.
+
+        * Source/WebKit2/UIProcess/WebContext.cpp:
+          WebContext::getWebCoreStatistics():
+                Now invalidates callback if no m_process.
+
+2012-07-13  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [CMake] Proper handling of ENABLE_API_TESTS build option
+        https://bugs.webkit.org/show_bug.cgi?id=91221
+
+        Reviewed by Rob Buis.
+
+        Make the flag reusable across the ports using CMake. We are about to enable the WTF,
+        WebCore and WebKit 2 API's at Tools/TestWebKitAPI and other ports using CMake can get
+        it almost for free.
+
+        * CMakeLists.txt:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-11  Matt Falkenhagen  <falken@chromium.org>
+
+        Add dialog element feature toggle to InternalSettings
+        https://bugs.webkit.org/show_bug.cgi?id=90934
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter: Added newly exported symbol.
+
+2012-07-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
+
+        [Gtk] allow building with css-filters
+        https://bugs.webkit.org/show_bug.cgi?id=90908
+
+        Add support for css-filters in Source/WebCore/GNUmakefile.am
+        configure.ac
+
+        Reviewed by Eric Seidel.
+
+        * configure.ac:
+
+2012-07-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [CMAKE] Add missing feature macros
+        https://bugs.webkit.org/show_bug.cgi?id=90890
+
+        Reviewed by Eric Seidel.
+
+        ENABLE_CSS_EXCLUSIONS, ENABLE_CSS_REGIONS, ENABLE_TEXT_AUTOSIZING macros
+        haven't defined in cmake feature list.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-10  Kent Tamura  <tkent@chromium.org>
+
+        RTL calendar picker for <input type=date> is too narrow and clipped
+        https://bugs.webkit.org/show_bug.cgi?id=90864
+
+        Reviewed by Kentaro Hara.
+
+        * ManualTests/forms/calendar-picker.html:
+        - Add isRTL:true for the arabic setting
+        - Reset the iframe size when the setting is changed.
+
+2012-07-10  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r122178.
+        http://trac.webkit.org/changeset/122178
+        https://bugs.webkit.org/show_bug.cgi?id=90857
+
+        browser tests, PrerenderBrowserTest.PrerenderFavicon and other
+        tests, started to fail (Requested by hayato on #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-07-09  Matt Falkenhagen  <falken@chromium.org>
+
+        Add ENABLE_DIALOG_ELEMENT and skeleton files
+        https://bugs.webkit.org/show_bug.cgi?id=90521
+
+        Reviewed by Kent Tamura.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-09  Pete Williamson  <petewil@google.com>
+
+        Expose an export for the iconUrl list so Internals can use it
+        https://bugs.webkit.org/show_bug.cgi?id=88665
+
+        Reviewed by Kent Tamura.
+
+        * Source/autotools/symbols.filter: export iconURLs
+
+2012-07-09  Mike Lattanzio  <mlattanzio@rim.com>
+
+        [BlackBerry] meta viewport initial-scale doesn't factor in device pixel ratio
+        https://bugs.webkit.org/show_bug.cgi?id=90575
+
+        Reviewed by Rob Buis.
+
+        Add a manual test to verify wide content doesn't interfere
+        with initial-scale calculations.
+
+        Internal review from Konrad Piascik.
+
+        * ManualTests/blackberry/meta-viewport-initial-scale-wide-content.html: Added.
+
+2012-07-09  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r122107.
+        http://trac.webkit.org/changeset/122107
+        https://bugs.webkit.org/show_bug.cgi?id=90794
+
+        Build failure on Mac debug bots (Requested by falken_ on
+        #webkit).
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-09  Matt Falkenhagen  <falken@chromium.org>
+
+        Add ENABLE_DIALOG_ELEMENT and skeleton files
+        https://bugs.webkit.org/show_bug.cgi?id=90521
+
+        Reviewed by Kent Tamura.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-06  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [EFL][CMake] Move gtest sources to an upper level
+        https://bugs.webkit.org/show_bug.cgi?id=90602
+
+        Reviewed by Chang Shu.
+
+        CTest was enabled for all the ports, but used only by EFL. Now
+        ENABLE_API_TESTS has to be defined, which will also build gtest.
+
+        * CMakeLists.txt:
+        * Source/CMakeLists.txt:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/gtest/CMakeLists.txt: Added.
+
+2012-07-06  Zan Dobersek  <zandobersek@gmail.com>
+
+        [Gtk] Add a configuration option for disabling unstable features in releases
+        https://bugs.webkit.org/show_bug.cgi?id=87995
+
+        Reviewed by Martin Robinson.
+
+        Add a configuration flag for enabling the unstable features - features of which
+        support in the Gtk port is being worked on but is not yet complete. The primary
+        use of this flag is when compiling through the build-webkit script.
+
+        All the features that are currently enabled when building through build-webkit but
+        are disabled by default when executing the configure script directly have their default
+        value (when the correspondent flag is not passed) set to 'yes' when unstable features
+        are enabled and 'no' otherwise. This way unstable features are kept disabled when performing
+        a release build (unless they are specifically enabled).
+
+        * configure.ac:
+
+2012-07-06  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
+
+        [Qt] Remove custom qmake logic for module creation
+
+        Qmake now has the necessary hooks to cleanly override the build locations.
+
+        https://bugs.webkit.org/show_bug.cgi?id=90461
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri:
+
+2012-07-06  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
+
+        [Qt] Add top-level .qmake.conf
+
+        With Qt5, this makes setting $QMAKEPATH externally unnecessary.
+
+        The magic in the perl scripts to set QMAKEPATH is still there, as it doesn't
+        hurt, and is still required for Qt4.
+
+        https://bugs.webkit.org/show_bug.cgi?id=90461
+
+        Reviewed by Tor Arne Vestbø.
+
+        * .qmake.conf: Added.
+        * WebKit.pro:
+
+2012-07-06  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
+
+        [Qt] Let qt_module_config create the forwarding module pri file
+
+        https://bugs.webkit.org/show_bug.cgi?id=90461
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/sync.profile:
+
+2012-07-06  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
+
+        [Qt] Don't let qt_webkit.pri proclaim its own location
+
+        This won't work any more with recent Qt5 versions, as the forwarding
+        pri is created by qt_module_config, which needs MODULE_PRI to be set
+        up already.
+
+        We also need to load build_config, not qt_module.
+
+        https://bugs.webkit.org/show_bug.cgi?id=90461
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri:
+
+2012-07-06  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
+
+        [Qt] Remove redundant CONFIG+=module
+
+        qt_module_config takes care of that.
+
+        In api.pri we are actually testing the flag ourselves, so now we need to
+        test a related flag qt_module_config sets instead.
+
+        https://bugs.webkit.org/show_bug.cgi?id=90461
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri:
+
+2012-07-06  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
+
+        [Qt] Adjust to changed generation of master include file
+
+        The responsiblity for creating the master include was moved out of syncqt.
+        @ignore_for_master_contents still stays, as syncqt (ab-)uses this for
+        determining whether a header is private.
+
+        https://bugs.webkit.org/show_bug.cgi?id=90461
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/sync.profile:
+
+2012-07-05  Rob Buis  <rbuis@rim.com>
+
+        [CMake] Fix some CMake warnings
+        https://bugs.webkit.org/show_bug.cgi?id=90558
+
+        Fix WebKit options so they match with FeatureList.pm.
+
+        Reviewed by Dan Bates.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move Webkit1 before WebKit2 in the build order
+
+        Reviewed by Csaba Osztrogonác.
+
+        * WebKit.pro:
+
+2012-07-05  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [CMAKE] Unreviewd typo fix after r121857
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2012-07-05  Dongwoo Im  <dw.im@samsung.com>
+
+        [EFL] Enable the CUSTOM_SCHEME_HANDLER feature as default.
+        https://bugs.webkit.org/show_bug.cgi?id=88608
+
+        Reviewed by Hajime Morita.
+
+        * Source/cmake/OptionsEfl.cmake: Enable the CUSTOM_SCHEME_HANDLER feature as default.
+
+2012-07-05  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [Wk2][EFL] EFL needs a WebKitTestRunner
+        https://bugs.webkit.org/show_bug.cgi?id=87659
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/CMakeLists.txt:
+        Set compiler flags for WebCoreTestSupport to be linked into TestRunnerInjectedBundle
+        shared library.
+        * Source/cmake/WebKitMacros.cmake: Remove unnecessary dependency.
+
+2012-07-04  John Mellor  <johnme@chromium.org>
+
+        Text Autosizing: Add compile flag and runtime setting
+        https://bugs.webkit.org/show_bug.cgi?id=87394
+
+        This patch renames Font Boosting to Text Autosizing.
+
+        Reviewed by Adam Barth.
+
+        * configure.ac:
+
+2012-07-04  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [CMAKE] Add GENERATE_BINDINGS macro to share the codes which use generate-bindings.pl.
+        https://bugs.webkit.org/show_bug.cgi?id=90258
+
+        Reviewed by Rob Buis.
+
+        This new macro calls generate-bindings.pl and append generated sources
+        into proper source list.
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2012-07-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Get rid of un-needed QT += declarative for Qt 5
+
+        The declarative module has been renamed to quick1 in Qt 5, and the
+        engine-only module for Qt 5 is named 'qml'. For many of the instances
+        we could just remove 'declarative', since the project file was only
+        used for Qt5/WebKit2 builds. In the other cases the module was wrapped
+        in a haveQt(4) scope.
+
+        Reviewed by Csaba Osztrogonác.
+
+        * Source/api.pri:
+
+2012-07-03  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable CSS variables support at compile time
+        https://bugs.webkit.org/show_bug.cgi?id=90448
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Turn on CSS_VARIABLES flag by default on EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-03  George Staikos  <staikos@webkit.org>
+
+        [BlackBerry] Enable microdata support for BlackBerry.
+        https://bugs.webkit.org/show_bug.cgi?id=90429
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-07-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Make use of .qmake.cache for caching features
+
+        Instead of loading() features from the files that need them (and re-running
+        a bunch of checks), we now run feature detection as part of configure.pro,
+        and have build-webkit write the computed feature-defines and CONFIG to
+        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+        when building WebKit.pro.
+
+        At some point we'll be able to selectivly prevent running of config tests
+        in configure.pro, which means we don't need a separate code-path for
+        the build-webkit --help case.
+
+        We should also move the code in build-webkit that now uses .webkit.config
+        to detect clean builds, to use .qmake.cache, since we now store the same
+        thing there.
+
+        Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+        * Source/tests.pri:
+        * WebKit.pro:
+
+2012-07-03  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r121766.
+        http://trac.webkit.org/changeset/121766
+        https://bugs.webkit.org/show_bug.cgi?id=90465
+
+        It caused flakey build errors on the bots (Requested by Ossy
+        on #webkit).
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+        * Source/tests.pri:
+        * WebKit.pro:
+
+2012-07-03  George Staikos  <staikos@webkit.org>
+
+        [BlackBerry] Enable Custom Scheme Handlers for BlackBerry.
+        https://bugs.webkit.org/show_bug.cgi?id=90422
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-07-03  George Staikos  <staikos@webkit.org>
+
+        [BlackBerry] Enable RegisterProtocolHandler for BlackBerry.
+        https://bugs.webkit.org/show_bug.cgi?id=90422
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-07-03  Priit Laes  <plaes@plaes.org>
+
+        [GTK] Need to bump libsoup requirements (for `soup_cookie_jar_get_cookie_list`)
+        https://bugs.webkit.org/show_bug.cgi?id=90332
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * configure.ac: Bump libsoup requirements to 2.39.2
+
+2012-07-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Make use of .qmake.cache for caching features
+
+        Instead of loading() features from the files that need them (and re-running
+        a bunch of checks), we now run feature detection as part of configure.pro,
+        and have build-webkit write the computed feature-defines and CONFIG to
+        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+        when building WebKit.pro.
+
+        At some point we'll be able to selectivly prevent running of config tests
+        in configure.pro, which means we don't need a separate code-path for
+        the build-webkit --help case.
+
+        We should also move the code in build-webkit that now uses .webkit.config
+        to detect clean builds, to use .qmake.cache, since we now store the same
+        thing there.
+
+        Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+        * Source/tests.pri:
+        * WebKit.pro:
+
+2012-07-03  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable MICRODATA support
+        https://bugs.webkit.org/show_bug.cgi?id=90377
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Turn on MICRODATA support by default for EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-07-02  George Staikos  <staikos@webkit.org>
+
+        [BlackBerry] Enable scoped style for BlackBerry.
+        https://bugs.webkit.org/show_bug.cgi?id=90418
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-02  Xiaobo Wang  <xbwang@torchmobile.com.cn>
+
+        [BlackBerry] Use PUBLIC_BUILD to enable/disable DRT
+        https://bugs.webkit.org/show_bug.cgi?id=90271
+
+        Reviewed by George Staikos.
+
+        RIM PR #154707
+
+        Currently DRT code will be compiled only if ENABLE_DRT is set, and it's not
+        defined by default.
+        We should enable DRT by default unless PUBLIC_BUILD is set. In this way we don't
+        need to rebuild webkit before running DRT.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-07-02  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [EFL][CMake] Integrate API unit tests with CTest
+        https://bugs.webkit.org/show_bug.cgi?id=87251
+
+        Reviewed by Daniel Bates.
+
+        Enable CTest on the root CMakeLists.txt as it is expected
+        to be here. This will create a new build target ("make test")
+        to run all the API unit tests.
+
+        * CMakeLists.txt:
+
+2012-07-01  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Add Gamepad support
+        https://bugs.webkit.org/show_bug.cgi?id=90170
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/cmake/FindEFL.cmake: Bump EFL libs dependencies.
+        * Source/cmake/OptionsEfl.cmake: Turn on GAMEPAD flag on EFL port.
+        * Source/cmakeconfig.h.cmake: Add GAMEPAD flag to CMake.
+
+2012-06-30  Jason Liu  <jason.liu@torchmobile.com.cn>
+
+        [BlackBerry] WebView/Browser cause blank screen when selecting a dropdown field.
+        https://bugs.webkit.org/show_bug.cgi?id=90241
+
+        This issue is caused by single quotes in option's labels.
+        We should use the escape character of single quotes in JavaScript's string which 
+        starts and ends with single quotes.
+        So we replace lablels' single quotes with its escape character during generating the 
+        select popUp's HTML.
+
+
+        Reviewed by George Staikos.
+
+        * ManualTests/blackberry/select-popup-items-unicode-display.html:
+
+2012-06-29  Luiz Agostini  <luiz.agostini@nokia.com>
+
+        [Qt][WK2] Private non-QtQuick API
+        https://bugs.webkit.org/show_bug.cgi?id=84532
+
+        Reviewed by Noam Rosenthal.
+
+        API tests for QRawWebView.
+
+        * Source/tests.pri:
+
+2012-06-29  Zan Dobersek  <zandobersek@gmail.com>
+
+        Unreviewed build fix after r121518, adding a missing symbol to symbols.filter.
+
+        * Source/autotools/symbols.filter:
+
+2012-06-28  MORITA Hajime  <morrita@google.com>
+
+        [Refactoring] NodeRenderingContext ctor could be built on top of the ComposedShadowTreeWalker
+        https://bugs.webkit.org/show_bug.cgi?id=89732
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter:
+
+2012-06-28  Jason Liu  <jason.liu@torchmobile.com.cn>
+
+        [BlackBerry] Selection items show as garbage for non-ascii characters.
+        https://bugs.webkit.org/show_bug.cgi?id=89969
+
+        Add charset utf-8 to the select popup's page.
+
+        Reviewed by Antonio Gomes.
+
+        * ManualTests/blackberry/select-popup-items-unicode-display.html: Added.
+
+2012-06-28  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable support for HTML5 datalist
+        https://bugs.webkit.org/show_bug.cgi?id=90157
+
+        Reviewed by Martin Robinson.
+
+        Turn on DATALIST flag by default on EFL port to
+        support HTML5 datalist tag.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-06-27  Zan Dobersek  <zandobersek@gmail.com>
+
+        [Gtk] Add support for the Gamepad API
+        https://bugs.webkit.org/show_bug.cgi?id=87503
+
+        Reviewed by Carlos Garcia Campos.
+
+        Only enable the Gamepad feature on Linux as support
+        for other operating systems is not present.
+
+        Check for the GIO Unix and GUdev dependencies when the
+        Gamepad feature is enabled.
+
+        * configure.ac:
+
+2012-06-25  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Make it possible to build WebKit without QtWidgets
+        https://bugs.webkit.org/show_bug.cgi?id=78109
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/QtWebKit.pro: Don't build WK1 tests and examples if WK1 is disabled.
+        * Source/api.pri: Move WK1 sources away from here and use WEBKIT += webkit1 instead
+        * WebKit.pro: Add WK1 to SUBDIRS unless no_webkit1 is set.
+
+2012-06-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [EFL] Implement Network Information API
+        https://bugs.webkit.org/show_bug.cgi?id=87067
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/cmake/FindEFL.cmake: Find eeze library in build system.
+
+2012-06-25  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Update NEWS and configure.ac for 1.9.4 release
+
+        * configure.ac: Bump version number.
+
+2012-06-22  Joshua Netterfield  <jnetterfield@rim.com>
+
+        [BlackBerry] Sanitize GLSL code using ANGLE.
+
+        BlackBerry port does not sanitize GLSL code with ANGLE
+        https://bugs.webkit.org/show_bug.cgi?id=89583
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake: Include ANGLE openGL headers as system headers in BlackBerry port.
+
+2012-06-21  Kalev Lember  <kalevlember@gmail.com>
+
+        [GTK] Fix NPAPI plugins on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=54531
+
+        Reviewed by Martin Robinson.
+
+        Define XP_WIN on Windows for plugin support.
+
+        * GNUmakefile.am:
+
+2012-06-21  Ryuan Choi  <ryuan.choi@gmail.com>
+
+        [EFL][WK2] Make WebKit2/Efl headers and resources installable.
+        https://bugs.webkit.org/show_bug.cgi?id=88207
+
+        Reviewed by Chang Shu.
+
+        * Source/cmake/OptionsCommon.cmake:
+        Provide new variable, EXEC_INSTALL_DIR to determine where to install
+        executables.
+
+2012-06-21  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [EFL[WK2] Add WKViewEfl and WebKit2 API Object to represent Evas_Object.
+        https://bugs.webkit.org/show_bug.cgi?id=88935
+
+        Reviewed by Chang Shu.
+
+        * Source/cmake/OptionsEfl.cmake: Defines BUILDING_EFL__.
+
+2012-06-20  Varun Jain  <varunjain@chromium.org>
+
+        Account for device scale factor when creating image for dragging.
+        https://bugs.webkit.org/show_bug.cgi?id=89489
+
+        Reviewed by Adam Barth.
+
+        * ManualTests/chromium/drag-image-accounts-for-device-scale.html: Added.
+
+2012-06-18  Philippe Normand  <pnormand@igalia.com>
+
+        [GStreamer] 0.11 video-sink
+        https://bugs.webkit.org/show_bug.cgi?id=77087
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Fix required gstreamer 0.11 version
+
+2012-06-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
+
+        [Qt] Fix the Windows build when Qt is built without -release or -debug
+        https://bugs.webkit.org/show_bug.cgi?id=89471
+
+        Reviewed by Tor Arne Vestbø.
+
+        Make sure that we at least remove build_all on Windows for api.pri,
+        as WebCore wasn't built for all configurations.
+
+        * Source/api.pri:
+
+2012-06-19  Mike West  <mkwst@chromium.org>
+
+        Introduce ENABLE_CSP_NEXT configuration flag.
+        https://bugs.webkit.org/show_bug.cgi?id=89300
+
+        Reviewed by Adam Barth.
+
+        The 1.0 draft of the Content Security Policy spec is just about to
+        move to Last Call. We'll hide work on the upcoming 1.1 spec behind
+        this ENABLE flag, disabled by default.
+
+        Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-06-19  Joel Dillon  <joel.dillon@codethink.co.uk>, Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
+
+        [Qt] Allow the modules file generation to work on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=89010
+
+        Reviewed by Csaba Osztrogonác.
+
+        Add calls to toSystemPath and use QMAKE_DIR_SEP where necessary.
+
+        * Source/api.pri:
+
+2012-06-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
+
+        [Qt] Fix TARGET not properly being set for QtWebKitd5.dll when building in debug.
+        https://bugs.webkit.org/show_bug.cgi?id=88880
+
+        load(qt_module_config) adjusts the TARGET to add the "d" suffix when doing
+        the debug build_pass. When doing the first pass, qt_module_config.prf doesn't
+        adjust the target since it is in debug_and_release and expects the debug
+        build_pass to come later. However, since we remove debug_and_release from CONFIG
+        right after this, the TARGET hasn't been adjusted and the debug build_pass
+        will not happen.
+
+        Work around it by disabling this optimization on Windows.
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri:
+
+2012-06-19  Mike West  <mkwst@chromium.org>
+
+        Add a scheme registry for bypassing Content Security Policy.
+        https://bugs.webkit.org/show_bug.cgi?id=89373
+
+        Reviewed by Adam Barth.
+
+        * Source/autotools/symbols.filter:
+
+2012-06-18  Rob Buis  <rbuis@rim.com>
+
+        [BlackBerry] Enable LEGACY_VIEWPORT_ADAPTION
+        https://bugs.webkit.org/show_bug.cgi?id=89381
+
+        Reviewed by Antonio Gomes.
+
+        PR 163598
+
+        Enable LEGACY_VIEWPORT_ADAPTION.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-06-17  Philippe Normand  <pnormand@igalia.com>
+
+        Unreviewed, GTK 64-bit build fix after r120551.
+
+        * Source/autotools/symbols.filter:
+
+2012-06-17  Philippe Normand  <pnormand@igalia.com>
+
+        Unreviewed, GTK build fix after r120397.
+
+        * Source/autotools/symbols.filter:
+
+2012-06-14  Kent Tamura  <tkent@chromium.org>
+
+        Validate form state strings in FormController::setStateForNewFormElements()
+        https://bugs.webkit.org/show_bug.cgi?id=88768
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter: Expose some symbols used by Internals.cpp.
+
+2012-06-14  Chris Guan  <chris.guan@torchmobile.com.cn>
+
+        [Blackberry] add a new Api named setAllowNotification
+        https://bugs.webkit.org/show_bug.cgi?id=88950
+
+        Reviewed by Antonio Gomes.
+
+        Add a new API named setAllowNotification in webpage class to
+        let client set those allowed domains into notifications.
+
+        Test case:
+        * ManualTests/blackberry/notification.html: Added.
+
+2012-06-13  Zan Dobersek  <zandobersek@gmail.com>
+
+        [Gtk] Enable link prefetch support in the developer builds
+        https://bugs.webkit.org/show_bug.cgi?id=89011
+
+        Reviewed by Martin Robinson.
+
+        Rather export an automake conditional than define a preprocessor
+        macro for enabling link prefetch support.
+
+        * configure.ac:
+
+2012-06-13  Robin Cao  <robin.cao@torchmobile.com.cn>
+
+        [BlackBerry] Enable MEDIA_STREAM by default
+        https://bugs.webkit.org/show_bug.cgi?id=88849
+
+        Reviewed by Antonio Gomes.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-06-12  MORITA Hajime  <morrita@google.com>
+
+        Shadow Pseudo ID should be able to nest to point nested shadow DOM.
+        https://bugs.webkit.org/show_bug.cgi?id=62218
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter:
+
+2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable SHADOW_DOM flag
+        https://bugs.webkit.org/show_bug.cgi?id=87732
+
+        Reviewed by Kentaro Hara.
+
+        Enable SHADOW_DOM flag by default at compile time for EFL port.
+
+        * Source/autotools/symbols.filter: Fix GTK build by adding new symbol.
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] enable LEGACY_WEBKIT_BLOB_BUILDER flag
+        https://bugs.webkit.org/show_bug.cgi?id=88715
+
+        Reviewed by Noam Rosenthal.
+
+        Enable LEGACY_WEBKIT_BLOB_BUILDER flag by default on EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-06-12  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [CMake] Enabled CSS_BOX_DECORATION_BREAK by default
+        https://bugs.webkit.org/show_bug.cgi?id=88850
+
+        Reviewed by Alexis Menard.
+
+        Enabled it by default on CMake ports like in other ports.
+        This patch is a follow up to r120029.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-06-11  Kaustubh Atrawalkar  <kaustubh@motorola.com>
+
+        [DRT] LTC:: counterValueForElementById() could be moved to Internals.
+        https://bugs.webkit.org/show_bug.cgi?id=84406
+
+        Reviewed by Hajime Morita.
+
+        Exporting Internals::counterValueForElement symbols for the Gtk build.
+
+        * Source/autotools/symbols.filter:
+
+2012-06-11  Alexis Menard  <alexis.menard@openbossa.org>
+
+        [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag.
+        https://bugs.webkit.org/show_bug.cgi?id=88804
+
+        Reviewed by Tony Chang.
+
+        Protect box-decoration-break behind a feature flag enabled by default.
+
+        * configure.ac:
+
+2012-06-11  Arnaud Renevier  <arno@renevier.net>
+
+        Replace obsolete mkdir_p variable with MKDIR_P
+        https://bugs.webkit.org/show_bug.cgi?id=88790
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am:
+        * configure.ac:
+
+2012-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Fix make distcheck issues.
+
+        * GNUmakefile.am: Initialize jscore nosource variables.
+
+2012-06-10  Darin Adler  <darin@apple.com>
+
+        Remove unneeded callRemovedLastRef function from TreeShared refactoring
+        https://bugs.webkit.org/show_bug.cgi?id=88653
+
+        Reviewed by Sam Weinig.
+
+        * Source/autotools/symbols.filter: Filter removedLastRef instead of
+        callRemovedLastRef.
+
+2012-06-09  Sukolsak Sakshuwong  <sukolsak@google.com>
+
+        Add UNDO_MANAGER flag
+        https://bugs.webkit.org/show_bug.cgi?id=87908
+
+        Reviewed by Tony Chang.
+
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-06-08  Martin Robinson  <mrobinson@igalia.com>
+
+        Fix the GTK+ build when OpenGL is enabled.
+
+        * configure.ac: Fix the build.
+
+2012-06-08  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] build accelerated compositing on by default if OpenGL is present
+        https://bugs.webkit.org/show_bug.cgi?id=88677
+
+        Reviewed by Alejandro G. Castro.
+
+        Build accelerated compositing by default if OpenGL is present, just like WebGL.
+        Also prevent enabling WebGL if Clutter is turned on.
+
+        * configure.ac: Build AC by default.
+
+2012-06-08  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Add API to get the library version to WebKit2 GTK+
+        https://bugs.webkit.org/show_bug.cgi?id=88426
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Generate WebKitVersion.h from WebKitVersion.h.in
+        file.
+
+2012-06-08  Ion Rosca  <rosca@adobe.com>
+
+        Some overlay scrollbar API calls in ScrollAnimatorMac can lead to an assertion in RenderBox::mapAbsoluteToLocalPoint
+        https://bugs.webkit.org/show_bug.cgi?id=74111
+
+        Reviewed by Simon Fraser.
+
+        * ManualTests/scrollbar-crash-on-hide-scrolled-area.html: Added.
+
+2012-06-07  Kentaro Hara  <haraken@chromium.org>
+
+        Reduce Node object size from 72 byte to 64 byte
+        https://bugs.webkit.org/show_bug.cgi?id=88528
+
+        Reviewed by Ryosuke Niwa.
+
+        Added a symbol for callRemovedLastRef().
+
+        * Source/autotools/symbols.filter:
+
+2012-06-07  Patrick Gansterer  <paroga@webkit.org>
+
+        Build fix for WinCE after r113570.
+
+        * Source/cmake/OptionsWinCE.cmake:
+
+2012-06-07  Adam Barth  <abarth@webkit.org>
+
+        Settings::defaultDeviceScaleFactor is redundant with Page::deviceScaleFactor
+        https://bugs.webkit.org/show_bug.cgi?id=88375
+
+        Reviewed by James Robinson.
+
+        This symbol no longer exists.
+
+        * Source/autotools/symbols.filter:
+
+2012-06-06  David Kilzer  <ddkilzer@apple.com>
+
+        Teach git about localizable *.strings files
+        <http://webkit.org/b/88447>
+
+        Reviewed by Adam Roben.
+
+        * .gitattributes: Set diff attribute for *.strings files so
+        git-diff doesn't complain about them being binary files once the
+        git-config command is run.
+
+2012-06-06  Andy Wingo  <wingo@igalia.com>
+
+        [GTK] Enable the LLInt
+        https://bugs.webkit.org/show_bug.cgi?id=88315
+
+        Reviewed by Filip Pizlo.
+
+        * configure.ac: Require Ruby, to build the low-level interpreter.
+
+2012-06-06  Sam D  <dsam2912@gmail.com>
+
+        Web Inspector: Option for selecting/deselecting all breakpoints in breakpoint pane
+        https://bugs.webkit.org/show_bug.cgi?id=87644
+
+        Reviewed by Pavel Feldman.
+
+        Added an option to enable/disable all breakpoints in Breakpoint pane.
+
+        * Source/WebCore/English.lproj/localizedStrings.js:
+        * Source/WebCore/inspector/front-end/BreakpointManager.js:
+        (WebInspector.BreakpointManager.prototype.enableAllBreakpoints):
+        (WebInspector.BreakpointManager.prototype.disableAllBreakpoints):
+        * Source/WebCore/inspector/front-end/BreakpointsSidebarPane.js:
+        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu.enabledBreakpointCount):
+        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
+
+2012-06-05  Danilo Cesar Lemes de Paula  <danilo.cesar@collabora.co.uk>
+
+        [GTK] show the feature list in alphabetical order
+        https://bugs.webkit.org/show_bug.cgi?id=88343
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * configure.ac:
+
+2012-06-05  Dongwoo Im  <dw.im@samsung.com>
+
+        Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'.
+        https://bugs.webkit.org/show_bug.cgi?id=73176
+
+        Reviewed by Adam Barth.
+
+        Two more APIs are added in Custom Scheme Handler specification.
+        http://dev.w3.org/html5/spec/Overview.html#custom-handlers
+        One is 'isProtocolHandlerRegistered' to query whether the specific URL
+        is registered or not.
+        The other is 'unregisterProtocolHandler' to remove the registered URL.
+
+        * Source/cmake/WebKitFeatures.cmake: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'.
+        * Source/cmakeconfig.h.cmake: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'.
+
+2012-06-04  Hugo Parente Lima  <hugo.lima@openbossa.org>
+
+        Turn LEGACY_VIEWPORT_ADAPTION USE flag into an ENABLE flag.
+        https://bugs.webkit.org/show_bug.cgi?id=88243
+
+        Reviewed by Adam Barth.
+
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-06-04  Sadrul Habib Chowdhury  <sadrul@chromium.org>
+
+        [chromium] Fix software rendering for device-scale-factor > 1
+        https://bugs.webkit.org/show_bug.cgi?id=88136
+
+        Reviewed by Darin Fisher.
+
+        Export WebCore::Page::setDeviceScaleFactor and WebCore::Settings::setDefaultDeviceScaleFactor.
+
+        * Source/autotools/symbols.filter:
+
+2012-06-04  Kevin Greer  <kgr@chromium.org>
+
+        [chromium] Issue async events for console.time/timeEnd
+        https://bugs.webkit.org/show_bug.cgi?id=88003
+
+        Reviewed by Pavel Feldman.
+
+        * ../../Source/WebCore/page/Console.cpp:
+
+2012-06-04  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Update NEWS and configure.ac for 1.9.3 release
+
+        * configure.ac: Bump version number.
+
+2012-06-02  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Temporarily disable DerivedSources cleanup on Windows.
+
+        * wscript:
+
+2012-06-01  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Use -Werror only in developer builds
+
+        Rubber-stamped by Tor Arne Vestbø.
+
+        In production builds -Werror with custom toolchains and wierd system
+        headers, -Werror is of no use and just creates confusion. So use it
+        only if Qt is configured with -developer-build.
+
+        * Source/api.pri: qt_developer_build determination moved to default_pre.prf
+
+2012-06-01  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
+
+        [Qt] Move QObject bridge related tests from tst_qwebframe to tst_qobjectbridge
+        https://bugs.webkit.org/show_bug.cgi?id=88117
+
+        Reviewed by Noam Rosenthal.
+
+        * Source/tests.pri: Add new entry for tst_qobjectbridge.
+
+2012-06-01  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] EFL port does not enable WEB_INTENTS_TAG flag
+        https://bugs.webkit.org/show_bug.cgi?id=86866
+
+        Reviewed by Adam Barth.
+
+        Enable WEB_INTENTS_TAG flag by default on EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-05-31  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable CSS_IMAGE_SET flag
+        https://bugs.webkit.org/show_bug.cgi?id=87727
+
+        Reviewed by Adam Roben.
+
+        Add CSS_IMAGE_SET flag to CMake and enable it by default on EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-05-30  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Add needed file back to the wx build.
+
+        * wscript:
+
+2012-05-30  Mariusz Grzegorczyk  <mariusz.g@samsung.com>, Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [EFL][WK2] Fix WebKit2-EFL build
+        https://bugs.webkit.org/show_bug.cgi?id=83693
+
+        Reviewed by Carlos Garcia Campos.
+
+        * Source/cmake/OptionsEfl.cmake: Define BUILDING_SOUP__ to build WebKit2/Efl.
+
+2012-05-29  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
+
+        [BlackBerry] Loading media data with http authentication
+        https://bugs.webkit.org/show_bug.cgi?id=84214
+
+        Reviewed by George Staikos.
+
+        Added a manual test case which needs user to provide a HTTP server
+        with HTTP authentication support when loading the specified media
+        resource. The test case will test if the media resource is successfully
+        loaded.
+
+        * ManualTests/blackberry/video-load-with-authentication.html: Added.
+
+2012-05-29  Simon Fraser  <simon.fraser@apple.com>
+
+        Incomplete repaint on twitter.com when replying to a tweet
+        https://bugs.webkit.org/show_bug.cgi?id=87553
+
+        Reviewed by Dean Jackson.
+        
+        Manual test that adds a transform to a layer, forcing that
+        layer to gain backing store.
+
+        * ManualTests/compositing/requires-backing-change.html: Added.
+
+2012-05-29  David Barr  <davidbarr@chromium.org>
+
+        Introduce ENABLE_CSS_IMAGE_RESOLUTION compile flag
+        https://bugs.webkit.org/show_bug.cgi?id=87685
+
+        Reviewed by Eric Seidel.
+
+        Add a configuration option for CSS image-resolution support, disabling it by default.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-05-25  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
+
+        WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled
+        https://bugs.webkit.org/show_bug.cgi?id=42328
+
+        Reviewed by Eric Seidel.
+
+        * Source/autotools/symbols.filter: Added needed symbols for GTK build.
+
+2012-05-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Move allowRoundingHacks to Internals interface
+        https://bugs.webkit.org/show_bug.cgi?id=87328
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter: Add allowRoundingHacks symbol filter.
+
+2012-05-27  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
+
+        [EFL] Enable blob support for the EFL port
+        https://bugs.webkit.org/show_bug.cgi?id=85363
+
+        Reviewed by Hajime Morita.
+
+        Enable Blob support by default for the EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-05-27  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Make WEBKIT_SET_EXTRA_COMPILER_FLAGS work with clang.
+        https://bugs.webkit.org/show_bug.cgi?id=87597
+
+        Reviewed by Daniel Bates.
+
+        Building with clang requires at least the -fPIC option being
+        passed correctly, just like it is needed with gcc. clang is also
+        compatible with most of gcc's compiler options, so we only need to
+        check for clang besides g++ in the macro definition.
+
+        * Source/cmake/WebKitHelpers.cmake: Check for "Clang" and use
+        CMAKE_COMPILER_IS_GNUCXX for the previous check, as it is shorter
+        and achieves the same effect.
+
+2012-05-25  Zan Dobersek  <zandobersek@gmail.com>
+
+        configure.ac has duplicated AC_MSG_RESULT([$enable_sandbox]) and nothing for seamless iframes
+        https://bugs.webkit.org/show_bug.cgi?id=87453
+
+        Reviewed by Eric Seidel.
+
+        Report the value of $enable_iframe_seamless rather than $enable_sandbox
+        after checking whether to enable the iframe seamless option.
+
+        * configure.ac:
+
+2012-05-25  Zan Dobersek  <zandobersek@gmail.com>
+
+        [Gtk] Remove configuration options that do not apply anymore
+        https://bugs.webkit.org/show_bug.cgi?id=87509
+
+        Reviewed by Martin Robinson.
+
+        Remove configuration options for enabling or disabling HTML5 datagrid,
+        DOM storage, image resizer API and sandboxed iframe support. These
+        features were either turned on by default with the feature defines
+        removed from the code or removed from the source.
+
+        * configure.ac:
+
+2012-05-25  Zalan Bujtas  <zbujtas@gmail.com>
+
+        [Qt] Broken controls rendering when transform is applied.
+        https://bugs.webkit.org/show_bug.cgi?id=87483
+
+        Reviewed by Simon Hausmann.
+
+        * ManualTests/qt/control_paiting_with_transforms.html: Added.
+
+2012-05-24  Tim Horton  <timothy_horton@apple.com>
+
+        Add feature defines for web-facing parts of CSS Regions and Exclusions
+        https://bugs.webkit.org/show_bug.cgi?id=87442
+        <rdar://problem/10887709>
+
+        Reviewed by Dan Bernstein.
+
+        * configure.ac:
+
+2012-05-24  Kent Tamura  <tkent@chromium.org>
+
+        PAGE_POPUP: window.setValueAndClosePopup should be moved to a
+        per-context property of DOMWindow.
+        https://bugs.webkit.org/show_bug.cgi?id=87086
+
+        Reviewed by Adam Barth.
+
+        * ManualTests/forms/calendar-picker.html:
+        Introduce pseudo window.pagePopupController.
+
+2012-05-24  Philippe Normand  <pnormand@igalia.com>
+
+        [GTK] Add --enable-css3-flexbox configure option after r118304.
+        https://bugs.webkit.org/show_bug.cgi?id=87455
+
+        Reviewed by Xan Lopez.
+
+        * configure.ac:
+
+2012-05-24  John Mellor  <johnme@chromium.org>
+
+        Font Boosting: Add compile flag and runtime setting
+        https://bugs.webkit.org/show_bug.cgi?id=87394
+
+        Reviewed by Adam Barth.
+
+        Add ENABLE_FONT_BOOSTING.
+
+        * configure.ac:
+
+2012-05-23  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Unreviewed, add ENABLE_CSS3_FLEXBOX after r118304.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-05-23  Xiaobo Wang  <xbwang@torchmobile.com.cn>
+
+        [BlackBerry] Reset JS state for each test
+        https://bugs.webkit.org/show_bug.cgi?id=86899
+
+        Reviewed by Nikolas Zimmermann.
+
+        * DumpRenderTree/blackberry/DumpRenderTree.cpp:
+         (BlackBerry::WebKit::DumpRenderTree::resetToConsistentStateBeforeTesting):
+
+2012-05-22  Dongwoo Im  <dw.im@samsung.com>
+
+        [EFL] Implements the registerProtocolHandler method and option.
+        https://bugs.webkit.org/show_bug.cgi?id=73638
+
+        Reviewed by Andreas Kling.
+
+        The registerProtocolHandler() method allows Web sites to register themselves
+        as possible handlers for particular schemes.
+
+        http://dev.w3.org/html5/spec/Overview.html#dom-navigator-registerprotocolhandler
+
+        * Source/cmake/OptionsEfl.cmake: Adds the build option.
+        * Source/cmakeconfig.h.cmake: Adds the build option.
+
+2012-05-22  Kangil Han  <kangil.han@samsung.com>
+
+        [EFL][DRT] Implement touch event
+        https://bugs.webkit.org/show_bug.cgi?id=86720
+
+        Reviewed by Hajime Morita.
+
+        Currently EFL DRT doesn't support touch event.
+        Therefore, this patch enabled it and implemented some eventSender function callbacks.
+
+        * Source/cmake/FindEFL.cmake: Add ecore-input to dependency check.
+        * Source/cmake/OptionsEfl.cmake: Enable touch event option.
+
+== Rolled over to ChangeLog-2012-05-22 ==
diff --git a/src/third_party/WebKit/ChangeLog-2012-05-22 b/src/third_party/WebKit/ChangeLog-2012-05-22
new file mode 100644
index 0000000..7dbe9d2
--- /dev/null
+++ b/src/third_party/WebKit/ChangeLog-2012-05-22
@@ -0,0 +1,20796 @@
+2012-05-22  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] EFL's DRT needs to print information about received Web Intents
+        https://bugs.webkit.org/show_bug.cgi?id=86864
+
+        Reviewed by Adam Barth.
+
+        Enable Web Intents by default on EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-05-21  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [EFL] Unreviewed build fix when ENABLE_VIDEO is off and ENABLE_VIDEO_TRACK is not.
+
+        Do not enable VIDEO_TRACK if VIDEO itself has been disabled.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-05-21  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [EFL] Do not enable Web Audio support by default at build time.
+        https://bugs.webkit.org/show_bug.cgi?id=86982
+
+        Reviewed by Philippe Normand.
+
+        Follow-up to r115800. Even though Web Audio support is disabled by
+        default in build-webkit, enabling it in OptionsEfl.cmake will turn
+        it on when building the port without build-webkit.
+
+        Since Web Audio support for the EFL port does not seem to be fully
+        working yet, it is better to disable it in all cases.
+
+        * Source/cmake/OptionsEfl.cmake: Remove option override for
+        ENABLE_WEB_AUDIO.
+
+2012-05-21  Dominic Mazzoni  <dmazzoni@google.com>
+
+        AX: A disabled select element should not be exposed as focusable
+        https://bugs.webkit.org/show_bug.cgi?id=86949
+
+        Reviewed by Chris Fleizach.
+
+        * LayoutTests/accessibility/disabled-controls-not-focusable-expected.txt: Added.
+        * LayoutTests/accessibility/disabled-controls-not-focusable.html: Added.
+        * Source/WebCore/accessibility/AccessibilityListBox.h:
+        (AccessibilityListBox):
+        * Source/WebCore/accessibility/AccessibilityMenuList.cpp:
+        (WebCore::AccessibilityMenuList::canSetFocusAttribute):
+        (WebCore):
+        * Source/WebCore/accessibility/AccessibilityMenuList.h:
+        (AccessibilityMenuList):
+
+2012-05-20  George Staikos  <staikos@webkit.org>
+
+        [BlackBerry] Define navigator.vendor for BlackBerry.
+        https://bugs.webkit.org/show_bug.cgi?id=86975
+
+        Reviewed by Antonio Gomes.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-05-20  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Clean up no longer used files in DerivedSources.
+
+        * wscript:
+
+2012-05-19  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Remove a couple files wx doesn't use from the build.
+
+        * wscript:
+
+2012-05-18  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Web Intents code is not compiling
+        https://bugs.webkit.org/show_bug.cgi?id=85364
+
+        Reviewed by Adam Barth.
+
+        Remove broken CMake directive for WEB_INTENTS.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-05-18  Adrian Bunk  <bunk@stusta.de>
+
+        [GTK] Remove the obsolete AM_PROG_CC_STDC
+        https://bugs.webkit.org/show_bug.cgi?id=85250
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac:
+
+2012-05-18  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Unreviewed, remove ENABLE_CSS_GRID_LAYOUT option after r117613.
+
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-05-18  Shezan Baig  <shezbaig.wk@gmail.com>
+
+        Expose FrameSelection::absoluteCaretBounds via window.internals
+        https://bugs.webkit.org/show_bug.cgi?id=86390
+
+        Reviewed by Ryosuke Niwa.
+
+        Exports necessary symbols.
+
+        * Source/autotools/symbols.filter:
+
+2012-05-18  Martin Robinson  <mrobinson@igalia.com>
+
+        Get IndexedDB closer to building for GTK+.
+
+        Reviewed by Philippe Normand.
+
+        * configure.ac: Make out the IndexedDB imply USE_LEVELDB, as LevelDB is the
+        only IndexedDB backend at the moment. Also mark IndexedDB as incomplete.
+
+2012-05-18  Zalan Bujtas  <zbujtas@gmail.com>
+
+        [Qt] Gesture tap highlighter needs to take overflow clip into account.
+        https://bugs.webkit.org/show_bug.cgi?id=84989
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * ManualTests/qt/tap-highlighting-overflow-hidden.html: Added.
+
+2012-05-18  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Add simple implementation of Web Intents
+        https://bugs.webkit.org/show_bug.cgi?id=86354
+
+        Reviewed by Eric Seidel.
+
+        Enable WEB_INTENTS flag by default on EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-05-17  Dan Bernstein  <mitz@apple.com>
+
+        REGRESSION (r117428): WebKit API/SPI was removed
+        https://bugs.webkit.org/show_bug.cgi?id=86748
+
+        Reverted r117428.
+
+        * Source/autotools/symbols.filter:
+
+2012-05-17  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [EFL] Fix link error caused by not directly linking with edbus
+        https://bugs.webkit.org/show_bug.cgi?id=86747
+
+        Unreviewed build fix.
+
+        * Source/cmake/FindEFL.cmake:
+
+2012-05-17  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Convert setDomainRelaxationForbiddenForURLScheme to use InternalSettings interface
+        https://bugs.webkit.org/show_bug.cgi?id=86704
+
+        Reviewed by Eric Seidel.
+
+        * Source/autotools/symbols.filter: Add setDomainRelaxationForbiddenForURLScheme symbol filter.
+
+2012-05-16  Kihong Kwon  <kihong.kwon@samsung.com>
+
+        [EFL] Support for Battery Status API on the WebKit-Efl
+        https://bugs.webkit.org/show_bug.cgi?id=83254
+
+        Reviewed by Chang Shu.
+
+        Add dependency check for e_ukit package which is in the e_dbus library.
+
+        * Source/cmake/FindEFL.cmake:
+
+2012-05-16  Varun Jain  <varunjain@google.com>
+
+        [chromium] No modifier flags (shift/ctrl/alt) in drag&drop events on chromium linux
+        https://bugs.webkit.org/show_bug.cgi?id=86236
+
+        Reviewed by Tony Chang.
+
+        * ManualTests/chromium/modifiers-during-drag-and-drop.html: Added.
+
+2012-05-16  Keishi Hattori  <keishi@webkit.org>
+
+        [chromium] Add WebKit API to access inner text value of input element
+        https://bugs.webkit.org/show_bug.cgi?id=85353
+
+        Reviewed by Kent Tamura.
+
+        * Source/autotools/symbols.filter: Added HTMLInputElement::setEditingValue
+
+2012-05-15  Kihong Kwon  <kihong.kwon@samsung.com>
+
+        [EFL] Enable Fullscreen API
+        https://bugs.webkit.org/show_bug.cgi?id=85870
+
+        Reviewed by Antonio Gomes.
+
+        Enable FULLSCREEN_API on the Efl port.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-05-14  Shinya Kawanaka  <shinyak@chromium.org>
+
+        document.execCommand('Indent') in the direct child of ShadowRoot causes a crash.
+        https://bugs.webkit.org/show_bug.cgi?id=86341
+
+        Reviewed by Ryosuke Niwa.
+
+        Exports necessary symbols.
+
+        * Source/autotools/symbols.filter:
+
+2012-05-14  Luke Macpherson  <macpherson@chromium.org>
+
+        Introduce ENABLE_CSS_VARIABLES compile flag.
+        https://bugs.webkit.org/show_bug.cgi?id=86338
+
+        Reviewed by Dimitri Glazkov.
+
+        Add a configuration option for CSS Variables support, disabling it by default.
+
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-05-14  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Fix wxMSW build, and make sure we properly
+        define WebKitVersion.h as a build target for all platforms to avoid
+        unnecessary rebuilds.
+        
+        * wscript:
+
+2012-05-11  Jeffrey Pfau  <jpfau@apple.com>
+
+        REGRESSION (r114170): Scroll areas in nested frames improperly placed when tiled drawing is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=86239
+
+        Reviewed by Anders Carlsson.
+
+        * ManualTests/resources/frame-textarea.html: Added.
+        * ManualTests/scrollable-positioned-frame.html: Added.
+        * ManualTests/scrollable-positioned-nested-frame.html: Added.
+
+2012-05-11  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix, exclude some files we don't use from the build.
+
+        * wscript:
+
+2012-05-11  Tommy Widenflycht  <tommyw@google.com>
+
+        MediaStream API: Fix a reference counting issue in UserMediaRequest
+        https://bugs.webkit.org/show_bug.cgi?id=86210
+
+        Reviewed by Abhishek Arya.
+
+        * ManualTests/user-media-request-crash.html: Added.
+
+2012-05-11  Christophe Dumez  <christophe.dumez@intel.com>
+
+        Web Intents code only supports V8
+        https://bugs.webkit.org/show_bug.cgi?id=85954
+
+        Reviewed by Adam Barth.
+
+        Add ENABLE_WEB_INTENTS flag to CMake.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-05-11  Xiaobo Wang  <xbwang@torchmobile.com.cn>
+
+        [BlackBerry] Update DumpRenderTree.cpp to also run ref-tests if there're any
+        https://bugs.webkit.org/show_bug.cgi?id=86055
+
+        Reviewed by Rob Buis.
+
+        Ref-tests are tests with suffix "-expected", "-expected-mismatch" and a valid
+        extension(".html", ".htm", etc.).
+        Currently torch-launcher only run tests parsed by NRWT, with ref-tests
+        excluded. As a result, if a test have ref-tests (which were not run), our
+        DumpRenderTree Perl script will think there's a crash and exit with code 1.
+        So NRWT will report the result as CRASH.
+        We need to update DumpRenderTree.cpp to try to find ref-tests and run them.
+
+        * DumpRenderTree/blackberry/DumpRenderTree.cpp:
+        (BlackBerry::WebKit::DumpRenderTree::DumpRenderTree):
+        (BlackBerry::WebKit::DumpRenderTree::getRefTests):
+        (WebKit):
+        (BlackBerry::WebKit::DumpRenderTree::runCurrentTest):
+        (BlackBerry::WebKit::DumpRenderTree::runRemainingTests):
+        (BlackBerry::WebKit::DumpRenderTree::runTests):
+        * DumpRenderTree/blackberry/DumpRenderTreeBlackBerry.h:
+        (DumpRenderTree):
+
+2012-05-10  MORITA Hajime  <morrita@google.com>
+
+        ElementShadow should minimize the usage of "ShadowRoot" name
+        https://bugs.webkit.org/show_bug.cgi?id=85970
+
+        Reviewed by Dimitri Glazkov.
+
+        Removed symbols which no longer exists
+
+        * Source/autotools/symbols.filter:
+
+2012-05-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Move resumeAnimations to use Internals interface
+        https://bugs.webkit.org/show_bug.cgi?id=86063
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Source/autotools/symbols.filter: Add a symbol filter for resumeAnimations. 
+
+2012-05-10  Zan Dobersek  <zandobersek@gmail.com>
+
+        [GTK] ENABLE_IFRAME_SEAMLESS support
+        https://bugs.webkit.org/show_bug.cgi?id=85843
+
+        Reviewed by Eric Seidel.
+
+        Add a configuration option for enabling the iframe seamless
+        attribute support, enabling it by default.
+
+        * configure.ac:
+
+2012-05-09  Stephen Chenney  <schenney@chromium.org>
+
+        SVG Filters allow invalid elements as children
+        https://bugs.webkit.org/show_bug.cgi?id=83979
+
+        Reviewed by Nikolas Zimmermann.
+
+        This test will crash upon load in Chromium, unless the associated fix is in.
+
+        * ManualTests/bugzilla-83979.svg: Added.
+
+2012-05-09  Kent Tamura  <tkent@chromium.org>
+
+        Calendar Picker: Fix a crash by changing input type.
+        https://bugs.webkit.org/show_bug.cgi?id=86007
+
+        Reviewed by Hajime Morita.
+
+        * ManualTests/forms/calendar-picker-crash-by-type-change.html: Added.
+
+2012-05-09  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Move suspendAnimations to use Internals interface.
+        https://bugs.webkit.org/show_bug.cgi?id=85986
+
+        Reviewed by Ryosuke Niwa.
+
+        * Source/autotools/symbols.filter: Add a symbol filter for suspendAnimations. 
+
+2012-05-09  Hugo Parente Lima  <hugo.lima@openbossa.org>
+
+        Use suitable viewport values on XHTML-MP pages.
+        https://bugs.webkit.org/show_bug.cgi?id=85425
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Add LEGACY_VIEWPORT_ADAPTION use feature to cmake build system,
+        this feature will enable the use of a suitable viewport size
+        on legacy XHTML-MP pages.
+
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-05-09  Crystal Zhang  <haizhang@rim.com>
+
+        [BlackBerry] Enable PAGE_POPUP in make file, and implement required methods
+        https://bugs.webkit.org/show_bug.cgi?id=85907
+
+        Reviewed by Rob Buis.
+
+        Enable PAGE_POPUP option in make files.
+
+        Internal reviewed by Yong Li.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-05-09  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Split WebKit2 Makefile moving source code listings to GNUmakefile.list.am
+        https://bugs.webkit.org/show_bug.cgi?id=85985
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * GNUmakefile.am:
+
+2012-05-09  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Use independent version numbers for public libraries
+        https://bugs.webkit.org/show_bug.cgi?id=85984
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * configure.ac: Define LIBJAVASCRIPTCOREGTK_VERSION and
+        LIBWEBKIT2GTK_VERSION using the same version as
+        LIBWEBKITGTK_VERSION for backwards compatibility.
+
+2012-05-08  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] FindGStreamer: Fix the build with static WebCore.
+        https://bugs.webkit.org/show_bug.cgi?id=85930
+
+        Reviewed by Daniel Bates.
+
+        Building WebCore statically was failing because files in
+        WebCore/platform/gstreamer when ENABLE_VIDEO was set required
+        gstreamer-base, which was not being linked to after r116453.
+
+        Fix that by looking for gstreamer-base, requiring and linking
+        against it if GStreamer is used.
+
+        * Source/cmake/FindGStreamer.cmake:
+
+2012-05-08  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Rewrite FindGStreamer.cmake.
+        https://bugs.webkit.org/show_bug.cgi?id=85857
+
+        Reviewed by Daniel Bates.
+
+        We are currently kind of duplicating the same
+        FindGStreamer-Foo.cmake file whenever a new GStreamer plugin needs
+        to be found. Besides this approach not scaling very well, it
+        relies on pkg-config for version checking, uses the LibFindMacros
+        package that we should deprecate and all the find files could be
+        merged into one, with users using the COMPONENTS feature of the
+        FIND_PACKAGE() call to find the desired plugins.
+
+        FindGStreamer.cmake has then been rewritten to take all that into
+        account:
+        - The LibFindMacros.cmake package is not used anymore.
+        - Version check is performed in the CMake file itself by parsing
+        the gstversion.h header.
+        - All GStreamer plugins are searched and the COMPONENTS keyword
+        used in the FIND_PACKAGE() call is used to check which plugins are
+        required.
+        - The plugins-base and base GStreamer plugins are not searched, as
+        they were not used anywhere in the build system.
+
+        * Source/cmake/FindGStreamer-App.cmake: Removed.
+        * Source/cmake/FindGStreamer-Audio.cmake: Removed.
+        * Source/cmake/FindGStreamer-Base.cmake: Removed.
+        * Source/cmake/FindGStreamer-FFT.cmake: Removed.
+        * Source/cmake/FindGStreamer-Interfaces.cmake: Removed.
+        * Source/cmake/FindGStreamer-Pbutils.cmake: Removed.
+        * Source/cmake/FindGStreamer-Plugins-Base.cmake: Removed.
+        * Source/cmake/FindGStreamer-Video.cmake: Removed.
+        * Source/cmake/FindGStreamer.cmake: Rewrite as described above.
+        * Source/cmake/OptionsEfl.cmake: Use COMPONENTS to specify which
+        GStreamer plugins to look for.
+
+2012-05-08  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic fix attempt for dashboard images.
+
+        Rubber-stamped by Antti Koivisto.
+
+        Also stop generating images for 30, 90, and 365 days since they have been timing out.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (schedule_runs_update):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Runs.chart_params):
+
+2012-05-08  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [CMake] Add ENABLE_IFRAME_SEAMLESS flag
+        https://bugs.webkit.org/show_bug.cgi?id=85838
+
+        Reviewed by Eric Seidel.
+
+        Add ENABLE_IFRAME_SEAMLESS flag to CMake and enable it by default.
+        This flag was introduced by r116356.
+
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-05-08  Balazs Kelemen  <kbalazs@webkit.org>
+
+        [Qt] X11 plugins need to be reworked for Qt5+WK1
+        https://bugs.webkit.org/show_bug.cgi?id=80691
+
+        Reviewed by Simon Hausmann.
+
+        Implement basic windowless plugin support with Qt5.
+
+        * Source/api.pri: Need private API's to be able
+        to use QApplicationPrivate::windowForWidget.
+
+2012-05-07  Dave Tu  <dtu@chromium.org>
+
+        Adjust flakiness dashboard gpu_tests image diff URLs.
+        https://bugs.webkit.org/show_bug.cgi?id=85423
+
+        Reviewed by Ojan Vafai.
+
+        * Tools/TestResultServer/static-dashboards/flakiness_dashboard.js:
+
+2012-05-07  Liam Quinn  <lquinn@rim.com>
+
+        [BlackBerry] WWW-Authenticate header on 200 response pops up authentication dialog
+        https://bugs.webkit.org/show_bug.cgi?id=85643
+
+        Reviewed by George Staikos.
+
+        RIM PR: 151992
+        Added manual test for WWW-Authenticate header on a 200 response.
+
+        * ManualTests/blackberry/http-auth-on-200.php: Added.
+
+2012-05-07  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Unreviewed trivial build fix: Don't include bytearraytestdata.h in the QtWebKit
+        module header.
+
+        * Source/sync.profile:
+
+2012-05-06  MORITA Hajime  <morrita@google.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85265
+        [Shadow DOM] ShadowTree needs a better name
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter: Updated exported symbol names according to the rename.
+
+2012-05-06  Dan Bernstein  <mitz@apple.com>
+
+        Part of: Building and debugging WebKit in the Xcode IDE requires a lot of setup
+        https://bugs.webkit.org/show_bug.cgi?id=85739
+
+        Reviewed by Daniel Bates.
+
+        * WebKit.xcworkspace: Added.
+        * WebKit.xcworkspace/contents.xcworkspacedata: Added.
+        * WebKit.xcworkspace/xcshareddata: Added.
+        * WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: Added.
+        * WebKit.xcworkspace/xcshareddata/xcschemes: Added.
+        * WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme: Added
+        this scheme, which builds all source projects and runs WebProcess with
+        Safari as the client executable.
+        * WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme: Added
+        this scheme, which builds all source projects and runs Safari.
+        * WebKit.xcworkspace/xcshareddata/xcschemes/All Tools.xcscheme: Added
+        this scheme, which builds all tools projects and runs DumpRenderTree.
+
+2012-05-06  Gustavo Noronha Silva  <gns@gnome.org>
+
+        [GTK] Enable WebKit2 build by default (again)
+        https://bugs.webkit.org/show_bug.cgi?id=85750
+
+        * configure.ac: enable wk2 build by default.
+
+2012-05-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Convert isPageBoxVisible to use Internals interface.
+        https://bugs.webkit.org/show_bug.cgi?id=85692
+
+        Reviewed by Darin Adler.
+
+        * Source/autotools/symbols.filter: Add isPageBoxVisible symbol filter.
+
+2012-05-06  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
+
+        [BlackBerry] Enable credential persistance and auto fill
+        https://bugs.webkit.org/show_bug.cgi?id=85572
+
+        Reviewed by Rob Buis.
+
+        Enable credential persistance and auto fill feature by adding
+        ENABLE_BLACKBERRY_CREDENTIAL_PERSIST=1.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-05-05  Gustavo Noronha Silva  <gns@gnome.org>
+
+        Unreviewed preparation for 1.9.2.
+
+        * configure.ac: bump version to 1.9.2 and bump libtool version.
+
+2012-05-04  Jer Noble  <jer.noble@apple.com>
+
+        Flash of white when exiting full screen HTML5 video
+        https://bugs.webkit.org/show_bug.cgi?id=85438
+
+        Reviewed by Sam Weinig.
+
+        * ManualTests/fullscreen/full-screen-flash.html: Added.
+
+2012-05-04  Jer Noble  <jer.noble@apple.com>
+
+        Taking a visibility:hidden element full screen causes full screen window to disappear.
+        https://bugs.webkit.org/show_bug.cgi?id=85432
+
+        Reviewed by Maciej Stachowiak.
+
+        * ManualTests/fullscreen/full-screen-zero-width.html: Added.
+
+2012-05-04  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed, rolling out r116075.
+        http://trac.webkit.org/changeset/116075
+
+        WebKit2 build was broken while WebKit2 build was disabled in bots,
+        so nobody noticed it. Disable the WebKit2 build for now to keep
+        the bots green again until we find the actual commit that
+        broke the WebKit2 build.
+
+        * configure.ac:
+
+2012-05-04  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Enable WebKit2 by default in configure.
+
+        This was removed in r115624 to make sure release 1.9.1 didn't have
+        WebKit2 enabled by default, because we are using the same library
+        versions for WebKit1 and WebKit2.
+
+        * configure.ac: Enable WebKit2 by default.
+
+2012-05-03  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Rewrite FindCairo.cmake.
+        https://bugs.webkit.org/show_bug.cgi?id=84895
+
+        Reviewed by Daniel Bates.
+
+        The old approach relied on pkg-config for finding Cairo (which
+        introduced a dependency on pkg-config that could be avoided), used
+        the LibFindMacros code that we should probably remove in the
+        future and did not use the FindPackageHandleStandardArguments
+        module.
+
+        Change all that by rewriting the module.
+        - Use the pkg-config output optionally instead of requiring it
+        like LibFindMacros did.
+        - Remove the implicit dependency on FreeType which often found it
+        the wrong way via pkg-config and without considering
+        CMAKE_PREFIX_PATH.
+        - Retrieve the Cairo version by looking at cairo-version.h instead
+        of relying on pkg-config. It requires some additional code for
+        checking if the desired version has been found, but that will not
+        be needed once we start depending on CMake 2.8.3 or later.
+
+        The only downside is that FPHSA sets <UPPERCASED_NAME>_FOUND
+        instead of <Name>_FOUND, and to keep things consistent
+        Cairo_LIBRARIES and Cairo_INCLUDE_DIRS have become CAIRO_LIBRARIES
+        and CAIRO_INCLUDE_DIRS.
+
+        * Source/cmake/FindCairo.cmake:
+
+2012-05-03  Mike Fenton  <mifenton@rim.com>
+
+        Rename attribute.
+
+        [BlackBerry] Add special attribute for alternate selection touch handling.
+        https://bugs.webkit.org/show_bug.cgi?id=85284
+
+        Reviewed by Rob Buis.
+
+        * ManualTests/blackberry/selection-touch-override.html:
+
+2012-05-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [CMAKE] Remove unneeded keyword in WebKitFeatures.cmake
+        https://bugs.webkit.org/show_bug.cgi?id=85461
+
+        Reviewed by Eric Seidel.
+
+        DEFAULT keyword wasn't removed on Bug 72815.
+
+        * Source/cmake/WebKitFeatures.cmake: Remove DEFAULT keyword in ENABLE_DRAG_SUPPORT field.
+
+2012-05-02  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Unreviewed prospective QtMobility build fix.
+
+        * Source/api.pri: The Qt 4 equivalent of QT += sensors should be handled by
+        WebCore.pri, but somehow it isn't.
+
+2012-05-02  Lars Knudsen  <lars.knudsen@nokia.com>
+
+        [Qt] Make DeviceMotion and DeviceOrientation work with WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=64595
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Moving DeviceMotion and DeviceOrientation clients and providers
+        to WebCore.  This is done to allow clean dependencies when
+        statically linking WK2.
+
+        * Source/api.pri:
+
+2012-05-02  Dongwoo Im  <dw.im@samsung.com>
+
+        [EFL] Implement the Web Audio API feature.
+        https://bugs.webkit.org/show_bug.cgi?id=78688
+
+        Reviewed by Philippe Normand.
+
+        Implement the Web Audio API feature on the EFL port.
+        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
+
+        * Source/cmake/FindGStreamer-Audio.cmake: Added. Find the pkgconfig of the GStreamer-audio.
+        * Source/cmake/FindGStreamer-FFT.cmake: Added. Find the pkgconfig of the GStreamer-fft.
+        * Source/cmake/OptionsEfl.cmake: Add the ENABLE_WEB_AUDIO option.
+        * Source/cmakeconfig.h.cmake: Add the ENABLE_WEB_AUDIO option.
+
+2012-05-01  Landry Breuil  <landry@openbsd.org>
+
+        [GTK] Fix gstreamer detection during configure
+        https://bugs.webkit.org/show_bug.cgi?id=84325
+
+        Reviewed by Philippe Normand.
+
+        * configure.ac: Fix GSTREAMER_REQUIRED_VERSION and
+        GSTREAMER_PLUGINS_BASE_REQUIRED_VERSION assignments.
+
+2012-05-01  Mike Fenton  <mifenton@rim.com>
+
+        Add special attribute for alternate selection touch handling.
+        https://bugs.webkit.org/show_bug.cgi?id=85284
+
+        Reviewed by Antonio Gomes.
+
+        PR 152975.
+
+        Add manual test for -bb-selection-touchoverride.
+
+        Reviewed Internally by Gen Mak.
+
+        * ManualTests/blackberry/selection-touch-override.html: Added.
+
+2012-04-25  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Add a proper license to FindSqlite.cmake.
+        https://bugs.webkit.org/show_bug.cgi?id=84901
+
+        Reviewed by Daniel Bates.
+
+        FindSqlite.cmake referenced COPYING-CMAKE-SCRIPTS, which was
+        supposed to contain its license. This file, however, was not
+        imported with FindSqlite.cmake into the tree.
+
+        Add it from kdelibs (where the Find file came from) at git
+        revision [1]. Also worth mentioning is that Alexander Neundorf
+        added Gilles Caulier as the script author in revision [2].
+
+        [1] https://projects.kde.org/projects/kde/kdelibs/repository/revisions/c27925edf98b9952aeada677dfc74ce9c809c48a
+        [2] https://projects.kde.org/projects/kde/kdelibs/repository/revisions/14d0a92e04e1a200d6e58397e57a29194a0819cf
+
+        * Source/cmake/FindSqlite.cmake:
+
+2012-04-30  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Update NEWS and configure.ac for 1.9.1 release
+        https://bugs.webkit.org/show_bug.cgi?id=85175
+
+        Reviewed by Philippe Normand.
+
+        * configure.ac: Bumped version number. Disable WebKit2 by default
+        for now, since we still don't use a different libtool version for
+        libwebkit2gtk. It will be enabled again after the release and the
+        library version will be reworked for the next release.
+
+2012-04-30  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Fix make distcheck.
+
+        * GNUmakefile.am: Add ALL_MOFILES declaration.
+
+2012-04-28  Yury Semikhatsky  <yurys@chromium.org>
+
+        Unreviewed. Gtk build fix after r115553.
+
+        * Source/autotools/symbols.filter:
+
+2012-04-26  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [SOUP] Add a way to register custom uri schemes in WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=84130
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am: Add BUILDING_SOUP__ macro to compilation.
+
+2012-04-26  Antonio Gomes  <agomes@rim.com>
+
+        [BlackBerry] properly disable DRAG_SUPPORT
+        https://bugs.webkit.org/show_bug.cgi?id=84952
+
+        Reviewed by Daniel Bates.
+
+        Add CMake build options to toggle DRAG_SUPPORT on/off,
+        and set its value for BlackBerry port.
+
+        * Source/cmake/OptionsBlackBerry.cmake: Toggled in ON.
+        * Source/cmake/OptionsBlackBerry.cmake: Toggled OFF.
+        * Source/cmake/OptionsWinCE.cmake: Toggled it OFF.
+        * Source/cmake/OptionsWindows.cmake: Toggled it ON.
+        * Source/cmakeconfig.h.cmake:
+
+2012-04-26  Antonio Gomes  <agomes@rim.com>
+
+        [BlackBerry] Add smooth_scrolling options to CMAKE and enable it for Blackberry
+        https://bugs.webkit.org/show_bug.cgi?id=84954
+
+        Reviewed by Daniel Bates.
+
+        * Source/cmakeconfig.h.cmake: Make it possible for CMake builds to
+          toggle SMOOTH_SCROLLING on/off
+        * Source/cmake/OptionsBlackBerry.cmake: ... and set it to ON by defualt
+          for the Blackberry port.
+
+2012-04-26  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable VIDEO_TRACK feature
+        https://bugs.webkit.org/show_bug.cgi?id=84830
+
+        Reviewed by Gustavo Noronha Silva.
+
+        Enable VIDEO_TRACK feature by default on EFL port.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-04-24  Kent Tamura  <tkent@chromium.org>
+
+        Calendar Picker: Resize to minimal size to fit the content
+        https://bugs.webkit.org/show_bug.cgi?id=84826
+
+        Reviewed by Hajime Morita.
+
+        * ManualTests/forms/calendar-picker.html:
+        Sync with the size specified in CalendarPickerElement.cpp.
+
+2012-04-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
+
+        [Qt] Zoom back can overscroll document edges.
+        https://bugs.webkit.org/show_bug.cgi?id=84851
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Manual test for overscroll on zoom-back. Needs to be manual since we do not yet
+        have automatic testing for this type of UI-side behaviour.
+
+        * ManualTests/qt/double-tap-overscroll.html: Added.
+
+2012-04-24  Yael Aharon  <yael.aharon@nokia.com>
+
+        Fixed background is scrolling in http://www.nieuwecode.nl/ in Qt webkit2
+        https://bugs.webkit.org/show_bug.cgi?id=83980
+
+        Reviewed by Simon Fraser.
+
+        * ManualTests/fixed-position-no-z-index.html: Added.
+
+2012-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Build and run TestWebKitAPI unit tests
+        https://bugs.webkit.org/show_bug.cgi?id=84325
+
+        Reviewed by Philippe Normand.
+
+        * GNUmakefile.am: Include makefiles to build gtest and
+        TestWebKitAPI. Add BUILDING_WEBKIT2__ macro to compilation when
+        building WebKit2.
+
+2012-04-24  Charles Wei  <charles.wei@torchmobile.com.cn>
+
+        [BlackBerry] Input Range element expects mouse events
+        https://bugs.webkit.org/show_bug.cgi?id=84571
+
+        Reviewed by Antonio Gomes.
+
+        Input element with Range type expects mouse events to
+        drag the handle. Note that Input Range could appear
+        in both the web page directly, or in some shadow tree,
+        like the MediaControlTimeline and MediaControlVolume.
+        * ManualTests/blackberry/slider-thumb-consumes-event.html: Added.
+
+2012-04-24  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable Web Timing
+        https://bugs.webkit.org/show_bug.cgi?id=84705
+
+        Reviewed by Tony Gentilcore.
+
+        Enable Web Timing in EFL port for for performance profiling and
+        improvement.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-04-23  Kent Tamura  <tkent@chromium.org>
+
+        Add test function to get placeholder string
+        https://bugs.webkit.org/show_bug.cgi?id=84536
+
+        Reviewed by Ryosuke Niwa.
+
+        * Source/autotools/symbols.filter:
+        Expose Node::textContent and HTMLTextFormControlElement::placeholderShouldBeVisible.
+
+2012-04-22  Sriram Neelakandan  <sriram.neelakandan@gmail.com>
+
+        [Gtk] Added MOZ_X11 build flag for TARGET_X11
+        [Qt]  Added MOZ_X11 build flag for !embedded
+        [CMake]  Added MOZ_X11 build flag for WTF_OS_UNIX
+        https://bugs.webkit.org/show_bug.cgi?id=40785
+
+        Reviewed by Anders Carlsson.
+
+        * GNUmakefile.am:
+        * Source/cmake/OptionsCommon.cmake:
+
+2012-04-22  Adrian Bunk  <bunk@stusta.de>
+
+        [GTK] Remove the obsolete Hildon UI extensions
+        https://bugs.webkit.org/show_bug.cgi?id=83420
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac:
+
+2012-04-18  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [CMake] Use jsc target instead of ONLY_BUILD_JAVASCRIPTCORE
+        https://bugs.webkit.org/show_bug.cgi?id=84229
+
+        CMake caches ONLY_BUILD_JAVASCRIPTCORE=1 and will reuse the setting for
+        subsequent builds, stopping WebCore from being built ever again.
+
+        Instead of trying to emulate a build target using command line options,
+        just build the existing jsc target directly.
+
+        Reviewed by Rob Buis.
+
+        * CMakeLists.txt:
+
+2012-04-18  Jason Liu  <jason.liu@torchmobile.com.cn>
+
+        [BlackBerry] HTTP GET header has a "Cookie" when refreshing a page after cookies have been cleared.
+        https://bugs.webkit.org/show_bug.cgi?id=84223
+
+        Reviewed by George Staikos.
+
+        * ManualTests/blackberry/clear-cookie-refresh-result.php: Added.
+        * ManualTests/blackberry/clear-cookie-refresh.php: Added.
+
+2012-04-17  Yong Li  <yoli@rim.com>
+
+        REGRESSION (r105453): Crash when handling touch events
+        https://bugs.webkit.org/show_bug.cgi?id=81958
+
+        Reviewed by Antonio Gomes.
+
+        Add a manual test for this issue because DumpRenderTree
+        currently cannot send a group of touch points with
+        different touch states in one shot.
+
+        * ManualTests/resources/iframe-reloaded-on-touch.html: Added.
+        * ManualTests/touch-stale-iframe-crash.html: Added.
+
+2012-04-17  Kent Tamura  <tkent@chromium.org>
+
+        Calendar Picker: Support RTL layout
+        https://bugs.webkit.org/show_bug.cgi?id=83668
+
+        Reviewed by Hajime Morita.
+
+        * ManualTests/forms/calendar-picker.html:
+        Add Arabic parameters.
+        Add <select> to select a locale.
+
+2012-04-16  Dave Tu  <dtu@chromium.org>
+
+        Re-add GPU DEPS builders to flakiness dashboard.
+        https://bugs.webkit.org/show_bug.cgi?id=84056
+
+        Reviewed by Ojan Vafai.
+
+        * Tools/TestResultServer/static-dashboards/builders.js:
+
+2012-04-16  Gustavo Noronha Silva  <gns@gnome.org>
+
+        [GTK] Bump dependency on GTK+ 3.x to match reality
+        https://bugs.webkit.org/show_bug.cgi?id=84060
+
+        Rubber-stamped by Martin Robinson.
+
+        * configure.ac: Bump GTK+ 3 requirement to 3.4.0. In practice we
+        already depend on this version because of our dependency on a recent
+        glib, which causes linking issues with older GTK+; also bump glib to
+        its earliest version.
+
+2012-04-16  Philippe Normand  <pnormand@igalia.com>
+
+        [GTK] GStreamer 1.0 support in configure.ac
+        https://bugs.webkit.org/show_bug.cgi?id=84029
+
+        Reviewed by Martin Robinson.
+
+        The GStreamer version was recently changed to 1.0 in the git
+        repositories of the project so we need to reflect this change in
+        configure.ac.
+
+        * configure.ac:
+
+2012-04-16  Yael Aharon  <yael.aharon@nokia.com>
+
+        [Qt][WK2] Fixed elements position is wrong after zooming.
+        https://bugs.webkit.org/show_bug.cgi?id=83981
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * ManualTests/remove-add-fixed-position.html: Added.
+
+2012-04-13  Jason Liu  <jason.liu@torchmobile.com.cn>
+
+        [BlackBerry] Sign in cookie for ESPN.com does not retain login account (for fantasy sports).
+        https://bugs.webkit.org/show_bug.cgi?id=83760
+
+        Reviewed by George Staikos.
+
+        * ManualTests/blackberry/http-cookie-database-set.php: Added.
+        * ManualTests/blackberry/http-cookie-database-update.php: Added.
+
+2012-04-13  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [EFL] Add API for color chooser
+        https://bugs.webkit.org/show_bug.cgi?id=83692
+
+        Enables INPUT_TYPE_COLOR by default on the EFL port.
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-04-12  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Enable WebKit2 by default in configure
+        https://bugs.webkit.org/show_bug.cgi?id=83753
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac:
+
+2012-04-12  Bear Travis  <betravis@adobe.com>
+
+        [CSS Exclusions] Add flag to enable / disable exclusions at runtime
+        https://bugs.webkit.org/show_bug.cgi?id=83313
+
+        Reviewed by Ryosuke Niwa.
+
+        Adding the GTK symbols
+
+        * Source/autotools/symbols.filter:
+
+2012-04-12  George Staikos  <staikos@webkit.org>
+
+        Enable the fullscreen API for BlackBerry.
+        https://bugs.webkit.org/show_bug.cgi?id=83757
+
+        Reviewed by Antonio Gomes.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-04-12  Yael Aharon  <yael.aharon@nokia.com>
+
+        [Qt][WK2] Nested fixed elements scroll too fast
+        https://bugs.webkit.org/show_bug.cgi?id=83720
+
+        Reviewed by Noam Rosenthal.
+
+        * ManualTests/nested-fixed-position.html: Added.
+
+2012-03-15  Martin Robinson  <mrobinson@igalia.com>
+
+        [CAIRO] Make GLContextGLX a subclass of GLContext
+        https://bugs.webkit.org/show_bug.cgi?id=81285
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * GNUmakefile.am: Add a configuration option for activating GLX.
+        This is selected automatically now, but in the future there will be
+        the choice to turn on EGL and turn off GLX at compilation time.
+        * configure.ac: Ditto.
+
+2012-04-10  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
+
+        [Qt] InspectorServer: Add an API level auto test
+        https://bugs.webkit.org/show_bug.cgi?id=83594
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/tests.pri:
+
+2012-04-11  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Add WEBKIT_CREATE_FORWARDING_HEADERS macro
+        https://bugs.webkit.org/show_bug.cgi?id=83574
+
+        Reviewed by Daniel Bates.
+
+        This new macro generates forwarding headers with absolute paths to the original files.
+        It accepts a list of files and/or a list of directories as input.
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2012-04-10  Yael Aharon  <yael.aharon@nokia.com>
+
+        Initial support for fixed position elements in Qt WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=81786
+
+        Reviewed by Noam Rosenthal.
+
+        * ManualTests/fixed-position.html: Added.
+
+2012-04-10  Raphael Kubo da Costa  <rakuco@webkit.org>
+
+        [CMake] Do not pass -P to the preprocessor when running make_names.pl.
+        https://bugs.webkit.org/show_bug.cgi?id=83225
+
+        Reviewed by Rob Buis.
+
+        This is necessary to make CMake-based ports build with the
+        recently-released GCC 4.7.0, whose preprocessor seems to ignore
+        empty lines when -P is passed to it.  Such behavior breaks
+        make_names.pl (in fact, InFilesParser.pm), which expects an empty
+        line to separate common and specific sections in .in files.
+
+        A fix for this same problem has been supposedly done in r84123,
+        but as the CMake-based ports always pass --preprocessor to the
+        Perl tools the fix never reached us.
+
+        The idea is to define CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS
+        for (!MSVC && !QNX) and use it in the macros which call
+        make_names.pl.
+
+        * Source/cmake/OptionsCommon.cmake:
+        * Source/cmake/WebKitMacros.cmake:
+
+2012-04-10  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake][WIN] Add /MP flag when using a compiler with support for it
+        https://bugs.webkit.org/show_bug.cgi?id=83577
+
+        Reviewed by Daniel Bates.
+
+        * Source/cmake/OptionsWindows.cmake:
+
+2012-04-10  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Add missing DERIVED_SOURCES_WEBKIT_DIR variable
+        https://bugs.webkit.org/show_bug.cgi?id=83573
+
+        Reviewed by Daniel Bates.
+
+        We need this variable when ports want to generate files in the WebKit target.
+
+        * CMakeLists.txt:
+
+2012-04-10  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Enable USE_FOLDERS property
+        https://bugs.webkit.org/show_bug.cgi?id=83571
+
+        Reviewed by Daniel Bates.
+
+        Setting the FOLDER property on targets gives more structure
+        to the generated Visual Studio solutions.
+        This does not affect other CMake generators.
+
+        * Source/cmake/OptionsCommon.cmake:
+
+2012-04-06  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Update perf-o-matic config.js per upstream change.
+
+        * Websites/webkit-perf.appspot.com/js/config.js:
+        (var):
+
+2012-04-09  Dale Curtis  <dalecurtis@chromium.org>
+
+        Remove unworkable video-buffering-repaints-controls test.
+        https://bugs.webkit.org/show_bug.cgi?id=83097
+
+        Replaces the automated test for progress bar repaints during buffering
+        with a manual test entry.
+
+        Reviewed by Eric Carlson.
+
+        * ManualTests/media-controls.html:
+
+2012-04-09  Ming Xie  <mxie@rim.com>
+
+        [BlackBerry] Allow simulator to use GLES2 acceleration
+        https://bugs.webkit.org/show_bug.cgi?id=81672
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-04-09  Zalan Bujtas  <zbujtas@gmail.com>
+
+        [Qt][WK2] Fail to activate links after double tap gesture.
+        https://bugs.webkit.org/show_bug.cgi?id=83468
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * ManualTests/link-activation-fails-after-double-tap-gesture.html: Added.
+
+2012-04-09  Martin Robinson  <mrobinson@igalia.com>
+
+        [soup] Crash while loading http://www.jusco.cn
+        https://bugs.webkit.org/show_bug.cgi?id=68238
+
+        Reviewed by Philippe Normand.
+
+        * configure.ac: Bumped the libsoup dependency to 2.37.90.
+
+2012-04-09  Abhishek Arya  <inferno@chromium.org>
+
+        Crash due to floats not cleared before starting SVG <text> layout.
+        https://bugs.webkit.org/show_bug.cgi?id=83021
+
+        Reviewed by Dirk Schulze.
+
+        * ManualTests/svg-text-float-not-removed-crash.html: Added.
+
+2012-04-09  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Build fix for USE_SYSTEM_MALLOC after r113570.
+
+        * Source/cmakeconfig.h.cmake:
+
+2012-04-09  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Share build system options across ports
+        https://bugs.webkit.org/show_bug.cgi?id=72815
+
+        Reviewed by Daniel Bates.
+
+        Don't define the generic features for every port again.
+        Add a few macros for reusing the central defined options.
+
+        * CMakeLists.txt:
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+
+2012-04-07  Rob Buis  <rbuis@rim.com>
+
+        [BlackBerry] Add Battery Status API support
+        https://bugs.webkit.org/show_bug.cgi?id=82615
+
+        Reviewed by George Staikos.
+
+        Enable BATTERY_STATUS.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-04-06  Martin Robinson  <mrobinson@igalia.com>
+
+        Fix the GTK+ debug build.
+
+        * Source/autotools/symbols.filter: Add a missing symbol to the symbols.list file.
+
+2012-04-05  George Staikos  <staikos@webkit.org>
+
+        Compile the vibration module for BlackBerry.
+        https://bugs.webkit.org/show_bug.cgi?id=83340
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-04-05  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic should include unit in runs JSON responses
+        https://bugs.webkit.org/show_bug.cgi?id=83294
+
+        Reviewed by Tony Chang.
+
+        This is a follow up to r112829. Report the unit in /api/test/runs so that the frontend can show it.
+        Fixed a bug in Test.update_or_insert that it didn't store the unit when it first created the Test object.
+
+        Also increment perf-o-matic's version to 18.
+
+        * Websites/webkit-perf.appspot.com/app.yaml: Incremented the version.
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Test.update_or_insert.execute): Store unit when creating a test.
+        (Runs.to_json): Include unit.
+        * Websites/webkit-perf.appspot.com/models_unittest.py: Added tests.
+        (TestModelTests.test_update_or_insert_with_unit):
+        (RunsTest.test_to_json_without_results):
+        (RunsTest.test_to_json_with_results):
+        (RunsTest.test_to_json_with_unit):
+
+2012-03-14  Antonio Gomes  <agomes@rim.com>
+
+        Extend HitTestResult to support not "discarding" shadow content in favor of its DOM ancestor
+        https://bugs.webkit.org/show_bug.cgi?id=80847
+
+        Reviewed by David Hyatt.
+
+        Exporting Internals::nodesFromRect symbols for the Gtk build.
+
+        * Source/autotools/symbols.filter:
+
+2012-04-05  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
+
+        [BlackBerry] Clear local storage won't take effect until browser exit and relaunch
+        https://bugs.webkit.org/show_bug.cgi?id=83253
+
+        Reviewed by Rob Buis.
+
+        RIM PR: #146871
+        Added a manual test case to test the behavior when press
+        button "Clear Local Storage" from browser settings.
+        It has to be a manual test as it requires user interaction.
+
+        * ManualTests/blackberry/clear-localstorage.html: Added.
+
+2012-04-04  Kent Tamura  <tkent@chromium.org>
+
+        Add JavaScript and CSS code for the calendar picker implementation
+        https://bugs.webkit.org/show_bug.cgi?id=83011
+
+        Reviewed by Hajime Morita.
+
+        * ManualTests/forms/calendar-picker.html: Added.
+
+2012-04-04  Hayato Ito  <hayato@chromium.org>
+
+        Remove ReifiedTreeTraversal.
+        https://bugs.webkit.org/show_bug.cgi?id=83110
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter:
+
+2012-04-04  Shinya Kawanaka  <shinyak@chromium.org>
+
+        Shadow DOM is exposed in JS.
+        https://bugs.webkit.org/show_bug.cgi?id=82607
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2012-04-03  Tony Chang  <tony@chromium.org>
+
+        remove WebKit files from .gitattributes
+        https://bugs.webkit.org/show_bug.cgi?id=82966
+
+        Reviewed by Adam Barth.
+
+        * .gitattributes: These entries were never updated from the move to
+        Source/WebKit so they're probably not needed.
+
+2012-04-03  Keishi Hattori  <keishi@webkit.org>
+
+        Disable ENABLE_DATALIST for now
+        https://bugs.webkit.org/show_bug.cgi?id=82871
+
+        Reviewed by Kent Tamura.
+
+        We should disable ENABLE_DATALIST because
+        - We need platform-dependent implementation, and non-BlackBerry platforms don't have it.
+        - We need to hide the content of <datalist>, but it is shown for now.
+
+        * Source/cmake/OptionsEfl.cmake: Disabled ENABLE_DATALIST.
+
+2012-04-02  Balazs Kelemen  <kbalazs@webkit.org>
+
+        [Qt][WK2] Set up plugin process on Unix
+        https://bugs.webkit.org/show_bug.cgi?id=72121
+
+        Reviewed by Simon Hausmann.
+
+        * Source/QtWebKit.pro: Add PluginProcess subproject.
+
+2012-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r112868, r112879, and r112881.
+        http://trac.webkit.org/changeset/112868
+        http://trac.webkit.org/changeset/112879
+        http://trac.webkit.org/changeset/112881
+        https://bugs.webkit.org/show_bug.cgi?id=82901
+
+        "Build fail on bots." (Requested by kbalazs on #webkit).
+
+        * Source/QtWebKit.pro:
+
+2012-04-02  Balazs Kelemen  <kbalazs@webkit.org>
+
+        [Qt][WK2] Set up plugin process on Unix
+        https://bugs.webkit.org/show_bug.cgi?id=72121
+
+        Reviewed by Simon Hausmann.
+
+        * Source/QtWebKit.pro: Add PluginProcess subproject.
+
+2012-04-02  Hayato Ito  <hayato@chromium.org>
+
+        [Shadow DOM] Introduce ComposedShadowTreeWalker as a successor of ReifiedTreeTraversal APIs
+        https://bugs.webkit.org/show_bug.cgi?id=82009
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter:
+
+2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic build fix after 112829 for Chromium-style tests.
+
+        * Websites/webkit-perf.appspot.com/report_process_handler.py:
+        (ReportProcessHandler.post):
+
+2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic should store test results' units
+        https://bugs.webkit.org/show_bug.cgi?id=82852
+
+        Reviewed by Kentaro Hara.
+
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Test):
+        (Test.update_or_insert): Added "unit" to the argument list.
+        (Test.update_or_insert.execute): Store the unit.
+        (ReportLog.results_are_well_formed): Moved from ReportHandler.
+        (ReportLog.results_are_well_formed._is_float_convertible): Ditto.
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (TestModelTests.test_update_or_insert): Added a test case for "unit" argument.
+        (TestModelTests.test_update_or_insert_to_update): Ditto.
+        (ReportLogTests.test_results_are_well_formed): Added.
+        (ReportLogTests.test_results_are_well_formed.assert_results_are_well_formed): Added.
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post): Calls ReportLog.results_are_well_formed.
+        * Websites/webkit-perf.appspot.com/report_process_handler.py:
+        (ReportProcessHandler.post): Passes results['unit'] to Test.update_or_insert.
+
+2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Admin page should lexicologically sort tests
+        https://bugs.webkit.org/show_bug.cgi?id=82849
+
+        Rubber-stamped by Hajime Morita.
+
+        * Websites/webkit-perf.appspot.com/js/admin.js:
+        * Websites/webkit-perf.appspot.com/js/config.js:
+        (sortProperties):
+        (fetchDashboardManifest):
+
+2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Revert an inadvertently committed change.
+
+        * Websites/webkit-perf.appspot.com/app.yaml:
+
+2012-04-01  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic should have a way to hide some platforms and tests
+        https://bugs.webkit.org/show_bug.cgi?id=82842
+
+        Reviewed by Hajime Morita.
+
+        * Websites/webkit-perf.appspot.com/admin.html:
+        * Websites/webkit-perf.appspot.com/admin_handlers.py:
+        (AdminDashboardHandler.get_branches): Change the json format to allow platforms and tests to have
+        "hidden" boolean states.
+        (AdminDashboardHandler.get_platforms): Ditto.
+        (AdminDashboardHandler.get_builders): Just a cleanup. There is no clean for it to have a limit.
+        (AdminDashboardHandler.get_tests): Change the json format to add "hidden" boolean states.
+        (ChangeVisibilityHandler): Added.
+        (ChangeVisibilityHandler.post): Added. Changes the hidden-state (visibility) of a platform and a test.
+        * Websites/webkit-perf.appspot.com/app.yaml: Make sure everything under /admin/ requires admin privilege.
+        * Websites/webkit-perf.appspot.com/create_handler.py:
+        (CreateHandler.post): Don't emit LF after 'OK'.
+        * Websites/webkit-perf.appspot.com/css/admin.css: Added a bunch of rules for hide/show button.
+        * Websites/webkit-perf.appspot.com/js/admin.js:
+        (submitXHR): Extracted.
+        (createKeyNameReloader): Added hide/show button on each item and the corresponding ajax request.
+        * Websites/webkit-perf.appspot.com/json_generators.py:
+        (DashboardJSONGenerator.__init__): Skip hidden tests and platforms.
+        (ManifestJSONGenerator.__init__): Ditto.
+        * Websites/webkit-perf.appspot.com/json_generators_unittest.py: Added tests to ensure perf-o-matic
+        doesn't include hidden tests and platforms in dashboard and manifest json responses.
+        (DashboardJSONGeneratorTest.test_value_with_hidden_platform_and_tesst):
+        (ManifestJSONGeneratorTest.test_value_two_tests):
+        (ManifestJSONGeneratorTest.test_value_with_hidden_platform_and_test):
+        * Websites/webkit-perf.appspot.com/main.py:
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Platform): Added the "hidden" property.
+        (Test): Ditto. Also removed the comment about this class only exists for efficiency purposes since that's
+        no longer true.
+
+2012-04-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Support the Network Information API
+        https://bugs.webkit.org/show_bug.cgi?id=73528
+
+        Reviewed by Adam Barth.
+
+        Add network information API feature.
+
+        * Source/cmake/OptionsEfl.cmake: Add NETWORK_INFO feature.
+        * Source/cmakeconfig.h.cmake: Add NETWORK_INFO feature.
+
+2012-03-31  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
+
+        [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
+        https://bugs.webkit.org/show_bug.cgi?id=80135
+
+        Reviewed by Rob Buis.
+
+        RIM PR: 145660
+        Added manual test for testing the behavior of http authentication
+        challenge dialog. Both of these two files should be served over http.
+
+        * ManualTests/blackberry/http-auth-challenge.html: Added.
+        * ManualTests/blackberry/http-auth-challenge.php: Added.
+
+2012-03-30  Eli Fidler  <efidler@rim.com>
+
+        Enable OpenType Sanitizer for BlackBerry port.
+        https://bugs.webkit.org/show_bug.cgi?id=82782
+
+        Reviewed by Eric Seidel.
+
+        * Source/cmake/OptionsBlackBerry.cmake: define USE(OPENTYPE_SANITIZER)
+
+2012-03-30  Zalan Bujtas  <zbujtas@gmail.com>
+
+        Fix defective size_t overflow in GestureTapHighlighter.
+        https://bugs.webkit.org/show_bug.cgi?id=82605
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * ManualTests/tap-gesture-in-iframe-with-tap-highlight-crash.html: Added.
+
+2012-03-30  David Barr  <davidbarr@chromium.org>
+
+        Split up top-level .gitignore and .gitattributes
+        https://bugs.webkit.org/show_bug.cgi?id=82687
+
+        Reviewed by Tor Arne Vestbø.
+
+        Jeff King <peff@peff.net> suggested this on the git mailing list.
+        http://article.gmane.org/gmane.comp.version-control.git/194294
+        He reported a 1.6 times speed up for 'git status'.
+
+        * .gitattributes:
+        * .gitignore:
+        * ManualTests/.gitattributes: Added.
+        * Source/.gitignore: Added.
+        * Websites/.gitattributes: Added.
+
+2012-03-30  Keishi Hattori  <keishi@webkit.org>
+
+        Change ENABLE_INPUT_COLOR to ENABLE_INPUT_TYPE_COLOR and enable it for chromium
+        https://bugs.webkit.org/show_bug.cgi?id=80972
+
+        Reviewed by Kent Tamura.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * configure.ac:
+
+2012-03-30  Charles Wei  <charles.wei@torchmobile.com.cn>
+
+        [BlackBerry] Add more ENABLERS to cmakeconfig.h.cmake
+        https://bugs.webkit.org/show_bug.cgi?id=82594
+
+        Reviewed by Rob Buis.
+
+        Upstreaming feature enablers in cmakeconfig.h.cmake for BlackBerry porting,
+        and clean up obsolete MACROs in OptionsBlackBerry.cmake.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-03-29  Dave Tu  <dtu@chromium.org>
+
+        Add new chrome.webkit GPU bot to flakiness dashboard.
+        https://bugs.webkit.org/show_bug.cgi?id=82562
+
+        Reviewed by Ojan Vafai.
+
+        * Tools/TestResultServer/static-dashboards/builders.js:
+
+2012-03-29  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Remove a couple sources wx
+        should not build.
+
+        * wscript:
+
+2012-03-29  Zalan Bujtas  <zbujtas@gmail.com>
+
+        Remove redundant updateViewportArguments() call when page is restored from page cache.
+        https://bugs.webkit.org/show_bug.cgi?id=82500
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Add manual test for history navigation with viewport width check.
+
+        * ManualTests/viewport-width-test-after-history-navigation.html: Added.
+
+2012-03-28  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed. Build fix, move WTF back into JSCore target
+        until issues with JSCore not linking in all WTF symbols are resolved.
+
+        * wscript:
+
+2012-03-28  Sergio Villar Senin  <svillar@igalia.com>
+
+        [Soup] DNS prefetching spams resolver, shoots self in the foot
+        https://bugs.webkit.org/show_bug.cgi?id=41630
+
+        Reviewed by Martin Robinson.
+
+        Bump libsoup and glib dependencies.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * configure.ac:
+
+2012-03-28  Xan Lopez  <xlopez@igalia.com>
+
+        [GTK] Respect NOCONFIGURE option in autogen.sh
+        https://bugs.webkit.org/show_bug.cgi?id=82447
+
+        Reviewed by Philippe Normand.
+
+        Make autogen.sh follow the new build-api for GNOME, see
+        http://people.gnome.org/~walters/docs/build-api.txt
+
+        * autogen.sh: respect the NOCONFIGURE environment flag, per the
+        new GNOME build-api.
+
+2012-03-27  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic build fix.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (RunsChartHandler.post):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Runs.chart_params):
+
+2012-03-27  Dave Tu  <dtu@chromium.org>
+
+        Show image diffs for gpu_tests on flakiness dashboard
+        https://bugs.webkit.org/show_bug.cgi?id=81848
+
+        Reviewed by Ojan Vafai.
+
+        Add a new results layout for gpu_tests that pulls the image diffs in
+        addition to the text output. Also add new gpu_tests builders.
+
+        * Tools/TestResultServer/static-dashboards/builders.js: Update
+        gpu_tests builders.
+        * Tools/TestResultServer/static-dashboards/dashboard_base.js: Add a
+        function to check for GPU test type.
+        * Tools/TestResultServer/static-dashboards/flakiness_dashboard.html:
+        Add new GPU results layout.
+
+2012-03-26  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Trigger a build on Chromium Linux boxes to see if clean builds succeed or not.
+
+2012-03-26  Leo Yang  <leo.yang@torchmobile.com.cn>
+
+        [BlackBerry] Skeleton code of AsyncFileSystemBlackBerry.cpp
+        https://bugs.webkit.org/show_bug.cgi?id=82157
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake: Turn on ENABLE_FILE_SYSTEM for blackberry.
+
+2012-03-25  Hayato Ito  <hayato@chromium.org>
+
+        [Shadow DOM] Add Reified DOM Tree traversal internal APIs.
+        https://bugs.webkit.org/show_bug.cgi?id=79197
+
+        Reviewed by Dimitri Glazkov.
+
+        Add internal APIs which can be used to traverse Reified DOM tree, which is
+        a result of node distribution algorithm explained in Shadow DOM spec.
+        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html
+
+        Every public functions defined in ReifiedTreeTraversal are static
+        functions and are named in a similar way to ones defined in WebCore::Node class.
+        The only difference is that ReifiedTreeTraversal APIs consider shadow
+        hosts and also traverse nodes is Shadow DOM subtrees, crossing shadow's upper and lower boundary
+        transparently.
+
+        There is no actual client which uses these APIs. Follow-up patches for FocusNavigation
+        and EventDispatcher will use the APIs so that they can traverse node in reified tree order.
+
+        * Source/autotools/symbols.filter:
+
+2012-03-25  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Move WTF to its own static lib build.
+        
+        * wscript:
+
+2012-03-24  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed. Fix the build after WTF move.
+
+        * wscript:
+
+2012-03-23  Dave Michael  <dmichael@chromium.org>
+
+        Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
+        https://bugs.webkit.org/show_bug.cgi?id=80428
+
+Reviewed by Eric Seidel and Ryosuke Niwa.
+
+        Test: plugins/netscape-dom-access-and-reload.html
+
+        * Source/autotools/symbols.filter: Export a symbol for InspectorCounters::counterValue.
+
+2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
+
+        REGRESSION(r111754): plugins/reloadplugins-and-pages.html fails on all platforms
+        https://bugs.webkit.org/show_bug.cgi?id=82035
+
+        * Source/autotools/symbols.filter:
+
+2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
+
+        [CMake] Unreviewed build fix after r111778.
+
+        * Source/CMakeLists.txt: Build WTF/.
+
+2012-03-22  Martin Robinson  <mrobinson@igalia.com>
+
+        Fixed the GTK+ WTF/JavaScriptCore build after r111778.
+
+        * GNUmakefile.am: Remove a couple unnecessary gnumake variables.
+
+2012-03-22  Csaba Osztrogonác  <ossy@webkit.org>
+
+        Actually move WTF files to their new home
+        https://bugs.webkit.org/show_bug.cgi?id=81844
+
+        [Qt] Unreviewed buildfix after r111778.
+
+        * Source/api.pri:
+
+2012-03-22  Ming Xie  <mxie@rim.com>
+
+        OLD_COMPILE_FLAGS was set incorrectly in WebKitHelpers.cmake
+        https://bugs.webkit.org/show_bug.cgi?id=81961
+
+        Reviewed by Rob Buis.
+
+        This fixes the regression introduced by r109292
+
+        * Source/cmake/WebKitHelpers.cmake:
+
+2012-03-22  Dave Michael  <dmichael@chromium.org>
+
+        HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
+        https://bugs.webkit.org/show_bug.cgi?id=80428
+
+        Reviewed by Eric Seidel.
+
+        Test: plugins/netscape-dom-access-and-reload.html
+
+        * Source/autotools/symbols.filter: Export a symbol for InspectorCounters::counterValue.
+
+2012-03-22  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed. Adding Source/WTF to the build and updating
+        waf port list.
+
+        * wscript:
+
+2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Add the forgotten admin.html after r108917.
+
+        * Websites/webkit-perf.appspot.com/admin.html: Added.
+
+2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Increment the perf-o-matic app version.
+
+        * Websites/webkit-perf.appspot.com/app.yaml:
+
+2012-03-20  Eric Seidel  <eric@webkit.org>
+
+        Move wtf/Platform.h from JavaScriptCore to Source/WTF/wtf
+        https://bugs.webkit.org/show_bug.cgi?id=80911
+
+        Reviewed by Adam Barth.
+
+        * CMakeLists.txt: Define WTF_DIR
+
+2012-03-20  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic: don't query datastore to generate chart API urls
+        https://bugs.webkit.org/show_bug.cgi?id=81499
+
+        Reviewed by Hajime Morita.
+
+        Parse json text to extract timestamps and test values instead of iterating
+        through the data store.
+
+        * Websites/webkit-perf.appspot.com/create_handler.py:
+        (CreateHandler.post):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Runs._timestamp_and_value_from_json_entry):
+        (Runs):
+        (Runs.to_json):
+        (Runs.chart_params):
+
+2012-03-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Convert hasSpellingMarker to use Internals interface.
+        https://bugs.webkit.org/show_bug.cgi?id=81300
+
+        Reviewed by Ryosuke Niwa.
+
+        * Source/autotools/symbols.filter: Export a symbol for hasSpellingMarker.
+
+2012-03-19  Tony Chang  <tony@chromium.org>
+
+        clean up gitignore
+        https://bugs.webkit.org/show_bug.cgi?id=81594
+
+        Reviewed by James Robinson.
+
+        * .gitignore: .suo files are per-user files used by VS2010. .ninja
+        files are no longer generated in the tree-- they are generated in the
+        build directory.
+
+2012-03-17  Charles Wei  <charles.wei@torchmobile.com.cn>
+
+        [BlackBerry] Enable Web Timing for performance profiling and improvement.
+        https://bugs.webkit.org/show_bug.cgi?id=81085
+
+        Reviewed by Rob Buis.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-03-16  Kihong Kwon  <kihong.kwon@samsung.com>
+
+        Support for Battery Status API.
+        https://bugs.webkit.org/show_bug.cgi?id=62698
+
+        Enable BATTERY_STATUS for WebKit-Efl.
+        http://www.w3.org/TR/battery-status/
+
+        Reviewed by Adam Barth.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-03-15  Patrick Gansterer  <paroga@webkit.org>
+
+        [EFL] Make zlib a general build requirement
+        https://bugs.webkit.org/show_bug.cgi?id=80153
+
+        Reviewed by Hajime Morita.
+
+        After r109538 WebSocket module needs zlib to support deflate-frame extension.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-03-15  Rob Buis  <rbuis@rim.com>
+
+        [BlackBerry] Remove some features that we do not have anymore
+        https://bugs.webkit.org/show_bug.cgi?id=81274
+
+        Reviewed by Antonio Gomes.
+
+        Remove some features that we do not have anymore, code was removed some time ago.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2012-03-14  Matt Falkenhagen  <falken@chromium.org>
+
+        Allow per-script font settings to be specified in layout tests
+        https://bugs.webkit.org/show_bug.cgi?id=78184
+
+        Reviewed by Hajime Morita.
+
+        This adds per-script font settings to InternalSettings, so it can be used in layout tests instead of
+        the per-script font settings support in DumpRenderTree overridePreference, which has only been implemented
+        for Chromium so far.
+
+        * Source/autotools/symbols.filter: Added symbols.
+
+2012-03-14  Thiago Marcos P. Santos  <thiago.santos@intel.com>
+
+        [EFL] Enable HTML5 Summary and Details elements
+        https://bugs.webkit.org/show_bug.cgi?id=81027
+
+        Enabling Summary and Details elements by default and removing related
+        tests from skip list since they should pass now.
+
+        Reviewed by Antonio Gomes.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-03-14  Andrey Kosyakov  <caseq@chromium.org>
+
+        Web Inspector: add didCancelFrame timeline event
+        https://bugs.webkit.org/show_bug.cgi?id=80994
+
+        Reviewed by Pavel Feldman.
+
+        * Source/autotools/symbols.filter:
+
+2012-03-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Deal with multiple paths in QMAKE_EXTRA_MODULE_FORWARDS
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2012-03-14  Max Vujovic  <mvujovic@adobe.com>
+
+        GTK 32-bit Linux Release build failing after r110580 (from bug 80338)
+        https://bugs.webkit.org/show_bug.cgi?id=81063
+
+        Prospective build fix for GTK 32-bit Linux Release.
+
+        Reviewed by Martin Robinson.
+
+        * Source/autotools/symbols.filter: Adding symbol for ClientRectList(Vector<FloatQuad>) for
+        GTK 32-bit.
+
+2012-03-13  Dan Bernstein  <mitz@apple.com>
+
+        <rdar://problem/11025225> Assertion failure in RenderView::computeRectForRepaint() (!repaintContainer || repaintContainer == this) at store.apple.com
+        https://bugs.webkit.org/show_bug.cgi?id=81051
+
+        Reviewed by Simon Fraser.
+
+        * ManualTests/inline-repaint-container.html: Added.
+
+2012-03-13  Adam Barth  <abarth@webkit.org> && Benjamin Poulain  <bpoulain@apple.com>
+
+        Always enable ENABLE(CLIENT_BASED_GEOLOCATION)
+        https://bugs.webkit.org/show_bug.cgi?id=78853
+
+        Reviewed by Adam Barth.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-03-13  Max Vujovic  <mvujovic@adobe.com>
+
+        Add a method to window.internals to enable testing of inspector highlight rects
+        https://bugs.webkit.org/show_bug.cgi?id=80338
+
+        Reviewed by Pavel Feldman.
+
+        * Source/autotools/symbols.filter: Export symbols for GTK.
+
+2012-03-12  Scott Byer  <scottbyer@chromium.org>
+
+        Cleanup obsolete files.
+        https://bugs.webkit.org/show_bug.cgi?id=80737
+
+        Reviewed by James Robinson.
+
+        * wscript:
+
+2012-03-12  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Make sure we set the right library version for Qt 4
+
+        r110272 accedentally pruned the variable that ensures this.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2012-03-10  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Increment the perf-o-matic app version.
+
+        * Websites/webkit-perf.appspot.com/app.yaml:
+
+2012-03-09  Jon Lee  <jonlee@apple.com>
+
+        Add support for ENABLE(LEGACY_NOTIFICATIONS)
+        https://bugs.webkit.org/show_bug.cgi?id=80497
+
+        Reviewed by Adam Barth.
+
+        Prep for b80472: Update API for Web Notifications
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2012-03-09  Csaba Osztrogonác  <ossy@webkit.org>
+
+        [Qt] Disable WebGL performance tests temporarily.
+        https://bugs.webkit.org/show_bug.cgi?id=80503
+
+        Rubber-stamped by Simon Hausmann.
+
+        * Source/tests.pri:
+
+2012-03-09  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r110191, r110202, and r110279.
+        http://trac.webkit.org/changeset/110191
+        http://trac.webkit.org/changeset/110202
+        http://trac.webkit.org/changeset/110279
+        https://bugs.webkit.org/show_bug.cgi?id=80694
+
+        They broke !ENABLE(INSPECTOR) builds (Requested by Ossy on
+        #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-03-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Use Qt's module system for install rules and depending on QtWebKit
+
+        Instead of rolling our own install rules we now use the same approach as
+        every other Qt module, by loading qt_module.prf and qt_module_config.prf.
+
+        This ensures that we follow the same semantics as the rest of Qt on
+        what sort of config options are enabled by default (create_cmake eg.).
+        It also allows us to use QT += webkit instead of the workaround we had
+        with CONFIG += qtwebkit.
+
+        We do however force Qt to always treat our build as a non-developer build,
+        so the libraries will end up in the WebKit lib directory instead of the
+        qtbase directory (as with a normal developer-build). This allows us to
+        keep the webkit-build self-contained. If Qt is a developer build we still
+        copy the module file manually to Qt, so that you don't have to install
+        WebKit to make it available.
+
+        For non-developer builds of Qt, it is still possible to use the built
+        WebKit libraries without having to install them, by having the variable
+        QMAKE_EXTRA_MODULE_FORWARDS set in the project's .qmake.cache file,
+        pointing to $WEBKITOUTUTDIR/$CONFIGURATION/modules.
+
+        https://bugs.webkit.org/show_bug.cgi?id=80590
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+        * Source/sync.profile:
+
+2012-03-08  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic should incrementally update JSON responses
+        https://bugs.webkit.org/show_bug.cgi?id=79898
+
+        Reviewed by Eric Seidel.
+
+        Now that Runs object store test_runs and averages separately,
+        we can update JSON data incrementally without degrading values.
+
+        Also fixed the order of arguments passed to DashboardImage.needs_update
+        in schedule_runs_update. This bug had caused all chart images to be
+        updated on every new report.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (schedule_runs_update):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Runs.update_or_insert):
+        (Runs.update_incrementally):
+        (Runs):
+        (Runs.get_by_objects):
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (RunsTest._create_results):
+        (RunsTest.test_generate_runs):
+        (RunsTest.test_update_or_insert):
+        (RunsTest.test_update_incrementally):
+        (RunsTest.test_to_json_with_results):
+        * Websites/webkit-perf.appspot.com/report_process_handler.py:
+        (ReportProcessHandler.post):
+
+2012-03-08  Max Vujovic  <mvujovic@adobe.com>
+
+        Add a method to window.internals to enable testing of inspector highlight rects
+        https://bugs.webkit.org/show_bug.cgi?id=80338
+
+        Reviewed by Pavel Feldman.
+
+        * Source/autotools/symbols.filter: Export symbols for GTK.
+
+2012-03-05  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Turn Runs class into a proper model to implement incremental JSON update
+        https://bugs.webkit.org/show_bug.cgi?id=80364
+
+        Reviewed by Hajime Morita.
+
+        Move Runs from json_generators.py to models.py and turn it into a proper Model.
+
+        Now most JSON responses are held by Runs objects instead of PersistentCache.
+        Added some tests around update_or_insert and json_by_ids to test PersistentCache-like
+        behavior but there should be no user-visible behavioral differences.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (RunsUpdateHandler.post):
+        (CachedRunsHandler.get):
+        (RunsChartHandler.post):
+        * Websites/webkit-perf.appspot.com/json_generators.py:
+        (ManifestJSONGenerator.value):
+        * Websites/webkit-perf.appspot.com/json_generators_unittest.py:
+        (ManifestJSONGeneratorTest.test_value_two_tests):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Test):
+        (Runs):
+        (Runs._generate_runs):
+        (Runs._entry_from_build_and_result):
+        (Runs._key_name):
+        (Runs.update_or_insert):
+        (Runs.json_by_ids):
+        (Runs.to_json):
+        (Runs.chart_params):
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (RunsTest):
+        (RunsTest.setUp):
+        (RunsTest._create_results):
+        (RunsTest.test_generate_runs):
+        (RunsTest.test_update_or_insert):
+        (RunsTest.test_json_by_ids):
+        (RunsTest.test_to_json_without_results):
+        (RunsTest.test_to_json_with_results):
+        (RunsTest._assert_entry):
+        (RunsTest.test_run_from_build_and_result):
+        (RunsTest.test_run_from_build_and_result.create_build):
+        (RunsTest.test_chart_params_with_value):
+        (RunsTest.test_chart_params_with_value.split_as_int):
+
+2012-03-07  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Fix compilation without QtQuick1
+        https://bugs.webkit.org/show_bug.cgi?id=80503
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/tests.pri: Compile qml1 tests only with Qt 4 for the moment.
+
+2012-03-07  Mark Rowe  <mrowe@apple.com>
+
+        Teach make to build WTF.
+
+        * Source/Makefile:
+
+2012-03-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Make the removal of transitive library dependencies work with CMake < 2.8.7.
+        https://bugs.webkit.org/show_bug.cgi?id=80469
+
+        Reviewed by Antonio Gomes.
+
+        * CMakeLists.txt: Do not set the CMAKE_LINK_INTERFACE_LIBRARIES
+        variable here; it was introduced in CMake 2.8.7 so we can't depend
+        on it as we actually support CMake >= 2.8.0.
+
+2012-03-06  Hajime Morrita  <morrita@chromium.org>
+
+        https://bugs.webkit.org/show_bug.cgi?id=79935
+        REGRESSION: <content> element is not HTMLUnknownElement when Shadow DOM API is disabled
+
+        Reviewed by Adam Barth.
+
+        Added a newly exported symbol.
+
+        * Source/autotools/symbols.filter:
+
+2012-03-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        undefined reference to JSC::IdentifierTable::~IdentifierTable() on EFL port
+        https://bugs.webkit.org/show_bug.cgi?id=80282
+
+        Reviewed by Antonio Gomes.
+
+        Remove transitive library dependencies; they are especially
+        dangerous when one ends up linking against WTF, JSC and then WTF
+        again, since some symbols will not be defined.
+
+        Passing --no-copy-dt-needed-entries and --as-needed to the linker
+        (which some recent Linux distros do by default) makes the issue
+        even more evident.
+
+        * CMakeLists.txt: Set CMAKE_LINK_INTERFACE_LIBRARIES to an empty
+        list to prevent implicit transitive library dependencies from
+        being created by default.
+
+2012-03-05  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic should memcache dashboard images
+        https://bugs.webkit.org/show_bug.cgi?id=80349
+
+        Reviewed by Eric Seidel.
+
+        Added DashboardImage.create and DashboardImage.get_image to encapsulate memcache.
+        Also replaced transaction in DashboardImage.set_cache by a single put since it duplicates
+        what put does by default.
+
+        Also removed redundant cache_* functions and merged them into handler code.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (ManifestUpdateHandler.post):
+        (CachedManifestHandler.get):
+        (DashboardUpdateHandler.post):
+        (CachedDashboardHandler.get):
+        (RunsUpdateHandler):
+        (RunsUpdateHandler.post):
+        (RunsChartHandler):
+        (RunsChartHandler.post):
+        (DashboardImageHandler.get):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (PersistentCache.set_cache):
+        (DashboardImage):
+        (DashboardImage.create):
+        (DashboardImage.get_image):
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (PersistentCacheTests.setUp):
+        (PersistentCacheTests.test_set_cache):
+        (PersistentCacheTests.test_get_cache):
+        (DashboardImageTests.setUp):
+        (DashboardImageTests):
+        (DashboardImageTests.test_create):
+        (DashboardImageTests.test_get):
+
+2012-03-05  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r109760.
+        http://trac.webkit.org/changeset/109760
+        https://bugs.webkit.org/show_bug.cgi?id=80320
+
+        Caused many GTK+ tests to crash (Requested by mrobinson on
+        #webkit).
+
+        * configure.ac:
+
+2012-03-05  Kangil Han  <kangil.han@samsung.com>
+
+        [CMake][DRT] Add WebCoreTestSupport.
+        https://bugs.webkit.org/show_bug.cgi?id=79896
+
+        Reviewed by Daniel Bates.
+
+        Add WebCoreTestSupport library for DRT in CMake.
+        We will use internals object by linking this library on DRT.
+
+        * CMakeLists.txt:
+
+2012-03-05  Martin Robinson  <mrobinson@igalia.com>
+
+        [soup] Crash while loading http://www.jusco.cn
+        https://bugs.webkit.org/show_bug.cgi?id=68238
+
+        Reviewed by Philippe Normand.
+
+        * configure.ac: Bumped the libsoup dependency to 2.37.90.
+
+2012-03-04  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Libraries are installed to /usr/lib and not /usr/lib64 on x86_64
+        https://bugs.webkit.org/show_bug.cgi?id=71507
+
+        Reviewed by Antonio Gomes.
+
+        * Source/cmake/OptionsCommon.cmake: Provide two variables which
+        can be changed via CMake: LIB_SUFFIX, which is often used in CMake
+        projects to let the user choose whether a suffix should be added
+        to the library installation directory (such as 32 or 64), and
+        LIB_INSTALL_DIR, which takes LIB_SUFFIX into account to determine
+        whether to install libraries.
+
+2012-03-03  Hans Wennborg  <hans@chromium.org>
+
+        Implement Speech JavaScript API
+        https://bugs.webkit.org/show_bug.cgi?id=80019
+
+        Reviewed by Adam Barth.
+
+        Add ENABLE_SCRIPTED_SPEECH.
+
+        * configure.ac:
+
+2012-03-02  Alexandre Rostovtsev  <tetromino@gentoo.org>
+
+        Make webkit-gtk translations respect LINGUAS
+        https://bugs.webkit.org/show_bug.cgi?id=79605
+
+        Reviewed by Martin Robinson.
+
+        PO_LINGUAS, USER_LINGUAS, and USE_LINGUAS added to root
+        GNUmakefile.am to ensure that they can be used in the definition of
+        MOFILES that will be generated by automake.
+
+        * GNUmakefile.am:
+
+2012-03-02  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Remove deleted file from api.pro
+
+        Reviewed by Noam Rosenthal.
+
+        * Source/api.pri:
+
+2012-03-02  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Compile WebCore without QtWidgets
+        https://bugs.webkit.org/show_bug.cgi?id=80141
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri: Use QT += opengl for the WebKit1 bits, such as the QGLWidget
+        usage in PageClientQt.cpp. Previously this dependency came implicitly through WebCore.pri.
+
+2012-03-02  Byungwoo Lee  <bw80.lee@samsung.com>
+
+        [EFL] Build warning : comparison between signed and unsigned integer expressions.
+        https://bugs.webkit.org/show_bug.cgi?id=79860
+
+        Reviewed by Hajime Morita.
+
+        Fixed build warnings which are getting generated when comparing signed
+        and unsigned integer expressions.
+
+        * Source/WebCore/bindings/js/JSDocumentCustom.cpp:
+        * Source/WebCore/platform/ContextMenu.cpp:
+        * Source/WebKit/efl/ewk/ewk_view_single.cpp:
+
+2012-03-02  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Move QStyle theming code out of WebCore into WebKit1
+        https://bugs.webkit.org/show_bug.cgi?id=80128
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/api.pri: Adjust to moving source files.
+
+2012-03-01  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic: generate dashboard images for 30, 90, and 365 days
+        https://bugs.webkit.org/show_bug.cgi?id=80016
+
+        Reviewed by Eric Seidel.
+
+        Add the ability to generate graphs for 30, 90, and 365 day graphs but only occasionally
+        according to the heuristics in DashboardImage.needs_update.
+
+        Also fix a bug in Runs.chart_params that y-axis grid was set to an incorrect value.
+ 
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (schedule_runs_update):
+        (RunsChartHandler.post):
+        * Websites/webkit-perf.appspot.com/json_generators.py:
+        (Runs.chart_params):
+        * Websites/webkit-perf.appspot.com/json_generators_unittest.py:
+        (RunsTest.test_chart_params_with_value):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (DashboardImage):
+        (DashboardImage.needs_update):
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (HelperTests._assert_there_is_exactly_one_id_holder_and_matches):
+        (HelperTests.test_create_in_transaction_with_numeric_id_holder.execute):
+        (HelperTests.test_create_in_transaction_with_numeric_id_holder):
+        (HelperTests.test_failing_in_create_in_transaction_with_numeric_id_holder):
+        (HelperTests.test_raising_in_create_in_transaction_with_numeric_id_holder):
+        (HelperTests.test_delete_model_with_numeric_id_holder.execute):
+        (HelperTests.test_delete_model_with_numeric_id_holder):
+        (HelperTests.test_model_from_numeric_id.execute):
+        (HelperTests):
+        (HelperTests.test_model_from_numeric_id):
+        (BranchTests.test_create_if_possible):
+        (PlatformTests.test_create_if_possible):
+        (BuilderTests.test_create):
+        (BuilderTests.test_update_password):
+        (BuilderTests.test_hashed_password):
+        (BuilderTests.test_authenticate):
+        (_create_some_builder):
+        (_create_build):
+        (BuildTests.test_get_or_insert_from_log):
+        (TestModelTests.test_update_or_insert):
+        (TestModelTests.test_update_or_insert_to_update):
+        (TestModelTests.test_merge):
+        (TestResultTests.test_get_or_insert_value):
+        (TestResultTests.test_get_or_insert_stat_value):
+        (TestResultTests.test_replace_to_change_test_name):
+        (TestResultTests.test_replace_to_change_test_name_with_stat_value):
+        (TestResultTests.test_replace_to_change_test_name_overrides_conflicting_result):
+        (ReportLogTests._create_log_with_payload):
+        (ReportLogTests.test_builder):
+        (ReportLogTests.test_branch):
+        (ReportLogTests.test_platform):
+        (PersistentCacheTests._assert_persistent_cache):
+        (PersistentCacheTests.test_set):
+        (PersistentCacheTests.test_get):
+        (DashboardImageTests):
+        (DashboardImageTests.test_needs_update):
+
+2012-03-01  Kangil Han  <kangil.han@samsung.com>
+
+        [DRT] Remove all PlainTextController usages in existing tests by adding internal API
+        https://bugs.webkit.org/show_bug.cgi?id=78570
+
+        Reviewed by Hajime Morita.
+
+        This patch will remove all PlainTextController usages
+        in existing DRT tests by adding internal API to WebCore/testing/Internals
+
+        * Source/autotools/symbols.filter:
+
+2012-02-29  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic build fix. Also toggle the switch to start using ping images on the dashboard after r109190.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (schedule_runs_update):
+        (schedule_report_process):
+        * Websites/webkit-perf.appspot.com/js/admin.js:
+        (bind):
+        * Websites/webkit-perf.appspot.com/js/config.js:
+
+2012-02-29  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Unreviewed, fix build on 64-bit platforms with SHARED_CORE=ON after r109197.
+        https://bugs.webkit.org/show_bug.cgi?id=79965
+
+        This partially reverts r66714, in that whether -fPIC is passed to
+        the compiler does not depend on the value of SHARED_CORE anymore:
+        since we always build WTF as a static library, it will always need
+        -fPIC because our shared libraries are built with it.
+
+        * Source/cmake/WebKitHelpers.cmake: Always pass -fPIC to
+        STATIC_LIBRARY targets.
+
+2012-02-29  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Unreviewed, fix build on 64-bit platforms with SHARED_CORE=ON after r109197.
+
+        This partially reverts r66714, in that whether -fPIC is passed to
+        the compiler does not depend on the value of SHARED_CORE anymore:
+        since we always build WTF as a static library, it will always need
+        -fPIC because our shared libraries are built with it.
+
+        * Source/cmake/WebKitHelpers.cmake: Always pass -fPIC to
+        STATIC_LIBRARY targets.
+
+2012-02-29  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Bump WebKitGTK+ version number.
+
+        * configure.ac: Bump version number to 1.9.0 now that we branched
+        for 1.8.
+
+2012-02-29  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Fix GTK+ build.
+
+        * Source/autotools/symbols.filter: Add symbol.
+
+2012-02-28  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Always build wtf as a static library.
+        https://bugs.webkit.org/show_bug.cgi?id=79857
+
+        Reviewed by Eric Seidel.
+
+        * CMakeLists.txt: Put static libraries in ${CMAKE_BINARY_DIR} too
+        to have them grouped with the shared ones.
+
+2012-02-28  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic: generate dashboard images using Google Chart Tools
+        https://bugs.webkit.org/show_bug.cgi?id=79838
+
+        Reviewed by Hajime Morita.
+
+        Rename RunsJSONGenerator to Runs and added an ability to generate parameters for Google chart tool.
+        Also added RunsChartHandler to make url-fetches these images and DashboardImageHandler to serve them.
+        The image is stored in DashboardImage model.
+
+        We can't enable flip the switch to use images yet because we don't create images on fly (they're
+        generated when runs are updated; i.e. bots upload new results). We should be able to flip the switch
+        once this patch lands and all perf bots cycle.
+
+        We probably make way too many calls to Google chart tool's server with this preliminary design but we
+        can easily move this task into the backend and run it via a cron job once we know it works.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (schedule_runs_update):
+        (RunsUpdateHandler.post):
+        (RunsChartHandler):
+        (RunsChartHandler.get):
+        (RunsChartHandler.post):
+        (DashboardImageHandler):
+        (DashboardImageHandler.get):
+        (schedule_report_process):
+        * Websites/webkit-perf.appspot.com/json_generators.py:
+        (ManifestJSONGenerator.value):
+        (Runs):
+        (Runs.__init__):
+        (Runs.value):
+        (Runs.chart_params):
+        * Websites/webkit-perf.appspot.com/json_generators_unittest.py:
+        (RunsTest):
+        (RunsTest._create_results):
+        (RunsTest.test_generate_runs):
+        (RunsTest.test_value_without_results):
+        (RunsTest.test_value_with_results):
+        (RunsTest.test_run_from_build_and_result):
+        (RunsTest.test_chart_params_with_value):
+        (RunsTest.test_chart_params_with_value.split_as_int):
+        * Websites/webkit-perf.appspot.com/main.py:
+        * Websites/webkit-perf.appspot.com/models.py:
+        (PersistentCache.get_cache):
+        (DashboardImage):
+        (DashboardImage.key_name):
+
+2012-02-28  Dave Tu  <dtu@chromium.org>
+
+        Add new GPU builders to flakiness dashboard.
+        https://bugs.webkit.org/show_bug.cgi?id=79839
+
+        Reviewed by Ojan Vafai.
+
+        * Tools/TestResultServer/static-dashboards/builders.js:
+
+2012-02-28  Shinya Kawanaka  <shinyak@chromium.org>
+
+        Element should be able to have multiple shadow roots.
+        https://bugs.webkit.org/show_bug.cgi?id=77931
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2012-02-27  Shinya Kawanaka  <shinyak@chromium.org>
+
+        Element::removeShadowRoot() and setShadowRoot() should be moved into ShadowTree.
+        https://bugs.webkit.org/show_bug.cgi?id=78313
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2012-02-27  Dave Tu  <dtu@chromium.org>
+
+        Update flakiness dashboard unit test.
+        https://bugs.webkit.org/show_bug.cgi?id=79711
+
+        Reviewed by Ojan Vafai.
+
+        * Tools/TestResultServer/static-dashboards/flakiness_dashboard_tests.js:
+
+2012-02-27  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Extract the logic to merge tests from MergeTestsHandler and add unit tests
+        https://bugs.webkit.org/show_bug.cgi?id=79602
+
+        Reviewed by Hajime Morita.
+
+        Extracted Test.merge and TestResult.replace_to_change_test_name out of MergeTestsHandler,
+        and moved MergeTestsHandler into admin_handlers.py where it belongs.
+
+        Added new backend "model-manipulator" to execute tasks to merge tests.
+
+        Also revive the inadvertently removed manual submission form on the admin page.
+
+        * Websites/webkit-perf.appspot.com/admin_handlers.py:
+        (AdminDashboardHandler.get_tests):
+        (MergeTestsHandler):
+        (MergeTestsHandler.post):
+        * Websites/webkit-perf.appspot.com/app.yaml:
+        * Websites/webkit-perf.appspot.com/backends.yaml: Added.
+        * Websites/webkit-perf.appspot.com/css/admin.css:
+        * Websites/webkit-perf.appspot.com/js/admin.js:
+        * Websites/webkit-perf.appspot.com/main.py:
+        * Websites/webkit-perf.appspot.com/merge_tests_handler.py: Removed.
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Test):
+        (Test.merge):
+        (TestResult.replace_to_change_test_name):
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (DataStoreTestsBase.assertOnlyInstance):
+        (DataStoreTestsBase):
+        (DataStoreTestsBase.assertOnlyInstances):
+        (DataStoreTestsBase.assertEqualUnorderedModelList):
+        (DataStoreTestsBase.assertEqualUnorderedList):
+        (_create_build):
+        (TestModelTests.test_merge):
+        (TestResultTests):
+        (TestResultTests.test_get_or_insert_value):
+        (TestResultTests.test_get_or_insert_stat_value):
+        (TestResultTests.test_replace_to_change_test_name):
+        (TestResultTests.test_replace_to_change_test_name_with_stat_value):
+        (TestResultTests.test_replace_to_change_test_name_overrides_conflicting_result):
+
+2012-02-27  ChangSeok Oh  <shivamidow@gmail.com>
+
+        [EFL] Support mutation observers
+        https://bugs.webkit.org/show_bug.cgi?id=79603
+
+        Reviewed by Eric Seidel.
+
+        Added a build-option for the mutation observers feature.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-02-26  Shinya Kawanaka  <shinyak@chromium.org>
+
+        Rename ShadowRootList to ShadowTree.
+        https://bugs.webkit.org/show_bug.cgi?id=79342
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2012-02-26  Chang Wan Hong  <jourmoon@company100.net>
+
+        Update .gitignore for project property files generated by Eclipse.
+        https://bugs.webkit.org/show_bug.cgi?id=79463
+
+        Reviewed by Andreas Kling.
+
+        * .gitignore: Ignore .project and .cproject
+
+2012-02-25  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic build fix after r108917. I need a scrollbar in order see all the tests.
+
+        * Websites/webkit-perf.appspot.com/css/admin.css:
+        (html):
+
+2012-02-25  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic needs a better admin page
+        https://bugs.webkit.org/show_bug.cgi?id=79585
+
+        Reviewed by Sam Weinig.
+        
+        Add admin/ to replace admin/create-models.html and admin/merge-tests.
+
+        Also update MergeTestHandler to accept JSON requests and add "Admin" navigation link on all pages.
+
+        * Websites/webkit-perf.appspot.com/admin_handlers.py: Added.
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (RunsUpdateHandler.post): Fix a regression from r108399.
+        * Websites/webkit-perf.appspot.com/css/admin.css: Added.
+        * Websites/webkit-perf.appspot.com/js/admin.js: Added.
+        * Websites/webkit-perf.appspot.com/js/config.js:
+        * Websites/webkit-perf.appspot.com/main.py:
+        * Websites/webkit-perf.appspot.com/merge_tests.html: Removed.
+        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
+        (MergeTestsHandler):
+        (MergeTestsHandler.post):
+        * Websites/webkit-perf.appspot.com/static: Removed.
+        * Websites/webkit-perf.appspot.com/static/create-models.html: Removed.
+
+2012-02-24  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Increment perf-o-matic version.
+
+        * Websites/webkit-perf.appspot.com/app.yaml:
+
+2012-02-23  Konrad Piascik  <kpiascik@rim.com>
+
+        Upstream BlackBerry Cookie Management Classes
+        https://bugs.webkit.org/show_bug.cgi?id=73654
+
+        Reviewed by Rob Buis.
+
+        Manual test to see in milliseconds how quickly 100 writes followed by 100 reads take.
+        This test is ran twice and the average read and write for each of the 2 runs is shown.
+
+        * ManualTests/cookieSpeedTest.html: Added.
+
+2012-02-23  Dave Tu  <dtu@chromium.org>
+
+        Add Chromium gpu_tests to the flakiness dashboard
+        https://bugs.webkit.org/show_bug.cgi?id=79300
+
+        Reviewed by Ojan Vafai.
+
+        * Tools/TestResultServer/static-dashboards/builders.js:
+        * Tools/TestResultServer/static-dashboards/dashboard_base.js:
+
+2012-02-23  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Add WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS macro
+        https://bugs.webkit.org/show_bug.cgi?id=79371
+
+        Reviewed by Daniel Bates.
+
+        Add a new macro to handle the inclusion of the platform specific *.cmake files.
+        In the future this macro should get expanded to also handle feature specifc
+        files, like the UseJSC.cmake in WebCore we already have.
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2012-02-23  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Add FindDirectX
+        https://bugs.webkit.org/show_bug.cgi?id=79344
+
+        Reviewed by Adam Roben.
+
+        * Source/cmake/FindDirectX.cmake: Added.
+
+2012-02-23  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Add FindQuickTimeSDK
+        https://bugs.webkit.org/show_bug.cgi?id=79345
+
+        Reviewed by Adam Roben.
+
+        * Source/cmake/FindQuickTimeSDK.cmake: Added.
+
+2012-02-22  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Remove FindGDK.cmake and FindGDK-PixBuf.cmake
+        https://bugs.webkit.org/show_bug.cgi?id=79292
+
+        Reviewed by Daniel Bates.
+
+        These files were committed when the EFL port's buildsystem code
+        was upstreamed, but are currently not being used anywhere, as the EFL
+        port has not depended on GDK for a long time.
+
+        * Source/cmake/FindGDK-PixBuf.cmake: Removed.
+        * Source/cmake/FindGDK.cmake: Removed.
+
+2012-02-22  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Clean build is broken when using make -j
+        https://bugs.webkit.org/show_bug.cgi?id=76388
+
+        * GNUmakefile.am: Add new global source list variables.
+
+2012-02-20  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic: Extract logic to generate JSON responses as classes to unit test
+        https://bugs.webkit.org/show_bug.cgi?id=79018
+
+        Rubber-stamped by Adam Barth.
+
+        Extracted DashboardJSONGenerator, ManifestJSONGenerator, and RunsJSONGenerator
+        into json_generators.py from DashboardHandler, ManifestHandler, and RunsHandler
+        and added unit tests for the former three classes.
+
+        Merged the latter three classes into controler.py since they have become too trivial
+        to have their own files.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (ManifestUpdateHandler):
+        (ManifestUpdateHandler.get):
+        (ManifestUpdateHandler.post):
+        (DashboardUpdateHandler):
+        (DashboardUpdateHandler.get):
+        (DashboardUpdateHandler.post):
+        (_get_test_branch_platform_ids):
+        (RunsUpdateHandler):
+        (RunsUpdateHandler.get):
+        (CachedRunsHandler.get):
+        * Websites/webkit-perf.appspot.com/dashboard_handler.py: Removed.
+        * Websites/webkit-perf.appspot.com/json_generators.py: Added.
+        (JSONGeneratorBase):
+        (JSONGeneratorBase.to_json):
+        (DashboardJSONGenerator):
+        (DashboardJSONGenerator.__init__):
+        (DashboardJSONGenerator.value):
+        (ManifestJSONGenerator):
+        (ManifestJSONGenerator.__init__):
+        (ManifestJSONGenerator.value):
+        (RunsJSONGenerator):
+        (RunsJSONGenerator.__init__):
+        (RunsJSONGenerator._generate_runs):
+        (RunsJSONGenerator._entry_from_build_and_result):
+        (RunsJSONGenerator.value):
+        * Websites/webkit-perf.appspot.com/json_generators_unittest.py: Added.
+        (_create_results):
+        (JSONGeneratorBaseTest):
+        (JSONGeneratorBaseTest.test_to_json):
+        (JSONGeneratorBaseTest.test_to_json.AJSONGenerator):
+        (JSONGeneratorBaseTest.test_to_json.AJSONGenerator.value):
+        (DashboardJSONGeneratorTest):
+        (DashboardJSONGeneratorTest.test_value_no_branch):
+        (DashboardJSONGeneratorTest.test_value_no_plaforms):
+        (DashboardJSONGeneratorTest.test_value_single_platform):
+        (DashboardJSONGeneratorTest.test_value_two_platforms):
+        (ManifestJSONGeneratorTest):
+        (ManifestJSONGeneratorTest.test_value_no_branch):
+        (ManifestJSONGeneratorTest.test_value_no_plaforms):
+        (ManifestJSONGeneratorTest._assert_single_test):
+        (ManifestJSONGeneratorTest.test_value_single_platform):
+        (ManifestJSONGeneratorTest.test_value_two_platforms):
+        (ManifestJSONGeneratorTest.test_value_two_tests):
+        (RunsJSONGeneratorTest):
+        (RunsJSONGeneratorTest._create_results):
+        (RunsJSONGeneratorTest.test_generate_runs):
+        (RunsJSONGeneratorTest.test_value_without_results):
+        (RunsJSONGeneratorTest.test_value_with_results):
+        (RunsJSONGeneratorTest._assert_entry):
+        (RunsJSONGeneratorTest.test_run_from_build_and_result):
+        (RunsJSONGeneratorTest.test_run_from_build_and_result.create_build):
+        * Websites/webkit-perf.appspot.com/main.py:
+        * Websites/webkit-perf.appspot.com/manifest_handler.py: Removed.
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Test.update_or_insert.execute):
+        (Test):
+        (TestResult.get_or_insert_from_parsed_json):
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (TestModelTests.test_update_or_insert_to_update):
+        (TestResultTests.test_get_or_insert_stat_value):
+        * Websites/webkit-perf.appspot.com/runs_handler.py: Removed.
+
+2012-02-20  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Turn on requestAnimationFrame for release builds
+        https://bugs.webkit.org/show_bug.cgi?id=79038
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * configure.ac: Turn on requestAnimationFrame by default.
+
+2012-02-20  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Geolocation support should be on by default
+        https://bugs.webkit.org/show_bug.cgi?id=79037
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * configure.ac: Turn on geolocation support in release builds.
+
+2012-02-20  Kihong Kwon  <kihong.kwon@samsung.com>
+
+        Add a new API for the Vibration API(W3C).
+        https://bugs.webkit.org/show_bug.cgi?id=72010
+
+        Reviewed by Hajime Morita.
+
+        Add Implementation for the Vibration API to the WebKit-EFL port.
+        http://dev.w3.org/2009/dap/vibration/
+
+        * Source/cmake/OptionsEfl.cmake: Add ENABLE_VIBRATION feature.
+        * Source/cmakeconfig.h.cmake:
+
+2012-02-19  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Move more logic from handler classes to model classes and add unit tests
+        https://bugs.webkit.org/show_bug.cgi?id=78989
+
+        Reviewed by Hajime Morita.
+
+        Extracted various functions from CreateHandler, ReportHanlder, and RunsHanlder to model classes
+        in order to unit-test them, added DataStoreTestsBase to reduce the code duplication in tests,
+        and added a whole bunch of unit tests in models_unittest.py.
+
+        * Websites/webkit-perf.appspot.com/create_handler.py:
+        (CreateHandler._create_branch):
+        (CreateHandler._create_platform):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (_create_if_possible):
+        (_create_if_possible.execute):
+        (Branch):
+        (Branch.create_if_possible):
+        (Platform):
+        (Platform.create_if_possible):
+        (Build):
+        (Build.get_or_insert_from_log):
+        (Test):
+        (Test.update_or_insert):
+        (Test.update_or_insert.execute):
+        (TestResult):
+        (TestResult.get_or_insert_from_parsed_json):
+        (TestResult.get_or_insert_from_parsed_json._float_or_none):
+        (TestResult.generate_runs):
+        * Websites/webkit-perf.appspot.com/models_unittest.py:
+        (DataStoreTestsBase):
+        (DataStoreTestsBase.assertThereIsNoInstanceOf):
+        (DataStoreTestsBase.assertOnlyInstance):
+        (DataStoreTestsBase.assertEqualUnorderedList):
+        (HelperTests):
+        (HelperTests.test_create_in_transaction_with_numeric_id_holder):
+        (HelperTests.test_failing_in_create_in_transaction_with_numeric_id_holder):
+        (HelperTests.test_raising_in_create_in_transaction_with_numeric_id_holder):
+        (HelperTests.test_delete_model_with_numeric_id_holder):
+        (BranchTests):
+        (BranchTests.test_create_if_possible):
+        (PlatformTests):
+        (PlatformTests.test_create_if_possible):
+        (BuilderTests):
+        (_create_some_builder):
+        (BuildTests):
+        (BuildTests.test_get_or_insert_from_log):
+        (TestModelTests):
+        (TestModelTests.test_update_or_insert):
+        (TestModelTests.test_update_or_insert_to_update):
+        (TestResultTests):
+        (TestResultTests._create_build):
+        (TestResultTests.test_get_or_insert_value):
+        (TestResultTests.test_get_or_insert_stat_value):
+        (TestResultTests._create_results):
+        (TestResultTests.test_generate_runs):
+        (ReportLogTests):
+        (ReportLogTests.test_branch):
+        (ReportLogTests.test_platform):
+        (PersistentCacheTests):
+        (PersistentCacheTests.setUp):
+        (PersistentCacheTests.test_set):
+        * Websites/webkit-perf.appspot.com/report_process_handler.py:
+        (ReportProcessHandler.post):
+        * Websites/webkit-perf.appspot.com/runs_handler.py:
+        (RunsHandler.get):
+        (RunsHandler.post):
+
+2012-02-20  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Fix PLATFORM() define for Windows.
+
+        Define WTF_PLATFORM_WIN instead of WTF_PLATFORM_WINDOWS.
+
+        * Source/cmake/OptionsWindows.cmake:
+
+2012-02-20  Martin Robinson  <mrobinson@igalia.com>
+
+        Fix WebKit2GTK+ for 'make distcheck'.
+
+        Instead of conditionally including WebKit2 GNUmakefiles, always
+        include them and conditionally activate the final targets.
+
+        * GNUmakefile.am:
+
+2012-02-19  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [CMAKE] Check gstreamer minimum required version.
+        https://bugs.webkit.org/show_bug.cgi?id=79005
+
+        Reviewed by Daniel Bates.
+
+        To enable video, Gstreamer version requires to be above 0.10.30.
+        This patch checks whether Gstreamer version is greater than 0.10.30.
+
+        * Source/cmake/FindGStreamer-App.cmake:
+        * Source/cmake/FindGStreamer-Base.cmake:
+        * Source/cmake/FindGStreamer-Interfaces.cmake:
+        * Source/cmake/FindGStreamer-Pbutils.cmake:
+        * Source/cmake/FindGStreamer-Plugins-Base.cmake:
+        * Source/cmake/FindGStreamer-Video.cmake:
+        * Source/cmake/FindGStreamer.cmake:
+
+2012-02-19  Gustavo Noronha Silva  <gns@gnome.org>
+
+        [GTK] Remove unused GSettings stuff
+        https://bugs.webkit.org/show_bug.cgi?id=78995
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: remove gsettings schema file creation.
+
+2012-02-19  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic should show both WebKit and Chromium revisions
+        https://bugs.webkit.org/show_bug.cgi?id=78955
+
+        Reviewed by Andreas Kling.
+
+        Include Chromium revision numbers in runs responses when available.
+
+        * Websites/webkit-perf.appspot.com/js/config.js:
+        (urlForChangeset):
+        (urlForChangesetList):
+        * Websites/webkit-perf.appspot.com/runs_handler.py:
+        (RunsHandler.post):
+
+2012-02-18  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Exclude a couple unused bindings files from the build
+        as they do not compile currently.
+
+        * wscript:
+
+2012-02-17  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic needs model unit tests
+        https://bugs.webkit.org/show_bug.cgi?id=78885
+
+        Reviewed by Adam Barth.
+
+        Added unit tests for models.py.
+
+        Also renamed modelFromNumericId to model_from_numeric_id and moved set_persitent_cache and get_persistent_cache
+        from controller to PersistentCache.set_cache and PersistentCahce.set_cache respectively.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (cache_manifest):
+        (CachedManifestHandler.get):
+        (cache_dashboard):
+        (CachedDashboardHandler.get):
+        (cache_runs):
+        (CachedRunsHandler.get):
+        * Websites/webkit-perf.appspot.com/create_handler.py:
+        (CreateHandler._create_builder):
+        (CreateHandler._create_builder.execute):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (create_in_transaction_with_numeric_id_holder):
+        (model_from_numeric_id):
+        (Builder):
+        (Builder.create):
+        (Builder.update_password):
+        (Builder._hashed_password):
+        (TestResult.key_name):
+        (ReportLog.get_value):
+        (ReportLog._integer_in_payload):
+        (ReportLog):
+        (ReportLog.timestamp):
+        (PersistentCache):
+        (PersistentCache.set_cache):
+        (PersistentCache.set_cache.execute):
+        (PersistentCache.get_cache):
+        * Websites/webkit-perf.appspot.com/models_unittest.py: Added.
+        (HelperTests):
+        (HelperTests.setUp):
+        (HelperTests.tearDown):
+        (HelperTests._assert_there_is_exactly_one_id_holder_and_matches):
+        (HelperTests.test_create_in_transaction_with_numeric_id_holder):
+        (HelperTests.test_create_in_transaction_with_numeric_id_holder.execute):
+        (HelperTests.test_failing_in_create_in_transaction_with_numeric_id_holder):
+        (HelperTests.test_failing_in_create_in_transaction_with_numeric_id_holder.execute):
+        (HelperTests.test_raising_in_create_in_transaction_with_numeric_id_holder):
+        (HelperTests.test_raising_in_create_in_transaction_with_numeric_id_holder.execute):
+        (HelperTests.test_delete_model_with_numeric_id_holder):
+        (HelperTests.test_delete_model_with_numeric_id_holder.execute):
+        (HelperTests.test_model_from_numeric_id):
+        (HelperTests.test_model_from_numeric_id.execute):
+        (BuilderTests):
+        (BuilderTests.setUp):
+        (BuilderTests.tearDown):
+        (BuilderTests.test_create):
+        (BuilderTests.test_update_password):
+        (BuilderTests.test_hashed_password):
+        (BuilderTests.test_authenticate):
+        (ReportLog):
+        (ReportLog.setUp):
+        (ReportLog.tearDown):
+        (ReportLog._create_log_with_payload):
+        (ReportLog.test_parsed_payload):
+        (ReportLog.test_get_value):
+        (ReportLog.test_results):
+        (ReportLog.test_builder):
+        (ReportLog.test_build_number):
+        (ReportLog.test_webkit_revision):
+        (ReportLog.chromium_revision):
+        (PersistentCacheTests):
+        (PersistentCacheTests.setUp):
+        (PersistentCacheTests.tearDown):
+        (PersistentCacheTests._assert_persistent_cache):
+        (PersistentCacheTests.test_set):
+        (PersistentCacheTests.test_get):
+        * Websites/webkit-perf.appspot.com/runs_handler.py:
+        (RunsHandler.post):
+
+2012-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Fix GTK+ build after r108003.
+
+        * Source/autotools/symbols.filter: Add missing symbol.
+
+2012-02-16  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Move event conversion functions from WebCore to WebKit
+        https://bugs.webkit.org/show_bug.cgi?id=78788
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/api.pri: Add new files to the build.
+
+2012-02-14  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Remove unused PkgConfig module import from FindCFLite.cmake.
+        https://bugs.webkit.org/show_bug.cgi?id=78600
+
+        Reviewed by Adam Roben.
+
+        * Source/cmake/FindCFLite.cmake:
+
+2012-02-15  Roland Steiner  <rolandsteiner@chromium.org>
+
+        <style scoped>: Allow <style scoped> as a direct child of a ShadowRoot
+        https://bugs.webkit.org/show_bug.cgi?id=77853
+
+        numberOfScopedHTMLStyleChildren got moved from Element into Node.
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter:
+
+2012-02-13  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Merge WebKitEfl.cmake into FindEFL.cmake.
+        https://bugs.webkit.org/show_bug.cgi?id=78566
+
+        Reviewed by Daniel Bates.
+
+        * Source/cmake/FindEFL.cmake: Move the code to find edje_cc here from
+        WebKitEfl.cmake.
+        * Source/cmake/WebKitEfl.cmake: Removed.
+
+2012-02-14  Shinya Kawanaka  <shinyak@google.com>
+
+        Use youngestShadowRoot and oldestShadowRoot instead of Element::shadowRoot().
+        https://bugs.webkit.org/show_bug.cgi?id=78455
+
+        Reviewed by Hajime Morita.
+
+        Exports necessary symbols.
+
+        * Source/autotools/symbols.filter:
+
+2012-02-13  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Yet another perf-o-matic build fix. It turns out that a task of the same name can't be
+        queued for days after the first task is completed. So don't use it. Updating persistent
+        caches more often than necessary is better than never updating them.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (schedule_manifest_update):
+        (schedule_dashboard_update):
+        (schedule_runs_update):
+
+2012-02-13  ChangSeok Oh  <shivamidow@gmail.com>
+
+        [GTK] Revise configuration for MHTML
+        https://bugs.webkit.org/show_bug.cgi?id=78364
+
+        Reviewed by Gustavo Noronha Silva.
+
+        Added some lines to show checking messages, whether mhtml is enabled or not
+        during configuration and the configuration result for mhtml.
+        MHTML is a web page archive format used to combine resources
+        that are typically represented by external links (such as images, Flash animations,
+        Java applets, audio files) together with HTML code into a single file.
+        http://en.wikipedia.org/wiki/MHTML
+
+        * configure.ac:
+
+2012-02-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [EFL] Drop support for the Curl network backend.
+        https://bugs.webkit.org/show_bug.cgi?id=77874
+
+        Reviewed by Eric Seidel.
+
+        Nobody seems to be maintaining the Curl backend in WebCore, the
+        EFL port developers all seem to be using the Soup backend and the
+        port itself has many features which are only implemented for the
+        latter.
+
+        * Source/cmake/OptionsEfl.cmake: Remove network backend selection
+        checks and unconditionally require Glib and Libsoup, bump the
+        required LibSoup version to the same one the GTK+ port looks for,
+        since we share the same network backend.
+
+2012-02-12  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Another perf-o-matic build fix.
+
+        * Websites/webkit-perf.appspot.com/report_process_handler.py:
+        (ReportProcessHandler._create_build_if_possible):
+
+2012-02-12  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic build fix.
+
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post):
+
+2012-02-10  Ryosuke Niwa  <rniwa@webkit.org>
+
+        REGRESSION: Perf-o-matic adds duplicated test results
+        https://bugs.webkit.org/show_bug.cgi?id=78373
+
+        Reviewed by Hajime Morita.
+
+        Add TestResult inside a transaction. We use high replication databsae but this should prevent
+        the duplication in the most of the time.
+
+        Also fixed random bugs in Controller and ReportHandler.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (get_persistent_cache):
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post):
+        * Websites/webkit-perf.appspot.com/report_process_handler.py:
+        (ReportProcessHandler.post):
+        (ReportProcessHandler._add_test_if_needed):
+        (ReportProcessHandler):
+        (ReportProcessHandler._add_test_result_if_needed):
+        (ReportProcessHandler._add_test_result_if_needed._float_or_none):
+        (ReportProcessHandler._add_test_result_if_needed.execute):
+
+2012-02-12  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Fix GTK+ build after r107454.
+
+        * configure.ac: Disable Mutation observers build on GTK+ until it
+        can actually build.
+
+2012-02-10  Adam Klein  <adamk@chromium.org>
+
+        Enable MUTATION_OBSERVERS by default on all platforms
+        https://bugs.webkit.org/show_bug.cgi?id=78196
+
+        Reviewed by Ojan Vafai.
+
+        * configure.ac:
+
+2012-02-10  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic build fix after r107386.
+
+        * Websites/webkit-perf.appspot.com/app.yaml:
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (schedule_manifest_update):
+        (schedule_dashboard_update):
+        (schedule_runs_update):
+        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
+        (MergeTestsHandler.get):
+        * Websites/webkit-perf.appspot.com/report_logs_handler.py:
+        (ReportLogsHandler.get):
+        (ReportLogsHandler.post):
+
+2012-02-10  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic should process reports in background
+        https://bugs.webkit.org/show_bug.cgi?id=78309
+
+        Reviewed by Hajime Morita.
+
+        Split the logic to create Build, Test, and TestResult objects from ReportHandler into ReportProcessHandler.
+        ReportHandler now merely creates ReportLog and schedules a task to process it.
+
+        Also added ReportLogHandler to manage stale ReportLogs.
+
+        * Websites/webkit-perf.appspot.com/app.yaml:
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (schedule_manifest_update):
+        (schedule_dashboard_update):
+        (schedule_runs_update):
+        (CachedRunsHandler.get):
+        (schedule_report_process):
+        * Websites/webkit-perf.appspot.com/main.py:
+        * Websites/webkit-perf.appspot.com/merge_tests.html: Renamed from Websites/webkit-perf.appspot.com/merge_tests.yaml.
+        * Websites/webkit-perf.appspot.com/models.py:
+        (ReportLog):
+        (ReportLog._parsed_payload):
+        (ReportLog.get_value):
+        (ReportLog.results):
+        (ReportLog.builder):
+        (ReportLog.branch):
+        (ReportLog.platform):
+        (ReportLog.build_number):
+        (ReportLog.webkit_revision):
+        (ReportLog.chromium_revision):
+        (ReportLog._model_by_key_name_in_payload):
+        (ReportLog._integer_in_payload):
+        (ReportLog.timestamp):
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post):
+        (ReportHandler._output):
+        (ReportHandler._results_are_valid):
+        (ReportHandler._results_are_valid._is_float_convertible):
+        (ReportHandler):
+        * Websites/webkit-perf.appspot.com/report_logs.html: Added.
+        * Websites/webkit-perf.appspot.com/report_logs_handler.py: Added.
+        (ReportLogsHandler):
+        (ReportLogsHandler.get):
+        (ReportLogsHandler.post):
+        (ReportLogsHandler._error):
+        * Websites/webkit-perf.appspot.com/report_process_handler.py: Copied from Websites/webkit-perf.appspot.com/report_handler.py.
+        (ReportProcessHandler):
+        (ReportProcessHandler.post):
+        (ReportProcessHandler._create_build_if_possible):
+        (ReportProcessHandler._create_build_if_possible.execute):
+        (ReportProcessHandler._add_test_if_needed):
+
+2012-02-09  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic shouldn't rely on memcache to store cached JSON responses
+        https://bugs.webkit.org/show_bug.cgi?id=78306
+
+        Reviewed by Adam Barth.
+
+        Added PersistentCache model that stores the generated JSON responses.
+
+        * Websites/webkit-perf.appspot.com/controller.py:
+        (set_persistent_cache):
+        (set_persistent_cache.execute):
+        (get_persistent_cache):
+        (cache_manifest):
+        (CachedManifestHandler.get):
+        (cache_dashboard):
+        (CachedDashboardHandler.get):
+        (cache_runs):
+        (CachedRunsHandler.get):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (TestResult):
+        (ReportLog):
+        (PersistentCache):
+
+2012-02-09  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic should update memcache in taskqueue
+        https://bugs.webkit.org/show_bug.cgi?id=78209
+
+        Reviewed by Adam Barth.
+
+        Update dashboard, manifest, and runs memcaches in taskqueue.
+        Also centralized the management of caches in controller.py.
+
+        * Websites/webkit-perf.appspot.com/app.yaml:
+        * Websites/webkit-perf.appspot.com/controller.py: Added.
+        (cache_manifest):
+        (schedule_manifest_update):
+        (CachedManifestHandler):
+        (CachedManifestHandler.get):
+        (cache_dashboard):
+        (schedule_dashboard_update):
+        (CachedDashboardHandler):
+        (CachedDashboardHandler.get):
+        (cache_runs):
+        (schedule_runs_update):
+        (CachedRunsHandler):
+        (CachedRunsHandler.get):
+        * Websites/webkit-perf.appspot.com/create_handler.py:
+        (CreateHandler.post):
+        * Websites/webkit-perf.appspot.com/dashboard_handler.py:
+        (DashboardHandler.post):
+        * Websites/webkit-perf.appspot.com/main.py:
+        * Websites/webkit-perf.appspot.com/manifest_handler.py:
+        (ManifestHandler.post):
+        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
+        (MergeTestsHandler.post):
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post):
+        * Websites/webkit-perf.appspot.com/runs_handler.py:
+        (RunsHandler.post):
+
+2012-02-09  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Add WebKitWebView::mouse-target-changed signal to WebKit2 GTK+ API
+        https://bugs.webkit.org/show_bug.cgi?id=78097
+
+        Reviewed by Martin Robinson.
+
+        * Source/autotools/symbols.filter: Add freeOwnedGPtr<_GdkEvent>
+        symbol to be able to use GOwnPtr<GdkEvent> in WebKit2 GTK+ unit
+        tests.
+
+2012-02-09  Kent Tamura  <tkent@chromium.org>
+
+        Do not localize numbers in scientific notation
+        https://bugs.webkit.org/show_bug.cgi?id=78208
+
+        Reviewed by Hajime Morita.
+
+        * ManualTests/input-number-localization.html: Updated for scientific notation.
+
+2012-02-09  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [CMAKE] Change lowercase variable with uppercase's.
+        https://bugs.webkit.org/show_bug.cgi?id=78198
+
+        Reviewed by Daniel Bates.
+
+        CMake variable is only written by uppercase.
+
+        * CMakeLists.txt:
+
+2012-02-07  MORITA Hajime  <morrita@google.com>
+
+        Replacement text should be available from the marker.
+        https://bugs.webkit.org/show_bug.cgi?id=77934
+
+        Reviewed by Kent Tamura.
+
+        * Source/autotools/symbols.filter: Added an exporting symbol.
+
+2012-02-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [CMAKE] Use *bin* and *lib* directories for executable and libraries.
+        https://bugs.webkit.org/show_bug.cgi?id=77928
+
+        Reviewed by Daniel Bates.
+
+        CMake has used *Programs* directory for executable. In addition, shared libraries are being
+        built in source directory. It is better to set common places in order to maintain executable
+        and libraries. *bin* is for executable and *lib* is for library.
+
+        * CMakeLists.txt: Set library output path.
+        * Source/cmake/WebKitFS.cmake: Remove *Programs* creation.
+
+2012-02-07  Priit Laes  <plaes@plaes.org>
+
+        Get rid of Source/autotools/webkit.m4
+        https://bugs.webkit.org/show_bug.cgi?id=77833
+
+        Reviewed by Martin Robinson.
+
+        Move checks from webkit.m4 to configure.ac and modernize macros:
+          . Check for visibility flags after CXX has been defined
+          . Use PKG_PROG_PKG_CONFIG for pkg-config lookup
+          . Drop unused LIBFFTW_REQUIRED_VERSION
+          . Update ICU libs for mingw (bug 77837).
+          . Require Pango 1.21.0 (as per unicode backend)
+          . Bump minimum glib version due to g_thread_init changes
+
+        * Source/autotools/webkit.m4: Removed.
+        * configure.ac:
+
+2012-02-07  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Dashboard on perf-o-matic should be sorted
+        https://bugs.webkit.org/show_bug.cgi?id=77924
+
+        Reviewed by Tony Chang.
+
+        Sort tests in the frontend using the fact ES5 keeps the property order in the insertion order.
+
+        * Websites/webkit-perf.appspot.com/js/config.js:
+        (fetchDashboardManifest):
+
+2012-02-07  Frederik Gladhorn  <frederik.gladhorn@nokia.com>
+
+        Update .gitignore for Qt Creator/KDevelop.
+        https://bugs.webkit.org/show_bug.cgi?id=77984
+
+        Reviewed by Simon Hausmann.
+
+        * .gitignore: Ignore temp files created by Qt Creator and KDevelop.
+
+2012-02-07  Priit Laes  <plaes@plaes.org>
+
+        [GTK] Broken "HTML5 <scoped style>" detection
+        https://bugs.webkit.org/show_bug.cgi?id=77979
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * configure.ac: Fix wrong variable for HTML5 <style scoped> detection
+
+2012-02-06  Shinya Kawanaka  <shinyak@google.com>
+
+        Remove Element::ensureShadowRoot export.
+        https://bugs.webkit.org/show_bug.cgi?id=77932
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2012-02-06  Martin Robinson  <mrobinson@igalia.com> and Nayan Kumar K  <nayankk@motorola.com>
+
+        [GTK] Add TextureMapperGL implementation
+        https://bugs.webkit.org/show_bug.cgi?id=75308
+
+        Reviewed by Alejandro G. Castro.
+
+        * GNUmakefile.am: TextureMapperGL implies USE(TEXTURE_MAPPER)
+        * configure.ac: Only allow enabling the GL version of TextureMapper on X11.
+
+2012-02-06  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf-o-matic should show min/max/stdev on graphs
+        https://bugs.webkit.org/show_bug.cgi?id=77702
+
+        Reviewed by Andreas Kling.
+
+        Include min/max/stdev in test runs when available to be shown on the perf-o-matic.
+
+        Also merge a change to config.js and increment the version number by 1 (unreviewed).
+
+        * Websites/webkit-perf.appspot.com/app.yaml:
+        * Websites/webkit-perf.appspot.com/js/config.js:
+        * Websites/webkit-perf.appspot.com/runs_handler.py:
+        (RunsHandler.get):
+
+2012-02-06  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Update NEWS and configure.ac for 1.7.5 release
+        https://bugs.webkit.org/show_bug.cgi?id=77859
+
+        Reviewed by Philippe Normand.
+
+        * configure.ac: Bumped version number.
+
+2012-02-05  ChangSeok Oh  <shivamidow@gmail.com>
+
+        [EFL] Enable WebGL with glx backend
+        https://bugs.webkit.org/show_bug.cgi?id=77308
+
+        Reviewed by Martin Robinson.
+
+        Enabled WebGL feature for EFL port. The way is very similar to the one of GTK port.
+
+        * Source/cmake/OptionsEfl.cmake: Added feature option for WebGL.
+
+2012-02-05  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [CMAKE] Support javascriptcore test for EFL port. 
+        https://bugs.webkit.org/show_bug.cgi?id=77425
+
+        Reviewed by Daniel Bates.
+
+        Efl and WinCE as well as Blackberry port are now using Cmake as its build system
+        and they are share the make file to create jsc excutable. In order to run
+        "run-javascriptcore-tests", EFL port needs to change jsc installation configuration
+        with executable output directory(e.g. Programs). So, this patch change jsc installation
+        configuration only for EFL port.
+
+        * Source/cmake/OptionsEfl.cmake: Change *jsc_efl* name with *jsc*.
+
+2012-02-05  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [CMAKE] Do not build Tools when building jsc only. 
+        https://bugs.webkit.org/show_bug.cgi?id=77826
+
+        Reviewed by Daniel Bates.
+
+        Do not build Tools when jsc is only built. Build breaks occur because
+        Tools is built together when building jsc.
+
+        * CMakeLists.txt: Build Tools directory when ENABLE_TOOLS is on.
+
+2012-02-04  Philip Rogers  <pdr@google.com>
+
+        Fix bug in svg-link-hover-use.svg
+        https://bugs.webkit.org/show_bug.cgi?id=77768
+
+        Reviewed by Eric Seidel.
+
+        * ManualTests/svg-link-hover-use.svg:
+
+2012-02-04  Kalev Lember  <kalevlember@gmail.com>
+
+        [GTK] Use the wide character version of win32 API by default
+        https://bugs.webkit.org/show_bug.cgi?id=77809
+
+        Reviewed by Martin Robinson.
+
+        Certain win32-specific files (like PluginDatabaseWin.cpp) make the
+        assumption that the wide character version of win32 API is the default.
+        Define _UNICODE and UNICODE to do this, similar to what other win32
+        ports are doing.
+
+        * GNUmakefile.am:
+
+2012-02-03  Kalev Lember  <kalevlember@gmail.com>
+
+        [GTK] configure: Print out the -Wno-c++0x-compat test result
+        https://bugs.webkit.org/show_bug.cgi?id=77757
+
+        Reviewed by Martin Robinson.
+
+        The check whether -Wno-c++0x-compat flag is needed didn't print out
+        the test result (and newline), which caused the following test to be
+        displayed on the same line.
+
+        checking if we have to disable C++0x compat warnings for GCC >= 4.6.0... checking pthread.h usability... yes
+
+        * configure.ac:
+
+2012-02-03  Ryosuke Niwa  <rniwa@webkit.org>
+
+        perf-o-matic should store chromium svn revision
+        https://bugs.webkit.org/show_bug.cgi?id=77725
+
+        Reviewed by Dirk Pranke.
+
+        Store both WebKit and Chromium revisions when both are reported.
+
+        * Websites/webkit-perf.appspot.com/models.py:
+        (Build):
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post):
+        (ReportHandler._create_build_if_possible):
+        (ReportHandler._create_build_if_possible.execute):
+        * Websites/webkit-perf.appspot.com/static/manual-submit.html:
+
+2012-02-03  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Replace GNU linker script for exports with export macros in WTF/JSC
+        https://bugs.webkit.org/show_bug.cgi?id=77723
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri: Remove use of GNU linker script on Linux.
+        * Source/qtwebkit-export.map: Removed.
+
+2012-02-03  Shinya Kawanaka  <shinyak@google.com>
+
+        Stop calling Element::ensureShadowRoot in Internals.
+        https://bugs.webkit.org/show_bug.cgi?id=77612
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2012-02-02  Mark Rowe  <mrowe@apple.com>
+
+        <http://webkit.org/b/77717> Makefile should provide control over output verbosity
+
+        Allow the filtering of the output of our Makefile to be configured via a user default
+        and overriden via a command-line argument to make.
+
+        The Makefile takes the verbosity from BuildTranscriptVerbosity default in the
+        org.webkit.BuildConfiguration domain. The supported values are "default", "quiet"
+        and "noisy". "default" maintains the existing behavior of only filtering out
+        the setenv lines from Xcode's shell script build phases. "quiet" filters all output
+        through filter-build-webkit. "noisy" provides unfiltered output. The verbosity can
+        be overriden for a single invocation of make by specifying the VERBOSITY variable
+        on the make command line.
+
+        To always get full output:
+        defaults write org.webkit.BuildConfiguration BuildTranscriptVerbosity noisy
+
+        To always get filtered ouptut:
+        defaults write org.webkit.BuildConfiguration BuildTranscriptVerbosity quiet
+
+        To get full output for a single build:
+        make VERBOSITY=noisy
+
+        Reviewed by Dan Bernstein.
+
+        * Makefile.shared:
+
+2012-02-02  Rakesh KN  <rakesh.kn@motorola.com>
+
+        hidden attribute on <input type=file /> suppresses the file selection dialog
+        https://bugs.webkit.org/show_bug.cgi?id=58208
+
+        Reviewed by Ryosuke Niwa.
+
+        * ManualTests/input-file-hidden-open-dialog-on-click.html: Added.
+        Adding manual test as the file dialog opens only in User gesture.
+
+2012-02-01  Philippe Normand  <pnormand@igalia.com>
+
+        [GStreamer] FFTFrame implementation
+        https://bugs.webkit.org/show_bug.cgi?id=73545
+
+        Reviewed by Chris Rogers.
+
+        * configure.ac: Enable the WebAudio option again and remove
+        libfftw checks.
+
+2012-01-31  Ryosuke Niwa  <rniwa@webkit.org>
+
+        webkit-perf.appspot.com should accept test results without medians
+        https://bugs.webkit.org/show_bug.cgi?id=77513
+
+        Reviewed by Hajime Morita.
+
+        Don't store 0s when values are not in JSON.
+
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post._float_or_none):
+        (ReportHandler.post):
+
+2012-01-31  Kenneth Rohde Christiansen  <kenneth@webkit.org>
+
+        Tap highlighting: Support better outlines for multiline inlines
+        https://bugs.webkit.org/show_bug.cgi?id=77428
+
+        Reviewed by Simon Hausmann.
+
+        Update the test to use a transform.
+
+        * ManualTests/qt/tap-highlighting-inlines.html:
+
+2012-01-31  Nayan Kumar K  <nayankk@motorola.com>
+
+        [GTK] Remove V8 compilation option.
+        https://bugs.webkit.org/show_bug.cgi?id=77405
+
+        Reviewed by Philippe Normand.
+
+        Revert the changes introduced as part of bug 69469
+        to provide an option to compile V8 as JavaScript engine.
+
+        * GNUmakefile.am: Remove defining USE_JSC macro.
+        * configure.ac: Remove --with-jsengine option.
+
+2012-01-25  Philippe Normand  <pnormand@igalia.com>
+
+        [GStreamer] 0.11 build support
+        https://bugs.webkit.org/show_bug.cgi?id=77085
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: New --with-gstreamer option, defaulting to 0.10.
+
+2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Build fix after r106321.
+
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        * Websites/webkit-perf.appspot.com/manifest_handler.py:
+        (ManifestHandler.get):
+
+2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Python code in webkit-perf.appspot.com uses camelCase
+        https://bugs.webkit.org/show_bug.cgi?id=77392
+
+        Reviewed by Adam Barth.
+
+        Use PEP8 style naming conventions instead of camelCase.
+
+        * Websites/webkit-perf.appspot.com/create_handler.py:
+        (CreateHandler.post):
+        (CreateHandler._create_builder):
+        (CreateHandler._create_branch):
+        (CreateHandler._create_platform):
+        * Websites/webkit-perf.appspot.com/dashboard_handler.py:
+        (DashboardHandler.get):
+        * Websites/webkit-perf.appspot.com/manifest_handler.py:
+        (ManifestHandler.get):
+        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
+        (MergeTestsHandler.post):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (create_in_transaction_with_numeric_id_holder):
+        (delete_model_with_numeric_id_holder):
+        (modelFromNumericId):
+        (Builder.authenticate):
+        (Builder.hashed_password):
+        (Test.cache_key):
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post):
+        (ReportHandler._model_by_key_name_in_body_or_error):
+        (ReportHandler._integer_in_body):
+        (ReportHandler._timestamp_in_body):
+        (ReportHandler.bypass_authentication):
+        (ReportHandler._results_are_valid):
+        (ReportHandler._results_are_valid._is_float_convertible):
+        (ReportHandler._create_build_if_possible):
+        (ReportHandler._create_build_if_possible.execute):
+        (ReportHandler._add_test_if_needed):
+        (ReportHandler._add_test_if_needed.execute):
+        (ReportHandler):
+        (AdminReportHandler.bypass_authentication):
+        * Websites/webkit-perf.appspot.com/runs_handler.py:
+        (RunsHandler.get):
+
+2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Enable memcache on webkit-perf.appspot.com
+        https://bugs.webkit.org/show_bug.cgi?id=77378
+
+        Reviewed by Adam Barth.
+
+        Eanble memcache on dashboard, manifest, and runs handlers. Clear appropriate caches when new runs are reported,
+        or new models are created. We flush all caches when tests are merged since it's hard to figure out dependencies
+        in that case. Luckily, we merge tests only occassionally and manually (or hope so) so this shouldn't be an issue.
+
+        * Websites/webkit-perf.appspot.com/create_handler.py:
+        (CreateHandler.post):
+        * Websites/webkit-perf.appspot.com/dashboard_handler.py:
+        (DashboardHandler.get):
+        * Websites/webkit-perf.appspot.com/manifest_handler.py:
+        (ManifestHandler.get):
+        * Websites/webkit-perf.appspot.com/merge_tests_handler.py:
+        (MergeTestsHandler.post):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (createInTransactionWithNumericIdHolder):
+        (Test):
+        (Test.cacheKey):
+        * Websites/webkit-perf.appspot.com/report_handler.py:
+        (ReportHandler.post):
+        (ReportHandler._addTestIfNeeded):
+        * Websites/webkit-perf.appspot.com/runs_handler.py:
+        (RunsHandler.get):
+
+2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>
+
+        webkit-perf.appspot.com should have an ability to merge tests
+        https://bugs.webkit.org/show_bug.cgi?id=77250
+
+        Reviewed by Adam Barth.
+
+        Added admin/merge-tests. This page allows administrators to easily merge test objects.
+
+        Also add the forgotten title.png and rename api/create to admin/create since we don't allow
+        non-admins to create new models anyway.
+
+        * Websites/webkit-perf.appspot.com/app.yaml:
+        * Websites/webkit-perf.appspot.com/css: Added.
+        * Websites/webkit-perf.appspot.com/css/title.png: Added.
+        * Websites/webkit-perf.appspot.com/main.py:
+        * Websites/webkit-perf.appspot.com/merge_tests.yaml: Added.
+        * Websites/webkit-perf.appspot.com/merge_tests_handler.py: Added.
+        (MergeTestHandler):
+        (MergeTestHandler.get):
+        (MergeTestHandler.post):
+        * Websites/webkit-perf.appspot.com/models.py:
+        (deleteModelWithNumericIdHolder):
+        * Websites/webkit-perf.appspot.com/static/create-models.html:
+
+2012-01-30  Kenneth Rohde Christiansen  <kenneth@webkit.org>
+
+        Add manual tests for tap highlighting
+
+        Rubberstamped by Simon Hausmann.
+
+        * ManualTests/qt/tap-highlighting-colors.html: Added.
+        * ManualTests/qt/tap-highlighting-images.html: Added.
+        * ManualTests/qt/tap-highlighting-inlines.html: Added.
+
+2012-01-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
+
+        Manual test of number of resize events emitted during page generation.
+        https://bugs.webkit.org/show_bug.cgi?id=77212
+
+        Is needed to test if too many resize events are send when using fixed
+        layout, and needs to be a manual test because the test framework does
+        not currently support testing fixed layout.
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * ManualTests/resize-events.html: Added.
+
+2012-01-29  Zoltan Herczeg  <zherczeg@webkit.org>
+
+        Custom written CSS lexer
+        https://bugs.webkit.org/show_bug.cgi?id=70107
+
+        Reviewed by Antti Koivisto and Oliver Hunt.
+
+        Remove tokenizer.cpp from intermediate sources.
+
+        * wscript:
+
+2012-01-27  Fady Samuel  <fsamuel@chromium.org>
+
+        Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting
+        https://bugs.webkit.org/show_bug.cgi?id=76459
+
+        Reviewed by Darin Fisher.
+
+        * Source/autotools/symbols.filter:
+
+2012-01-26  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Add basic printing support to WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=76172
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * configure.ac: Check whether GTK+ UNIX printing is available.
+
+2012-01-27  ChangSeok Oh  <shivamidow@gmail.com>
+
+        [EFL] SVG_FONT is not disabled when SVG is disabled.
+        https://bugs.webkit.org/show_bug.cgi?id=77174
+
+        Reviewed by Eric Seidel.
+
+        SVG_FONTS should be disabled when SVG is disabled. Or else it causes build-break.
+        Relocated checking ENABLE_GLIB_SUPPORT & ENABLE_VIDEO to avoid duplication.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-01-26  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed. Build fix, don't build some sources
+        which appear to no longer be needed.
+
+        * wscript:
+
+2012-01-24  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Port Mozilla's Graph Server
+        https://bugs.webkit.org/show_bug.cgi?id=76312
+
+        Reviewed by Adam Barth.
+
+        Add the app engine backend for the Mozilla's graph server used on perf-webkit.appspot.com.
+
+        To deploy webkit-perf.appspot.com, you also need to pull index.html, embed.html, graph.html, jq,
+        js (except config.js), and css (except title.png) from https://github.com/mozilla/graphs.
+
+        * Websites/perf-webkit.appspot.com: Added.
+        * Websites/perf-webkit.appspot.com/app.yaml: Added.
+        * Websites/perf-webkit.appspot.com/create_handler.py: Added.
+        (CreateHandler):
+        (CreateHandler.post):
+        (CreateHandler._createBuilder):
+        (CreateHandler._createBuilder.execute):
+        (CreateHandler._createBranch):
+        (CreateHandler._createBranch.execute):
+        (CreateHandler._createPlatform):
+        (CreateHandler._createPlatform.execute):
+        * Websites/perf-webkit.appspot.com/dashboard_handler.py: Added.
+        (DashboardHandler):
+        (DashboardHandler.get):
+        * Websites/perf-webkit.appspot.com/index.yaml: Added.
+        * Websites/perf-webkit.appspot.com/main.py: Added.
+        (main):
+        * Websites/perf-webkit.appspot.com/manifest_handler.py: Added.
+        (ManifestHandler):
+        (ManifestHandler.get):
+        * Websites/perf-webkit.appspot.com/models.py: Added.
+        (NumericIdHolder):
+        (NumericIdHolder.whose):
+        (createInTransactionWithNumericIdHolder):
+        (modelFromNumericId):
+        (Branch):
+        (Platform):
+        (Builder):
+        (Builder.authenticate):
+        (Builder.hashedPassword):
+        (Build):
+        (Test):
+        (TestResult):
+        (ReportLog):
+        * Websites/perf-webkit.appspot.com/report_handler.py: Added.
+        (ReportHandler):
+        (ReportHandler.post):
+        (ReportHandler._modelByKeyNameInBodyOrError):
+        (ReportHandler._integerInBody):
+        (ReportHandler._timestampInBody):
+        (ReportHandler._output):
+        (ReportHandler._resultsAreValid):
+        (ReportHandler._createBuildIfPossible):
+        (ReportHandler._createBuildIfPossible.execute):
+        (ReportHandler._addTestIfNeeded):
+        (ReportHandler._addTestIfNeeded.execute):
+        * Websites/perf-webkit.appspot.com/runs_handler.py: Added.
+        (RunsHandler):
+        (RunsHandler.get):
+        * Websites/perf-webkit.appspot.com/static: Added.
+        * Websites/perf-webkit.appspot.com/static/create-models.html: Added.
+        * Websites/perf-webkit.appspot.com/static/manual-submit.html: Added.
+
+2012-01-25  Hajime Morita  <morrita@google.com>>
+
+        ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom
+        https://bugs.webkit.org/show_bug.cgi?id=76863
+
+        Reviewed by Dimitri Glazkov.
+
+        Added a feature flag.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * configure.ac:
+
+2012-01-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
+
+        [Qt] Implement tap feedback respecting -webkit-tap-highlight-color
+        https://bugs.webkit.org/show_bug.cgi?id=76914
+
+        Reviewed by Simon Hausmann.
+
+        Add a manual test.
+
+        * ManualTests/qt/tap-highlighting.html: Added.
+
+2012-01-25  Roland Steiner  <rolandsteiner@chromium.org>
+
+        <style scoped>: Implement registering of <style scoped> with the scoping element
+        https://bugs.webkit.org/show_bug.cgi?id=67790
+
+        windows.internals updates
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter:
+
+2012-01-24  Mark Rowe  <mrowe@apple.com>
+
+        Death to JavaScriptGlue.
+
+        Rubber-stamped by Geoffrey Garen.
+
+        * Source/JavaScriptGlue: Removed.
+        * Source/Makefile: Stop building JavaScriptGlue.
+
+2012-01-24  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        Some qmake build files must include Qt5's "quick" module.
+        https://bugs.webkit.org/show_bug.cgi?id=76671
+
+        Unreviewed build fix.
+
+        * Source/api.pri:
+
+2012-01-21  Priit Laes  <plaes@plaes.org>
+
+        [GTK][PATCH] Enable MathML support by default
+        https://bugs.webkit.org/show_bug.cgi?id=76790
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Enable MathML by default.
+
+2012-01-20  Marc-Andre Decoste  <mad@chromium.org>
+
+        Add proper offset to position right click to simulate a context menu invocation.
+        https://bugs.webkit.org/show_bug.cgi?id=76421
+
+        Reviewed by Ojan Vafai.
+
+        * ManualTests/win/contextmenu-key3.html: Added.
+
+2012-01-20  Kinuko Yasuda  <kinuko@chromium.org>
+
+        Unreviewed; Windows buildbot update failure fix.
+
+        * ../ManualTests/data-transfer-items-file-dragout.html: Removed the notion of test:lorem-text.html.
+        * ../ManualTests/resources/test:lorem-text.html: Removed as this doesn't work on Windows.
+
+2012-01-20  Kinuko Yasuda  <kinuko@chromium.org>
+
+        Add DataTransferItems support for drag-and-drop'ed files and texts
+        https://bugs.webkit.org/show_bug.cgi?id=76367
+
+        Reviewed by Tony Chang.
+
+        * ManualTests/data-transfer-items-file-dragout.html: Added.
+        * ManualTests/test:lorem-text.html: Added.
+
+2012-01-20  Mario Sanchez Prada  <msanchez@igalia.com>
+
+        [GTK] Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs
+        https://bugs.webkit.org/show_bug.cgi?id=72589
+
+        Reviewed by Martin Robinson.
+
+        New optional dependency for WK2's accessibility unit test: AT-SPI2.
+
+        * configure.ac: Check for AT-SPI2 when building with WK2 support.
+
+2012-01-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
+
+        [Qt] Public API watch dog auto test.
+        https://bugs.webkit.org/show_bug.cgi?id=73922
+
+        Reviewed by Simon Hausmann.
+
+        This test aims to prevent unintended/unapproved
+        modifications to the public QML API.
+
+        * Source/tests.pri:
+
+2012-01-19  Gustavo Noronha Silva  <gns@gnome.org>
+
+        Rubber-stamped by Martin Robinson.
+
+        * Source/autotools/symbols.filter: try to fix the 32 bits release
+        bot by also adding the symbol it generates
+
+2012-01-19  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Make build-webkit always do safe incremental builds after update-webkit
+
+        When building against Qt5 with GCC we would just run 'make' in the build dir,
+        and rely on the dependency files output by GCC (-MD) to handle dependency
+        tracking, but that fails for special-cases like adding a Q_OBJECT macro
+        to a header.
+
+        To guarantee that an incrmental build will work, we have to run 'make qmake',
+        which we now do on every build-webkit that's followed by a successful run
+        of update-webkit. The reasoning is that update-webkit can result in such
+        potential corner-cases being applied, and since we can't know for sure
+        unless we inspect the diff and account for all the corner cases we assume
+        the worst and always run 'make qmake'.
+
+        After a succesful run of build-webkit we proceed to do just 'make' for any
+        subsequent runs, since we assume that the developer knows what kind of
+        changes he/she is doing, and when a 'make qmake' is needed.
+
+        Reviewed by Simon Hausmann.
+
+        * .gitignore:
+
+2012-01-18  Dirk Pranke  <dpranke@chromium.org>
+
+        [chromium] move Tools.gyp, switch build-webkit --chromium to All.gyp
+        https://bugs.webkit.org/show_bug.cgi?id=76505
+
+        Reviewed by Tony Chang.
+
+        Update with newly-generated files.
+
+        * .gitignore:
+
+2012-01-18  Eric Carlson  <eric.carlson@apple.com>
+
+        Provide access to user's list of preferred languages
+        https://bugs.webkit.org/show_bug.cgi?id=76138
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Source/autotools/symbols.filter: List the new functions.
+
+2012-01-18  Luciano Wolf  <luciano.wolf@openbossa.org>
+
+        [Qt][WK2] Broken build with undefined reference to shm_open and shm_unlink
+        https://bugs.webkit.org/show_bug.cgi?id=76538
+
+        Reviewed by Tor Arne Vestbø.
+
+        The -lrt parameter was coming before -lWebKit2 during linkage.
+
+        Moved rt lib inclusion from Source/api.pri to WebKit2.pri as it should be aware
+        of its own dependencies instead of letting WebKit guess about. Letting
+        it on api.pri can lead to a wrong parameter's order during linker phase.
+        Ubuntu 11.10 was giving errors about SharedMemory (shm_open and
+        shm_unlink undefined symbols).
+
+        * Source/api.pri:
+
+2012-01-18  Balazs Kelemen  <kbalazs@webkit.org>
+
+        [Qt] Consolidate layout test crash logging
+        https://bugs.webkit.org/show_bug.cgi?id=75088
+
+        Reviewed by Simon Hausmann.
+
+        Move backtrace generating logic into WTFReportBacktrace
+        and add a way to deinstall signal handlers if we know
+        that we have already printed the backtrace.
+
+        * Source/qtwebkit-export.map:
+
+2012-01-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move OTHER_FILES from WebKit.pro to Tools.pro
+
+        Reviewed by Simon Hausmann.
+
+        * WebKit.pro:
+
+2012-01-18  Shinya Kawanaka  <shinyak@google.com>
+
+        Move ShadowContentElement from dom/ to html/ and make ShadowContentElement subclass of HTMLElement.
+        https://bugs.webkit.org/show_bug.cgi?id=76241
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter: Exposed necessary symbols.
+
+2012-01-18  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Fix GTK+ build after r105245.
+
+        * Source/autotools/symbols.filter: Fix symbol name.
+
+2012-01-17  Hajime Morrita  <morrita@chromium.org>
+
+        [Internals] Should be able to access corresponding Document object.
+        https://bugs.webkit.org/show_bug.cgi?id=76425
+
+        Added exported symbols.
+
+        Reviewed by Adam Barth.
+
+        * Source/autotools/symbols.filter:
+
+2012-01-17  Stephen Chenney  <schenney@chromium.org>
+
+        NULL ptr in WebCore::RenderSVGInlineText::localCaretRect
+        https://bugs.webkit.org/show_bug.cgi?id=75851
+
+        Reviewed by Ryosuke Niwa.
+
+        Added a check for null box in localCaretRect, to match test in other
+        implementations. Adding a manual test because the crash is not
+        reproducible in DRT.
+
+        * ManualTests/svg-modify-deleted-selection.svg: Added.
+
+2012-01-17  Raul Hudea  <rhudea@adobe.com>
+
+        Move tests out of WebCore/manual-tests to toplevel ManualTests.
+        It looks like the manual-tests folder wasn't noticed by git (or me :).
+
+        Move some SVG manual tests from deprecated WebCore/manual-tests to toplevel ManualTests
+        https://bugs.webkit.org/show_bug.cgi?id=76437
+
+        Reviewed by Daniel Bates.
+
+        * ManualTests/svg-animation-css-transform.html: Renamed from Source/WebCore/manual-tests/svg-animation-css-transform.html.
+        * ManualTests/svg-css-animate-compound.html: Renamed from Source/WebCore/manual-tests/svg-css-animate-compound.html.
+        * ManualTests/svg-css-transition-compound.html: Renamed from Source/WebCore/manual-tests/svg-css-transition-compound.html.
+
+2012-01-16  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Add more files to project-files for easier navigation in Qt Creator
+
+        Reviewed by Simon Hausmann.
+
+        * WebKit.pro:
+
+2012-01-16  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Update NEWS and configure.ac for 1.7.4 release
+        https://bugs.webkit.org/show_bug.cgi?id=76375
+
+        Reviewed by Philippe Normand.
+
+        * configure.ac: Bumped version number.
+
+2012-01-16  Shinya Kawanaka  <shinyak@google.com>
+
+        [crash] Renderer crashes when spell checking a disabled input field.
+        https://bugs.webkit.org/show_bug.cgi?id=75941
+
+        Reviewed by Hajime Morita.
+
+        * ManualTests/editing-disabled-node-replace-crash.html: Added.
+
+2012-01-13  Simon Fraser  <simon.fraser@apple.com>
+
+        Unmatched transparency layer begin/end on a filtered element with an opacity ancestor
+        https://bugs.webkit.org/show_bug.cgi?id=76329
+
+        Reviewed by Dan Bernstein.
+        
+        Manual test with a filtered element as a descendant of an element with
+        opacity. Doing a Find is necessary to exercise the test.
+
+        * ManualTests/filters/opacity-above-filter.html: Added.
+
+2012-01-13  Eli Fidler  <efidler@rim.com>
+
+        GCC compiler version is not detected properly for QNX qcc variant
+        https://bugs.webkit.org/show_bug.cgi?id=76288
+
+        Reviewed by Rob Buis.
+
+        Provide an alternative way of getting the compiler version for GCC variants
+        that don't support -dumpversion (such as qcc).
+
+        * Source/cmake/WebKitHelpers.cmake:
+
+2012-01-13  Gregg Tavares  <gman@google.com>
+
+        Add WebGLContextGroup as step toward sharing WebGL resources
+        https://bugs.webkit.org/show_bug.cgi?id=75906
+
+        The WebGL Working Group will soon add the ability to share
+        WebGL resources among WebGL contexts. This is the necessary
+        prep work. NO API changes.
+
+        Added WebGLSharedObject for objects that are shared vs
+        WebGLContextObject for objects that are not.
+
+        Reviewed by Kenneth Russell.
+
+        No new tests. No change in behavior.
+
+        * GNUmakefile.list.am:
+        * WebCore.gypi:
+        * html/canvas/OESVertexArrayObject.cpp:
+        (WebCore::OESVertexArrayObject::createVertexArrayOES):
+        (WebCore::OESVertexArrayObject::deleteVertexArrayOES):
+        (WebCore::OESVertexArrayObject::isVertexArrayOES):
+        (WebCore::OESVertexArrayObject::bindVertexArrayOES):
+        * html/canvas/WebGLBuffer.cpp:
+        (WebCore::WebGLBuffer::WebGLBuffer):
+        (WebCore::WebGLBuffer::~WebGLBuffer):
+        (WebCore::WebGLBuffer::deleteObjectImpl):
+        * html/canvas/WebGLBuffer.h:
+        * html/canvas/WebGLContextGroup.cpp: Added.
+        (WebCore::WebGLContextGroup::create):
+        (WebCore::WebGLContextGroup::WebGLContextGroup):
+        (WebCore::WebGLContextGroup::~WebGLContextGroup):
+        (WebCore::WebGLContextGroup::getAGraphicsContext3D):
+        (WebCore::WebGLContextGroup::addContext):
+        (WebCore::WebGLContextGroup::removeContext):
+        (WebCore::WebGLContextGroup::removeObject):
+        (WebCore::WebGLContextGroup::addObject):
+        (WebCore::WebGLContextGroup::detachAndRemoveAllObjects):
+        (WebCore::WebGLContextGroup::loseContextGroup):
+        * html/canvas/WebGLContextGroup.h: Copied from Source/WebCore/html/canvas/WebGLShader.h.
+        * html/canvas/WebGLContextObject.cpp: Copied from Source/WebCore/html/canvas/WebGLShader.cpp.
+        (WebCore::WebGLContextObject::WebGLContextObject):
+        (WebCore::WebGLContextObject::~WebGLContextObject):
+        (WebCore::WebGLContextObject::detachContext):
+        (WebCore::WebGLContextObject::getAGraphicsContext3D):
+        * html/canvas/WebGLContextObject.h: Copied from Source/WebCore/html/canvas/WebGLShader.h.
+        (WebCore::WebGLContextObject::context):
+        (WebCore::WebGLContextObject::validate):
+        (WebCore::WebGLContextObject::hasGroupOrContext):
+        * html/canvas/WebGLFramebuffer.cpp:
+        (WebCore::WebGLFramebuffer::WebGLFramebuffer):
+        (WebCore::WebGLFramebuffer::~WebGLFramebuffer):
+        (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
+        (WebCore::WebGLFramebuffer::getAttachment):
+        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
+        (WebCore::WebGLFramebuffer::checkStatus):
+        (WebCore::WebGLFramebuffer::onAccess):
+        (WebCore::WebGLFramebuffer::deleteObjectImpl):
+        (WebCore::WebGLFramebuffer::initializeRenderbuffers):
+        * html/canvas/WebGLFramebuffer.h:
+        * html/canvas/WebGLObject.cpp:
+        (WebCore::WebGLObject::WebGLObject):
+        (WebCore::WebGLObject::~WebGLObject):
+        (WebCore::WebGLObject::deleteObject):
+        (WebCore::WebGLObject::detach):
+        (WebCore::WebGLObject::onDetached):
+        * html/canvas/WebGLObject.h:
+        * html/canvas/WebGLProgram.cpp:
+        (WebCore::WebGLProgram::WebGLProgram):
+        (WebCore::WebGLProgram::~WebGLProgram):
+        (WebCore::WebGLProgram::deleteObjectImpl):
+        (WebCore::WebGLProgram::cacheActiveAttribLocations):
+        * html/canvas/WebGLProgram.h:
+        * html/canvas/WebGLRenderbuffer.cpp:
+        (WebCore::WebGLRenderbuffer::~WebGLRenderbuffer):
+        (WebCore::WebGLRenderbuffer::WebGLRenderbuffer):
+        (WebCore::WebGLRenderbuffer::deleteObjectImpl):
+        * html/canvas/WebGLRenderbuffer.h:
+        * html/canvas/WebGLRenderingContext.cpp:
+        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
+        (WebCore::WebGLRenderingContext::initializeNewContext):
+        (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
+        (WebCore::WebGLRenderingContext::clearIfComposited):
+        (WebCore::WebGLRenderingContext::checkObjectToBeBound):
+        (WebCore::WebGLRenderingContext::clear):
+        (WebCore::WebGLRenderingContext::copyTexImage2D):
+        (WebCore::WebGLRenderingContext::copyTexSubImage2D):
+        (WebCore::WebGLRenderingContext::createBuffer):
+        (WebCore::WebGLRenderingContext::createFramebuffer):
+        (WebCore::WebGLRenderingContext::createTexture):
+        (WebCore::WebGLRenderingContext::createProgram):
+        (WebCore::WebGLRenderingContext::createRenderbuffer):
+        (WebCore::WebGLRenderingContext::createShader):
+        (WebCore::WebGLRenderingContext::deleteObject):
+        (WebCore::WebGLRenderingContext::deleteRenderbuffer):
+        (WebCore::WebGLRenderingContext::deleteTexture):
+        (WebCore::WebGLRenderingContext::detachShader):
+        (WebCore::WebGLRenderingContext::validateElementArraySize):
+        (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
+        (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
+        (WebCore::WebGLRenderingContext::validateWebGLObject):
+        (WebCore::WebGLRenderingContext::drawArrays):
+        (WebCore::WebGLRenderingContext::drawElements):
+        (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
+        (WebCore::WebGLRenderingContext::framebufferTexture2D):
+        (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
+        (WebCore::WebGLRenderingContext::linkProgram):
+        (WebCore::WebGLRenderingContext::readPixels):
+        (WebCore::WebGLRenderingContext::useProgram):
+        (WebCore::WebGLRenderingContext::removeSharedObject):
+        (WebCore::WebGLRenderingContext::addSharedObject):
+        (WebCore::WebGLRenderingContext::removeContextObject):
+        (WebCore::WebGLRenderingContext::addContextObject):
+        (WebCore::WebGLRenderingContext::detachAndRemoveAllObjects):
+        (WebCore::WebGLRenderingContext::initVertexAttrib0):
+        (WebCore::WebGLRenderingContext::loseContext):
+        (WebCore::WebGLRenderingContext::loseContextImpl):
+        * html/canvas/WebGLRenderingContext.h:
+        (WebCore::WebGLRenderingContext::contextGroup):
+        * html/canvas/WebGLShader.cpp:
+        (WebCore::WebGLShader::WebGLShader):
+        (WebCore::WebGLShader::~WebGLShader):
+        (WebCore::WebGLShader::deleteObjectImpl):
+        * html/canvas/WebGLShader.h:
+        * html/canvas/WebGLSharedObject.cpp: Copied from Source/WebCore/html/canvas/WebGLRenderbuffer.cpp.
+        (WebCore::WebGLSharedObject::WebGLSharedObject):
+        (WebCore::WebGLSharedObject::~WebGLSharedObject):
+        (WebCore::WebGLSharedObject::detachContextGroup):
+        (WebCore::WebGLSharedObject::getAGraphicsContext3D):
+        * html/canvas/WebGLSharedObject.h: Copied from Source/WebCore/html/canvas/WebGLShader.h.
+        (WebCore::WebGLSharedObject::contextGroup):
+        (WebCore::WebGLSharedObject::isBuffer):
+        (WebCore::WebGLSharedObject::isFramebuffer):
+        (WebCore::WebGLSharedObject::isProgram):
+        (WebCore::WebGLSharedObject::isRenderbuffer):
+        (WebCore::WebGLSharedObject::isShader):
+        (WebCore::WebGLSharedObject::isTexture):
+        (WebCore::WebGLSharedObject::validate):
+        (WebCore::WebGLSharedObject::hasGroupOrContext):
+        * html/canvas/WebGLTexture.cpp:
+        (WebCore::WebGLTexture::WebGLTexture):
+        (WebCore::WebGLTexture::~WebGLTexture):
+        (WebCore::WebGLTexture::deleteObjectImpl):
+        * html/canvas/WebGLTexture.h:
+        * html/canvas/WebGLVertexArrayObjectOES.cpp:
+        (WebCore::WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES):
+        (WebCore::WebGLVertexArrayObjectOES::~WebGLVertexArrayObjectOES):
+        (WebCore::WebGLVertexArrayObjectOES::deleteObjectImpl):
+        * html/canvas/WebGLVertexArrayObjectOES.h:
+
+2012-01-12  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r104805.
+        http://trac.webkit.org/changeset/104805
+        https://bugs.webkit.org/show_bug.cgi?id=76180
+
+        Breaks apple win compilation. (Requested by vsevik on
+        #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2012-01-12  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        Make the new WTF module build on Qt
+        https://bugs.webkit.org/show_bug.cgi?id=76163
+
+        Reviewed by Tor Arne Vestbø.
+
+        * WebKit.pro: Build the new WTF instead of the old one.
+
+2012-01-12  Shinya Kawanaka  <shinyak@google.com>
+
+        ShadowContentElement should be able to use query.
+        https://bugs.webkit.org/show_bug.cgi?id=75302
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter: Exposed necessary symbols.
+
+2012-01-11  Ulan Degenbaev  <ulan@chromium.org>
+
+        [v8] Int16Array.set(array, offset) fails on first execution
+        https://bugs.webkit.org/show_bug.cgi?id=76040
+
+        Reviewed by Kenneth Russell.
+
+        * LayoutTests/fast/canvas/webgl/array-set-with-offset-expected.txt: Added.
+        * LayoutTests/fast/canvas/webgl/array-set-with-offset.html: Added.
+        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
+        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:
+
+2012-01-11  Eli Fidler  <efidler@rim.com>
+
+        Fix OpenGL dependency in CMake build system
+        https://bugs.webkit.org/show_bug.cgi?id=73559
+
+        Reviewed by Daniel Bates.
+
+        Apparently the EFL port uses desktop OpenGL to implement WebGL, but
+        other ports such as BlackBerry use other libraries like OpenGL ES 2.0 or
+        ANGLE.
+
+        * Source/cmake/OptionsCommon.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+
+2012-01-09  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] [AC] Simplify accelerated compositing build options
+        https://bugs.webkit.org/show_bug.cgi?id=75518
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * configure.ac: Remove the --enable-3d-rendering option. It's enabled by
+        default now when accelerated compositing is enabled.
+        * GNUmakefile.am: Automatically enable 3D rendering when accelerated compositing
+        is turned on.
+
+2012-01-04  Jon Lee  <jonlee@apple.com>
+
+        Clicking on the cancel button on readonly and disabled search fields darkens as if the search field was editable
+        https://bugs.webkit.org/show_bug.cgi?id=69886
+        <rdar://problem/10070187>
+
+        Reviewed by Adele Peterson.
+
+        * ManualTests/search-cancel-button.html: Added.
+
+2012-01-06  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Fix compilation of app code against QtWebKit master header file
+
+        Unreviewed trivial build fix.
+
+        * Source/sync.profile: Exclude util.h and testwindow.h from the master header
+        file, because it cannot be used outside of the WebKit source tree.
+
+2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move listing of include paths and libs to pri files in sources
+
+        Includepaths are sometimes modified by non-Qt contributors so keeping
+        them in files inside Sources makes it more likely that they are updated
+        along with project files for the other ports.
+
+        Using pri files instead of prf files for this also has the benefit that
+        the include() from the main target file can be parsed and followed by
+        Qt Creator -- something that does not work with load().
+
+        Dependency from a target to a library through the WEBKIT variable are
+        handled through forwarding-files in Tools/qmake/mkspecs/modules, which
+        set the source root of the module and include the right pri file.
+
+        Ideally we'd use the variant of include() that takes an optional
+        namespace to read the variables into, or the fromfile() function,
+        but both of these add an overhead of about 40% on the total qmake
+        runtime, due to making a deep copy of all the variables in the
+        project or re-reading all the prf files from scratch.
+
+        Reviewed by Simon Hausmann.
+        Reviewed by Ossy.
+
+        * WebKit.pro:
+
+2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Add a few more files ot OTHER_FILES
+
+        Rubber-stamped by Simon Hausmann.
+
+        * WebKit.pro:
+
+2012-01-05  Ulan Degenbaev  <ulan@chromium.org>
+
+        [v8] Null pointer exception if a typed array constructor set to a primitive value.
+        https://bugs.webkit.org/show_bug.cgi?id=75532
+
+        Make sure that V8ArrayBufferViewCustomScript.js does not throw exception.
+
+        Reviewed by Kenneth Russell.
+
+        * LayoutTests/fast/canvas/webgl/array-buffer-view-crash-when-reassigned-expected.txt: Added.
+        * LayoutTests/fast/canvas/webgl/array-buffer-view-crash-when-reassigned.html: Added.
+        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
+        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustomScript.js:
+
+2012-01-05  Zeno Albisser  <zeno@webkit.org>
+
+        [Qt][WK2] Implement custom URL schemes defined in QML.
+        https://bugs.webkit.org/show_bug.cgi?id=74931
+
+        Add new classes to the export map.
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/qtwebkit-export.map:
+
+2012-01-05  Fady Samuel  <fsamuel@chromium.org>
+
+        Move scalePageBy from eventSender to window.internals
+        https://bugs.webkit.org/show_bug.cgi?id=64512
+
+        Reviewed by Simon Fraser.
+
+        * Source/autotools/symbols.filter:
+
+2012-01-04  James Robinson  <jamesr@chromium.org>
+
+        [chromium] Move WebMimeRegistry and dependencies to Source/Platform
+        https://bugs.webkit.org/show_bug.cgi?id=74583
+
+        Reviewed by Darin Fisher.
+
+        Update .gitignore for Source/Platform/Platform.gyp/ generated project files.
+
+        * .gitignore:
+
+2012-01-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Introduce new qmake variable 'WEBKIT' for signaling dependencies
+
+        The custom qmake variable 'WEBKIT' is used for signaling that a
+        target depends in some way on other subproject of the WebKit
+        project. For now this is limited to the set of intermediate
+        libraries: wtf, javascriptcore, webcore, and webkit2.
+
+        This replaces the previous convension of using load(foo) for
+        just include paths, and CONFIG += foo to also link against foo.
+
+        Adding a dependency results in additional include paths being
+        available, and potentially linking to the library. This is
+        decided by the build system based on conditions such as what
+        kind of target is being built and the general build config.
+
+        An advantage to his approach is that it simplifies the individual
+        foo.prf files, for example by allowing us to use INCLUDEPATH +=
+        and LIBS += as normal instead of prepending.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2012-01-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move use of $$qtLibraryTarget() to a single place
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/api.pri:
+
+2012-01-04  Mary Wu  <mary.wu@torchmobile.com.cn>
+
+        Enable DOWNLOAD_ATTRIBUTE in BlackBerry porting
+        https://bugs.webkit.org/show_bug.cgi?id=75238
+
+        Reviewed by Antonio Gomes.
+
+        * Source/cmakeconfig.h.cmake: Modified to add a new cmakedefine ENABLE_DOWNLOAD_ATTRIBUTE.
+
+2012-01-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Clean up detection of fontconfig
+
+        We decide in features.prf whether or not fontconfig is available, and
+        set the HAVE_FONTCONFIG define accordingly. All leaf project files
+        should use this define to decide whether or not to link against
+        fontconfig, not do their own detection.
+
+        We don't need to add link_pkgconfig to CONFIG in each project file,
+        as we selectivly enable that configuration in defaults_post when
+        needed.
+
+        Reviewed by Ossy.
+
+        * Source/api.pri:
+
+2012-01-02  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Add a way to change web view settings in MiniBrowser
+        https://bugs.webkit.org/show_bug.cgi?id=71568
+
+        Reviewed by Philippe Normand.
+
+        * GNUmakefile.am: Initialize minibrowser_built_sources.
+
+2011-12-28  ChangSeok Oh  <shivamidow@gmail.com>
+
+        [GTK] Fix compilation issue when selecting opengl for Accelerated compositing
+        https://bugs.webkit.org/show_bug.cgi?id=75309
+
+        Reviewed by Martin Robinson.
+
+        Replace WTF_USE_TEXTURE_MAPPER_OPENGL to WTF_USE_TEXTURE_MAPPER_GL
+
+        * GNUmakefile.am:
+
+2011-12-28  Dan Bernstein  <mitz@apple.com>
+
+        Entering "make" in Source builds only JavaScriptGlue and ANGLE
+        https://bugs.webkit.org/show_bug.cgi?id=75318
+
+        Reviewed by Anders Carlsson.
+
+        * Makefile: Changed to make Source and Tools.
+        * Source/Makefile: Changed to make all projects in Source.
+
+2011-12-27  Kentaro Hara  <haraken@chromium.org>
+
+        WIP: Enable the [Supplemental] IDL on Gtk
+        https://bugs.webkit.org/show_bug.cgi?id=74972
+
+        Reviewed by Adam Barth.
+
+        This patch adds dom_binding_idls, which is used in Source/WebCore/GNUmakefile.list.am.
+
+        * GNUmakefile.am:
+
+2011-12-22  Leo Yang  <leo.yang@torchmobile.com.cn>
+
+        [BlackBerry] Enable blob for the BlackBerry porting
+        https://bugs.webkit.org/show_bug.cgi?id=75074
+
+        Reviewed by George Staikos.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2011-12-22  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [EFL][WK2] Add an option to build WebKit2.
+        https://bugs.webkit.org/show_bug.cgi?id=61999
+
+        Reviewed by Eric Seidel.
+
+        * Source/cmake/OptionsEfl.cmake: Set WebKit2_LIBRARY_NAME.
+
+2011-12-22  Daniel Jalkut  <jalkut@red-sweater.com>
+
+        ManualTests HTML template should be simplified
+        https://bugs.webkit.org/show_bug.cgi?id=75025
+
+        Reviewed by Ryosuke Niwa.
+
+        * ManualTests/template.html:
+
+2011-12-22  Daniel Jalkut  <jalkut@red-sweater.com>
+
+        WebKit editing throws exception when monochrome color dragged onto text
+        https://bugs.webkit.org/show_bug.cgi?id=74775
+
+        Reviewed by Ryosuke Niwa.
+
+        * ManualTests/drag-color-to-contenteditable.html: Added.
+
+2011-12-21  Daniel Bates  <dbates@webkit.org>
+
+        Add CMake option to only build JavaScriptCore
+        https://bugs.webkit.org/show_bug.cgi?id=74979
+
+        Reviewed by Rob Buis.
+
+        Towards adding CMake support to script Tools/Scripts/build-jsc, add a CMake
+        option to only build JavaScriptCore.
+
+        * CMakeLists.txt: Defined ENABLE_WEBCORE to build WebCore. If the option
+        ONLY_BUILD_JAVASCRIPTCORE is specified then don't build WebCore, WebKit, or WebKit2.
+        * Source/CMakeLists.txt:
+        * Source/cmake/WebKitFS.cmake:
+
+2011-12-20  Ilya Tikhonovsky  <loislo@chromium.org>
+
+        emacs: unreviewed. add settings for editing js files.
+
+        * .dir-locals.el:
+
+2011-12-20  Rafael Brandao  <rafael.lobo@openbossa.org>
+
+        [Qt][WK2] Implement favicon support
+        https://bugs.webkit.org/show_bug.cgi?id=71082
+
+        Reviewed by Simon Hausmann.
+
+        * Source/qtwebkit-export.map: Added new classes.
+
+2011-12-18  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        Rename EditCommandQt to UndoStepQt
+        https://bugs.webkit.org/show_bug.cgi?id=74754
+
+        Reviewed by Ryosuke Niwa.
+
+        * Source/api.pri:
+
+2011-12-16  Mark Hahnenberg  <mhahnenberg@apple.com>
+
+        De-virtualize destructors
+        https://bugs.webkit.org/show_bug.cgi?id=74331
+
+        Reviewed by Geoffrey Garen.
+
+        * Source/autotools/symbols.filter: Removed symbol no longer present.
+
+2011-12-16  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Update NEWS and configure.ac for 1.7.3 release
+        https://bugs.webkit.org/show_bug.cgi?id=74699
+
+        Reviewed by Philippe Normand.
+
+        * configure.ac: Bumped version number.
+
+2011-12-15  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Remove ENABLE_DATAGRID from the buildsystem.
+        https://bugs.webkit.org/show_bug.cgi?id=74640
+
+        Reviewed by Antonio Gomes.
+
+        r84991 removed Datagrid from the tree, but the options in CMake were
+        kept.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-12-15  Ulan Degenbaev  <ulan@chromium.org>
+
+        Web Inspector: [Chromium]  Call LowMemoryNotification instead of IdleNotification
+        https://bugs.webkit.org/show_bug.cgi?id=71821
+
+        Reviewed by Yury Semikhatsky.
+
+        * Source/WebCore/bindings/v8/ScriptProfiler.cpp:
+
+2011-12-15  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Don't add WebCoreSupport and WebKit APIs to include WebCore's include path
+
+        Reviewed Simon Hausmann.
+
+        * Source/api.pri:
+
+2011-12-15  Michael Brüning  <michael.bruning@nokia.com>
+
+        [QT][WK2]Add (experimental) viewport info view to Minibrowser/qt.
+        https://bugs.webkit.org/show_bug.cgi?id=72893
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        This patch extends QQuickWebViewExperimental by a property named
+        viewportInfo, which contains the viewport scalability and
+        layout and contents size information. This property is exposed to
+        QML through the experimental extension for QQuickWebView.
+
+        * Source/qtwebkit-export.map:
+
+2011-12-14  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Add a manual test for caret blinking during forward deletion
+        https://bugs.webkit.org/show_bug.cgi?id=74494
+
+        Reviewed by Dan Bernstein.
+
+        Add a test to forward delete 200 characters. Caret should not blink during the deletion.
+        This is a follow up for r102413.
+
+        * ManualTests/caret-blink-during-forward-delete.html: Added.
+
+2011-12-14  Csaba Osztrogonác  <ossy@webkit.org>
+
+        [Qt] Rollout r102769, because it broke Qt-4.8 builds.
+
+        * Source/api.pri:
+
+2011-12-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Don't add WebCoreSupport and WebKit APIs to include WebCore's include path
+
+        Followup to r102679
+
+        https://bugs.webkit.org/show_bug.cgi?id=74413
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2011-12-14  Alexander Færøy  <alexander.faeroy@nokia.com>
+
+        [Qt] Fix compilation of QtWebKit with --orientation-events without ENABLE_DEVICE_ORIENTATION
+        https://bugs.webkit.org/show_bug.cgi?id=74492
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2011-12-14  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
+
+        [Qt] [WK2] Linking fails if GStreamer not installed after r102493
+        https://bugs.webkit.org/show_bug.cgi?id=74412
+
+        Reviewed by Simon Hausmann.
+
+        Add -lrt to fix WK2 linking when gstreamer is not used.
+
+        * Source/api.pri:
+
+2011-12-14  Alexander Færøy  <alexander.faeroy@nokia.com>
+
+        [Qt] DeviceOrientationClientMockQt should be removed in favor of DeviceOrientationClientMock
+        https://bugs.webkit.org/show_bug.cgi?id=74417
+
+        Reviewed by Simon Hausmann.
+
+        Based on original patch by Kenneth Christiansen.
+
+        * Source/api.pri:
+
+2011-12-14  Jacky Jiang  <zhajiang@rim.com>
+
+        [BlackBerry] Switch to libjpeg for decoding
+        https://bugs.webkit.org/show_bug.cgi?id=74475
+
+        Reviewed by Daniel Bates.
+
+        Find libjpeg instead of libimg.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+
+2011-12-13  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Get rid of layering violations in includes
+
+        WebKit/qt/API and WebKit/qt/WebCoreSupport should not be included
+        in the webcore.prf, but rather in each target that specificly needs
+        headers in these location. We used to include them directly in webcore
+        since we had layering violations between WebCore and WebKit, but now
+        that they are gone there's no reason to do that.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2011-12-12  Andy Wingo  <wingo@igalia.com>
+
+        Simplify autotools configure.ac
+        https://bugs.webkit.org/show_bug.cgi?id=74312
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Don't AC_DEFINE so many things.  Many of the
+        defines were stale (ENABLE_YARR, ENABLE_JIT_OPTIMIZE_CALL, etc),
+        and with Platform.h we don't need to make an explicit decision
+        here.  If the user does pass --enable-jit or --disable-jit, effect
+        that choice via setting JSC_CPPFLAGS.
+
+2011-12-12  Alexis Menard  <alexis.menard@openbossa.org>
+
+        [Qt][WK2] History is not accessible in QML.
+        https://bugs.webkit.org/show_bug.cgi?id=73016
+
+        Reviewed by Simon Hausmann.
+
+        Add the new QWebNavigationHistory in the map file.
+
+        * Source/qtwebkit-export.map:
+
+2011-12-09  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
+
+        [Qt] request parameter of QQuickWebView::navigationRequested is not a registered type
+        https://bugs.webkit.org/show_bug.cgi?id=73826
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/qtwebkit-export.map: Adding QWebNavigationRequest
+
+2011-12-09  Joone Hur  <joone.hur@collabora.co.uk>
+
+        [GTK] Initial implementation of Accelerated Compositing using Clutter
+        https://bugs.webkit.org/show_bug.cgi?id=73319
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * GNUmakefile.am: Export new compilation macros.
+        * configure.ac: Add clutter backend for Accelerated Compositing.
+
+2011-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r102323.
+        http://trac.webkit.org/changeset/102323
+        https://bugs.webkit.org/show_bug.cgi?id=74069
+
+        Caused Chromium and GTK build failure (Requested by bashi on
+        #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2011-12-08  Fady Samuel  <fsamuel@chromium.org>
+
+        Move scalePageBy from eventSender to window.internals
+        https://bugs.webkit.org/show_bug.cgi?id=64512
+
+        Reviewed by Simon Fraser.
+
+        * Source/autotools/symbols.filter:
+
+2011-12-06  Dirk Pranke  <dpranke@chromium.org>
+
+        Add Tools/Tool.xcodeproj,
+        Source/WebKit/chromium/WebKitUnitTests.xcodeproj,
+        Source/WebKit/chromium/All.xcodeproj to .gitignore
+
+        https://bugs.webkit.org/show_bug.cgi?id=73823
+
+        Reviewed by Tony Chang.
+
+        * .gitignore:
+
+2011-12-06  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] build-jsc script doesn't work
+        https://bugs.webkit.org/show_bug.cgi?id=73910
+
+        Reviewed by Tor Arne Vestbø.
+
+        * WebKit.pro: Move WTF SUBDIR stuff out of here and
+        straight into JavaScriptCore/JavaScriptCore.pro.
+        Unconditionally "recurse" into JavaScriptCore now,
+        as we'll do the v8 scoping there to only build WTF.
+
+2011-12-05  Alexander Færøy  <alexander.faeroy@nokia.com>
+
+        [Qt] Add Source/qtwebkitversion.h to .gitignore
+        https://bugs.webkit.org/show_bug.cgi?id=73823
+
+        Reviewed by Tor Arne Vestbø.
+
+        * .gitignore:
+
+2011-12-03  Dan Winship  <danw@gnome.org>
+
+        [GTK] Update required libsoup version
+        https://bugs.webkit.org/show_bug.cgi?id=71611
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: require libsoup 2.37.2.1 for SoupRequestHTTP API
+        changes
+
+2011-12-02  Fady Samuel  <fsamuel@chromium.org>
+
+        When page scaling is in use position:fixed has incorrect results
+        https://bugs.webkit.org/show_bug.cgi?id=68617
+
+        Reviewed by Simon Fraser.
+
+        * Source/autotools/symbols.filter:
+
+2011-12-02  Martin Robinson  <mrobinson@igalia.com>
+
+        Try to fix the GTK+ debug bot. As discussed with other GTK+
+        hackers recently. It makes sense to just remove G_DISABLE_DEPRECATIONS
+        now in WebKit. The flag itself is now deprecated in GLib in favor of
+        the gcc attribute.
+
+        * GNUmakefile.am: Remove G_DISABLE_DEPRECATED.
+
+2011-12-02  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fixes for Windows build.
+
+        * wscript:
+
+2011-12-02  Alejandro G. Castro  <alex@igalia.com>
+
+        [GTK] Fix TextureMapperCairo compilation
+        https://bugs.webkit.org/show_bug.cgi?id=73655
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am: The variables need the USE part in the name.
+        * configure.ac: We can not define the variable twice.
+
+2011-12-02  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        Unreviewed, revert r101347.
+        https://bugs.webkit.org/show_bug.cgi?id=73580
+
+        It breaks the linking of Tools/ targets due to missing functions.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-12-02  Alejandro G. Castro  <alex@igalia.com>
+
+        [GTK] Improve  C++0x compat warnings check
+        https://bugs.webkit.org/show_bug.cgi?id=73642
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac:
+
+2011-12-01  Nayan Kumar K  <nayankk@motorola.com>
+
+        [GTK] Add compilation options to enable/disable Accelerated Compositing and to choose texture mapper implementation.
+        https://bugs.webkit.org/show_bug.cgi?id=73458
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am: Export new compilation macros.
+        * configure.ac: Provide option to choose accelerated compositing and texture mapper variations.
+
+2011-12-01  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Make the feature defines for DOM names explicit
+        https://bugs.webkit.org/show_bug.cgi?id=72812
+
+        Reviewed by Daniel Bates.
+
+        Preprocessor defines used in WebCore/dom/make_names.pl are set via WEBKIT_FEATURE
+        for every port in the correspondig platform file. Pass an explicit list of defines
+        to the CMake macro, so we need to maintain the list only once.
+
+        * Source/cmake/OptionsBlackBerry.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+
+2011-11-30  Alejandro G. Castro  <alex@igalia.com>
+
+        [GTK] Add accelerated compositing compilation option
+        https://bugs.webkit.org/show_bug.cgi?id=73298
+
+        Compile whatever we have inside the USE(ACCELERATED_COMPOSITING)
+        define. Add the build compilation option
+        --with-accelerated-compositing and use it in the makefile.
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am:
+        * configure.ac:
+
+2011-11-30  Mary Wu  <mary.wu@torchmobile.com.cn>
+
+        remove buildinformation from BlackBerry porting build system
+        https://bugs.webkit.org/show_bug.cgi?id=73276
+
+        Reviewed by Daniel Bates.
+
+        * Source/cmake/OptionsBlackBerry.cmake: remove script file generate-buildinfo
+
+2011-11-30  Andrew Wason  <rectalogic@rectalogic.com>
+
+        Replace Qt QThread threading back-end with pthread/Win32 threading back-ends
+        https://bugs.webkit.org/show_bug.cgi?id=72155
+
+        Reviewed by Simon Hausmann.
+
+        Add additional WebCoreSupport files for Qt.
+
+        * Source/api.pri:
+
+2011-11-30  Adenilson Cavalcanti  <adenilson.silva@openbossa.org>
+
+        [Qt][WK2] Implement permission API for Qt port
+        https://bugs.webkit.org/show_bug.cgi?id=59200
+
+        Permission API hookup for Geolocation, it allows to receive in WebView
+        a signal when a permission request is done (e.g. to grant permission
+        for accessing geolocation information) and set it accordingly.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/qtwebkit-export.map:
+
+2011-11-29  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix for Leopard compilation.
+
+        * wscript:
+
+2011-11-29  Philippe Normand  <pnormand@igalia.com>
+
+        [GTK] hide WebAudio build option until support for FFTW is removed
+        https://bugs.webkit.org/show_bug.cgi?id=73295
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Disable WebAudio until the FFTW dependency is removed.
+
+2011-11-29  Hyowon Kim  <hw1008.kim@samsung.com>
+
+        [Texmap][EFL] Accelerated compositing support using TextureMapper on EFL port
+        https://bugs.webkit.org/show_bug.cgi?id=73111
+
+        Add feature define for TextureMapper and OpenGL package.
+
+        Reviewed by Noam Rosenthal.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-11-29  Roland Steiner  <rolandsteiner@chromium.org>
+
+        <style scoped>: add ENABLE(STYLE_SCOPED) flag to WebKit
+        https://bugs.webkit.org/show_bug.cgi?id=72848
+
+        Add flag and description.
+
+        Reviewed by Dimitri Glazkov.
+
+        * configure.ac:
+
+2011-11-28  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Build system fixes against V8.
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri: Get rid of old v8 cruft.
+        * WebKit.pro: Don't build JavaScriptCore when configured with v8.
+
+2011-11-28  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] WTF should be built as separate static library
+        https://bugs.webkit.org/show_bug.cgi?id=73201
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri: Require wtf.
+        * WebKit.pro: Build WTF.
+
+2011-11-17  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Integrate build-gtkdoc into build-webkit and make
+        https://bugs.webkit.org/show_bug.cgi?id=72626
+
+        Reviewed by Philippe Normand.
+
+        * GNUmakefile.am: Remove references to old gtkdoc files. Update
+        the dist-hook to include copying documentation into the distribution.
+        This also means that the build will fail if documentation hasn't been
+        generated before 'make dist.'
+        * configure.ac: Ditto.
+
+2011-11-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Re-generate QtWebKit API forwarding headers when API changes
+
+        The forwarding headers are generated by syncqt, and syncqt is run by qmake,
+        so we need sync.profile to live in the same directory as the project file
+        that will be touched when adding/removing API (api.pri in our case).
+
+        Since the WebKit2 APIs live in a separate static library, we have to
+        add the project file for WebKit2 as a dependency of the api.pri file
+        as well, so that any changes to the WebKit2 API will still trigger a
+        run of qmake (and then syncqt).
+
+        Lastly, we use the new QMAKE_SYNCQT_OUTDIR variable in Qt 5 to ensure
+        that the forwarding headers are still generated in the root build dir,
+        not in the Source dir along with the internal forwarding headers.
+
+        Reviewed by Andreas Kling.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+        * Source/sync.profile: Renamed from sync.profile.
+
+2011-11-23  Halton Huo  <halton.huo@intel.com>
+
+        [EFL] Add zlib depend when freetype is used.
+        https://bugs.webkit.org/show_bug.cgi?id=66365
+
+        Unreviewed build fix.
+
+        When freetype is enabled, uncompress() function is used by
+        WOFFFileFormat.cpp. Since zlib is not required by freetype, we need to
+        add libz as dependency for fix linking issue.
+
+        * Source/cmake/OptionsEfl.cmake: search for ZLIB
+
+2011-10-08  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Enable WebGL by default
+        https://bugs.webkit.org/show_bug.cgi?id=69706
+
+        Reviewed by Xan Lopez.
+
+        * configure.ac: Enable WebGL by default if the build target is X11.
+
+2011-11-23  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Move the top-level logic to the top-level directory.
+        https://bugs.webkit.org/show_bug.cgi?id=72685
+
+        Reviewed by Brent Fulgham.
+
+        Move most of the top-level code in Source/CMakeLists.txt to
+        CMakeLists.txt. This allows us to replace some INCLUDE() hacks with
+        proper ADD_SUBDIRECTORY() calls, and actually moves non-Source related
+        to a non-Source directory.
+
+        * CMakeLists.txt: Copied from Source/CMakeLists.txt.
+
+2011-11-22  Adam Klein  <adamk@chromium.org>
+
+        Add new WebKit/chromium/dbus directory to .gitignore.
+
+        * .gitignore:
+
+2011-11-22  Adam Klein  <adamk@chromium.org>
+
+        Ignore more gyp-generated build files in WTF.gyp.
+
+        * .gitignore:
+
+2011-11-22  Andy Wingo  <wingo@igalia.com>
+
+        Fix .dir-locals.el to only apply to specific modes
+        https://bugs.webkit.org/show_bug.cgi?id=72963
+
+        Reviewed by Xan Lopez.
+
+        * .dir-locals.el: Remove `nil' block, as it was causing
+        makefile-mode not to insert tabs.
+
+2011-11-21  Adam Klein  <adamk@chromium.org>
+
+        Add GYP-generated WTF.xcodeproj to .gitignore after r100851.
+
+        * .gitignore:
+
+2011-11-21  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
+
+        [Qt] [WK2] WebKitTestRunner doesn't build in debug
+        https://bugs.webkit.org/show_bug.cgi?id=72827
+
+        Reviewed by Andreas Kling.
+
+        Add exports to fix WebKitTestRunner debug build.
+
+        * Source/qtwebkit-export.map:
+
+2011-11-21  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
+
+        [Qt] Add WebView.view attached property support for dialogs in QML
+        https://bugs.webkit.org/show_bug.cgi?id=72825
+
+        Reviewed by Simon Hausmann.
+
+        Export QQuickWebViewAttached.
+
+        * Source/qtwebkit-export.map:
+
+2011-11-21  Noel Gordon  <noel.gordon@gmail.com>
+
+        Update .gitignore for latest WebKitLibraries
+        https://bugs.webkit.org/show_bug.cgi?id=72851
+
+        Reviewed by Andreas Kling.
+
+        * .gitignore: updates to silence 'git status' about WebKitLibraries files.
+
+2011-11-21  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Update NEWS and configure.ac for 1.7.2 release
+        https://bugs.webkit.org/show_bug.cgi?id=72868
+
+        Reviewed by Xan Lopez.
+
+        * configure.ac: Bumped version number.
+
+2011-11-19  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Build fix after GeneratedImage refactoring.
+
+        * wscript:
+
+2011-11-19  Alexis Menard  <alexis.menard@openbossa.org>
+
+        [Qt] Add the map file symbols export as a dependency of the final qmake target.
+        https://bugs.webkit.org/show_bug.cgi?id=72740
+
+        Reviewed by Simon Hausmann.
+
+        Add the symbols file part of the target dependencies.
+
+        * Source/api.pri:
+
+2011-11-18  Daniel Bates  <dbates@rim.com>
+
+        Add CMake build infrastructure for the BlackBerry port
+        https://bugs.webkit.org/show_bug.cgi?id=72768
+
+        Reviewed by Adam Barth and Antonio Gomes.
+
+        * Source/CMakeLists.txt: Add the BlackBerry port and support for building on QNX.
+        * Source/cmake/OptionsBlackBerry.cmake: Added.
+        * Source/cmake/OptionsCommon.cmake: Add QNX QCC-variant of CODE_GENERATOR_PREPROCESSOR.
+          We may be able to fold this into the non-MSVC CODE_GENERATOR_PREPROCESSOR.
+
+2011-11-18  Adam Barth  <abarth@webkit.org>
+
+        Prepare to move manual-tests out of WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=72782
+
+        Reviewed by Eric Seidel.
+
+        Update these files to refer to the new location of ManualTests.
+
+        * .gitattributes:
+        * Source/cmake/WebKitPackaging.cmake:
+
+2011-11-18  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Add possibility to overwrite WEBKIT_PORT_DIR in platform specific files
+        https://bugs.webkit.org/show_bug.cgi?id=72710
+
+        Reviewed by Brent Fulgham.
+
+        * Source/CMakeLists.txt:
+
+2011-11-18  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Unreviewed build fix: Export QQuickWebPage/Preferences private API
+        needed for the qml plugin.
+
+        * Source/qtwebkit-export.map:
+
+2011-11-18  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Unreviewed build fix: Export QQuickWebViewExperimental private API
+        that was added since I made the export patch.
+
+        * Source/qtwebkit-export.map:
+
+2011-11-18  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] WTR and InjectedBundle should not link statically against JSC/WTF
+        https://bugs.webkit.org/show_bug.cgi?id=72697
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/api.pri: On Linux, use a GNU LD version script to manage the
+        symbol exports, which includes the public WK1/WK2 API as well as a bunch
+        of private WTF symbols needed for WTR and the Injected Bundle.
+        * Source/qtwebkit-export.map: Added.
+
+2011-11-17  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [EFL] Clean up the use of DATA_DIR in the buildsystem
+        https://bugs.webkit.org/show_bug.cgi?id=72681
+
+        Reviewed by Daniel Bates.
+
+        * Source/cmake/OptionsEfl.cmake: Rename DATA_DIR to DATA_INSTALL_DIR
+        and add it to the cache; add a variable with the path of the generated
+        theme and remove the -DDATA_DIR definition, it was moved to
+        PlatformEFL.cmake in WebCore.
+
+2011-11-17  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Add ENABLE_CLIENT_BASED_GEOLOCATION to cmakeconfig.h
+        https://bugs.webkit.org/show_bug.cgi?id=72643
+
+        Reviewed by Brent Fulgham.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-11-17  Kelly Norton  <knorton@google.com>
+
+       Several void functions in FrameView and RenderObject actually return values.
+       https://bugs.webkit.org/show_bug.cgi?id=72640
+
+        Reviewed by Adam Barth.
+
+        * ../../Source/WebCore/page/FrameView.cpp:
+        * ../../Source/WebCore/rendering/RenderObject.cpp:
+
+2011-11-17  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Make CODE_GENERATOR_PREPROCESSOR more useable
+        https://bugs.webkit.org/show_bug.cgi?id=72516
+
+        Reviewed by Brent Fulgham.
+
+        On windows some code generators fail, if the path to the preprocessor contains spaces.
+        Use only the executable name to avoid this issue for now.
+
+        * Source/cmake/OptionsCommon.cmake:
+
+2011-11-17  Jochen Eisinger  <jochen@chromium.org>
+
+        [chromium] add gyp-mac-tool to .gitignore
+        https://bugs.webkit.org/show_bug.cgi?id=72603
+
+        Reviewed by Tony Gentilcore.
+
+        This file is generated by the make-based build of the chromium/mac port
+
+        * .: Modified property svn:ignore.
+        * .gitignore:
+
+2011-11-17  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move WebKit2 C++ APIs to private API and build QML extension plugin on top of that
+
+        A new extension object has been added to QQuickWebView (the same approach should be used
+        for other API classes that need experimental APIs). The QML extension mechanism is then
+        built on top of the experimental object.
+
+        https://bugs.webkit.org/show_bug.cgi?id=72522
+
+        Reviewed by Simon Hausmann.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+
+2011-11-11  Adrienne Walker  <enne@google.com>
+
+        [chromium] Expose mock scrollbars to window.internals
+        https://bugs.webkit.org/show_bug.cgi?id=72195
+
+        Reviewed by James Robinson.
+
+        * Source/autotools/symbols.filter:
+
+2011-11-15  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Centralize hide_symbols and ensure all libs are built with symbol visibility & bsymbolic_functions
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri: Eliminate duplicated symbol stuff that lives now in default_post.prf.
+
+2011-11-16  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        Fix path to module file in root project file
+
+        Reviewed by Simon Hausmann.
+
+        * WebKit.pro:
+
+2011-11-16  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        Unreviewed, rolling out r100266.
+        http://trac.webkit.org/changeset/100266
+
+        Broke WTR.
+
+        * Source/api.pri:
+
+2011-11-15  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Centralize hide_symbols and ensure all libs are built with symbol visibility & bsymbolic_functions
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri: Eliminate duplicated symbol stuff that lives now in default_post.prf.
+
+2011-11-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move the QtWebKit module file to match the layout of Qt's mkspecs
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2011-11-12  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Use MAIN_DEPENDENCY in GENERATE_* macros
+        https://bugs.webkit.org/show_bug.cgi?id=71365
+
+        Reviewed by Daniel Bates.
+
+        Use the MAIN_DEPENDENCY instead of DEPENDS in the custom build commands.
+        This adds better IDE support for such targets.
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2011-11-11  Shinya Kawanaka  <shinyak@google.com>
+
+        Implement legacy text check emulation in unified text check interface.
+        https://bugs.webkit.org/show_bug.cgi?id=70299
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2011-11-11  Alexis Menard  <alexis.menard@openbossa.org>
+
+        [Qt] Build fix of the private QML module with --no-webkit2.
+        https://bugs.webkit.org/show_bug.cgi?id=67707
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/QtWebKit.pro:
+
+2011-11-11  Alexis Menard  <alexis.menard@openbossa.org>
+
+        [Qt] Add a way to have experimental features in WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=67707
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Add the new private QML module in the build.
+
+        * Source/QtWebKit.pro:
+
+2011-11-10  Balazs Kelemen  <kbalazs@webkit.org>
+
+        [Qt] X11 plugins need to be reworked for Qt5
+        https://bugs.webkit.org/show_bug.cgi?id=70023
+
+        Reviewed by Simon Hausmann.
+
+        Rework our basic plugin support in a way that does
+        not need a bridge between Qt and X. The solution is
+        based on getting the content drawed by the plugin
+        from the server as an image and creating a QImage
+        from it.
+
+        * Source/api.pri: Link to xlib if necessary.
+
+2011-11-10  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Clean up build system
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/api.pri: Eliminate use of WebKit2.pri.
+
+2011-11-10  Alexis Menard  <alexis.menard@openbossa.org>
+
+        [Qt] Merge QTouchWebView and QDesktopWebView into one class
+        https://bugs.webkit.org/show_bug.cgi?id=71355
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Remove old tests and merge them into the new QQuickWebView directory.
+
+        * Source/tests.pri:
+
+2011-11-10  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Change semantics of the haveQt() function to match API promises
+
+        Having Qt 5 does not imply that we have Qt 4, from an API point of
+        view, as a major version can in theory break BC/SC. Our minimum
+        version of Qt 4 will always be the latest released version of Qt 4,
+        so the only place we should use haveQt(4, x) is when checking for
+        the minimum requirements.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/QtWebKit.pro:
+
+2011-11-10  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Make sure headers.pri has the right relative paths for install
+
+        The install rules are generated from api.pri which lives in Source,
+        which means the paths in headers.pri, which is the basis for the
+        install rules, needs to be relative to Source as well.
+
+        We were also installing the headers from the forwarding headers
+        directory, which was wrong, as those headers contained relative paths.
+
+        We now install the actual headers, by using headers.pri as a basis.
+
+        https://bugs.webkit.org/show_bug.cgi?id=71697
+
+        Reviewed by Simon Hausmann.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+        * sync.profile:
+
+2011-11-09  Shinya Kawanaka  <shinyak@google.com>
+
+        Internals.markerRangeForNode should be able to take markers by specifying a marker type.
+        https://bugs.webkit.org/show_bug.cgi?id=71792
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter: Exposed necessary symbols.
+
+2011-11-09  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Update project files.
+
+        * wscript:
+
+2011-11-09  Philippe Normand  <pnormand@igalia.com>
+
+        [GTK][DRT] window internals object is not reset after each test
+        https://bugs.webkit.org/show_bug.cgi?id=71890
+
+        Reviewed by Martin Robinson.
+
+        * Source/autotools/symbols.filter: Revert un-needed symbol.
+
+2011-11-09  Philippe Normand  <pnormand@igalia.com>
+
+        Unreviewed, attempt to fix GTK 32-bits Release build after r99691.
+
+        * Source/autotools/symbols.filter: Add the missing symbol for resetInternalsObject.
+
+2011-11-09  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Only copy framework headers once when debug_and_release is enabled
+
+        Otherwise we might end up in a race condition where we try to symlink
+        the headers directory in the makefile for debug and release at the same
+        time.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/api.pri:
+
+2011-11-08  Martin Robinson  <mrobinson@igalia.com>
+
+        Take another stab at fixing the GTK+ build.
+
+        * Source/autotools/symbols.filter: The symbols.filter file was missing a semicolon.
+
+2011-11-08  Daniel Bates  <dbates@webkit.org>
+
+        Attempt to fix the GTK build after <http://trac.webkit.org/changeset/99613>
+        (https://bugs.webkit.org/show_bug.cgi?id=71840)
+
+        * Source/autotools/symbols.filter: Add symbol _ZN7WebCore4Page13setPaginationERKNS0_10PaginationE.
+
+2011-11-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Use qmake's builtin rules for copying framework headers on Mac OS
+
+        Now that we generate the forwarding headers eiher as part of QtWebKit.pro
+        (for Qt 4.8), or as part of the root project file (for Qt 5), we can assume
+        that the files are there and use $$files() to list the files to be copied.
+
+        Reviewed by Csaba Osztrogonác.
+
+        * Source/api.pri:
+
+2011-11-08  Yuqiang Xian  <yuqiang.xian@intel.com>
+
+        Enable DFG JIT by default on X86 Linux and Mac platforms
+        https://bugs.webkit.org/show_bug.cgi?id=71686
+
+        Reviewed by Filip Pizlo.
+
+        Remove the DFG cmake option for Efl port as we'll determine whether to
+        switch on DFG or not based on build target platforms.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-11-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Ensure forwarding headers are generated before generating install rules
+
+        The install rule for headers depends on qmake being able to walk the list of
+        headers in the $build_root/include/QtWebKit directory, but this directory is
+        empty until we've generated the forwarding headers. So we need to make sure
+        the forwarding headers are generated _before_ we run qmake on the api project
+        file. This applies to Qt 4.8 only, as Qt 5 will run synqt as part of the
+        root project file (due to the sync.profile file).
+
+        https://bugs.webkit.org/show_bug.cgi?id=71697
+
+        Reviewed by Simon Hausmann.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+
+2011-11-07  ChangSeok Oh  <shivamidow@gmail.com>
+
+        [EFL] Support requestAnimationFrame API
+        https://bugs.webkit.org/show_bug.cgi?id=67112
+
+        Reviewed by Andreas Kling.
+
+        Add build-option for requestAnimationFrame feature.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-11-07  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Ensure we always export symbols for the QtWebKit API when building WebKit
+
+        Reviewed-by Simon Hausmann.
+
+        * Source/api.pri:
+
+2011-11-04  Philippe Normand  <pnormand@igalia.com>
+
+        [GTK] Disable VIDEO_TRACK for now
+        https://bugs.webkit.org/show_bug.cgi?id=71547
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * configure.ac: VIDEO_TRACK is still a moving target, it's best to
+        disable it for now.
+
+2011-11-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Don't build all of webkit when running build-jsc
+
+        In case the whole webkit project was built, but we then subsequently
+        want to build only JSC, we need to run make in the proper subdirectory.
+
+        This also means the incremental target needs to be added to all
+        makefiles.
+
+        Reviewed by Simon Hausmann.
+
+        * WebKit.pro:
+
+2011-11-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Refactor and clean up the qmake build system
+
+        The qmake build system has accumulated a bit of cruft and redundancy
+        over time. There's also a fairly tight coupling between how to build
+        the various targets, and _what_ to build, making it harder to add new
+        rules or sources. This patch aims to elevate these issues somewhat.
+
+        This is a short-list of the changes:
+
+          * The rules for how to build targets are now mostly contained as
+            prf-files in Tools/qmake/mkspecs/features. Using mkspecs also
+            allows us to do pre- and post-processing of each project file,
+            which helps to clean up the actual project files.
+
+          * Derived sources are no longer generated as a separate make-step
+            but is part of each target's project file as a subdir. Makefile
+            rules are used to ensure that we run make on the derived sources
+            before running qmake on the actual target makefile. This makes
+            it easier to keep a proper dependency between derived sources
+            and the target.
+
+          * We use GNU make and the compiler to generate dependencies on
+            UNIX-based systems running Qt 5. This allows us to lessen the
+            need to run qmake, which should reduce compile time.
+
+          * WebKit2 is now build by default if building with Qt 5. It can
+            be disabled by passing --no-webkit2 to build-webkit.
+
+        The result of these changes are hopefully a cleaner and easier
+        build system to modify, and faster build times due to no longer
+        running qmake on every single build. It's also a first step
+        towards possibly generating the list of sources using another
+        build system.
+
+        https://bugs.webkit.org/show_bug.cgi?id=71222
+
+        Reviewed by Simon Hausmann.
+
+        * Source/DerivedSources.pro: Removed.
+        * Source/QtWebKit.pro: Added.
+        * Source/WebKit.pri: Removed.
+        * Source/WebKit.pro: Removed.
+        * Source/api.pri: Added.
+        * Source/tests.pri: Added.
+        * WebKit.pro: Added.
+        * sync.profile: Renamed from Source/sync.profile.
+
+2011-11-03  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] Remove Maemo specific code paths
+        https://bugs.webkit.org/show_bug.cgi?id=71476
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/WebKit.pri:
+
+2011-11-03  Dongwoo Im  <dw.im@samsung.com>
+
+        [EFL] Enable the Page Visibility API.
+        https://bugs.webkit.org/show_bug.cgi?id=69127
+
+        Reviewed by Adam Barth.
+
+        Build system changes to support ENABLE(PAGE_VISIBILITY_API) on EFL port.
+
+        * Source/cmake/OptionsEfl.cmake: Add enabled ENABLE_PAGE_VISIBILITY_API definition.
+        * Source/cmakeconfig.h.cmake: ditto.
+
+2011-10-28  Adam Barth  <abarth@webkit.org>
+
+        Rename ExceptionCodeDescription.in to DOMExceptions.in
+        https://bugs.webkit.org/show_bug.cgi?id=71157
+
+        Reviewed by Eric Seidel.
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2011-10-28  Adam Barth  <abarth@webkit.org>
+
+        ExceptionCode.cpp shouldn't need to know about every feature that throws exceptions
+        https://bugs.webkit.org/show_bug.cgi?id=70890
+
+        Reviewed by Eric Seidel.
+
+        Add a code generation step.
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2011-10-27  Priit Laes  <plaes@plaes.org>
+
+        [GTK] Create .xz tarballs during distcheck
+        https://bugs.webkit.org/show_bug.cgi?id=71001
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Switched tarballs to use .xz compression.
+
+2011-10-27  Daniel Bates  <dbates@rim.com>
+
+        CMake: Add support to optionally install the built JavaScript shell
+        https://bugs.webkit.org/show_bug.cgi?id=71062
+
+        Reviewed by Antonio Gomes.
+
+        Adds a CMake option, called SHOULD_INSTALL_JS_SHELL, that when
+        defined will generate an installation rule to install the built
+        JavaScript shell into /bin (with respect to the prefix path).
+
+        By default, we don't define this option and hence don't generate
+        an installation rule for the JavaScript shell.
+
+        * Source/CMakeLists.txt:
+
+2011-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r98556.
+        http://trac.webkit.org/changeset/98556
+        https://bugs.webkit.org/show_bug.cgi?id=71031
+
+        The test added by the patch doesn't pass on Snow Leopard
+        (Requested by rniwa on #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2011-10-27  Shinya Kawanaka  <shinyak@google.com>
+
+        Implement legacy text check emulation in unified text check interface.
+        https://bugs.webkit.org/show_bug.cgi?id=70299
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2011-10-27  Philippe Normand  <pnormand@igalia.com> and Zan Dobersek  <zandobersek@gmail.com>
+
+        [GStreamer] WebAudio AudioFileReader implementation
+        https://bugs.webkit.org/show_bug.cgi?id=69834
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Check for libfftw and gstreamer-audio if WebAudio
+        build is enabled.
+
+2011-10-26  Alejandro G. Castro  <alex@igalia.com>
+
+        [GTK] Update NEWS and configure.ac for 1.7.1 release
+        https://bugs.webkit.org/show_bug.cgi?id=70932
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Bumped version number.
+
+2011-10-26  Alejandro G. Castro  <alex@igalia.com>
+
+        [GTK] [WK2] Add WebKit2 distcheck support
+        https://bugs.webkit.org/show_bug.cgi?id=70933
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am: Added WebKit2 compilation to the distcheck.
+        * configure.ac: Removed WebKit2 doc generation for the moment.
+
+2011-10-21  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        Remove QtScript source code from WebKit.
+        https://bugs.webkit.org/show_bug.cgi?id=64088
+
+        Reviewed by Tor Arne Vestbø.
+
+        Removed dead code that isn't developed anymore.
+
+        * Source/WebKit.pro:
+
+2011-10-19  Gustavo Noronha Silva  <gns@gnome.org>
+
+        [GTK] Streamline wk1 documentation build
+        https://bugs.webkit.org/show_bug.cgi?id=70447
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am: include the documentation's GNUmakefile.am;
+        * autogen.sh: we no longer call gtkdocize, since we now ship
+          a modified gtk-doc.make;
+        * configure.ac: no longer generate a separate GNUmakefile for
+          the documentation build.
+
+2011-10-18  Adam Barth  <abarth@webkit.org>
+
+        Always enable ENABLE(XPATH)
+        https://bugs.webkit.org/show_bug.cgi?id=70217
+
+        Reviewed by Eric Seidel.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2011-10-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Merge QML plugin for WebKit2 with the original WebKit1 plugin
+
+        We don't need a sepearate plugin, as we no longer expose the WK2
+        APIs under QtWebKit.experimental, but now use QtWebKit. The version
+        was also changed to 3.0 instead of 5.0, as the original plugin was
+        versioned 1.0, and bumping to 3.0 fits the scheme used by QtWebKit releases.
+
+        Reviewed by Andreas Kling.
+
+        * Source/WebKit.pro:
+
+2011-10-18  Zan Dobersek  <zandobersek@gmail.com>
+
+        [Gtk] Support for client-based geolocation
+        https://bugs.webkit.org/show_bug.cgi?id=64970
+
+        Reviewed by Martin Robinson.
+
+        Remove flag for enabling client-based geolocation since
+        it is used by default on Gtk port and hence not configurable.
+
+        * configure.ac:
+
+2011-10-17  Leandro Pereira  <leandro@profusion.mobi>
+
+        Unreviewed; actually enable/disable microdata support in CMake.
+
+        Follow-up to r97471, which did not plug the option to enable/disable
+        microdata into the buildsystem.
+
+        * Source/cmake/OptionsEfl.cmake: Add ENABLE_MICRODATA feature, turned off by default.
+        * Source/cmake/OptionsWinCE.cmake: Ditto.
+        * Source/cmakeconfig.h.cmake: Add ENABLE_MICRODATA #cmakedefine.
+
+2011-10-17  Ryosuke Niwa  <rniwa@webkit.org>
+
+        GTK build fix patch by Gustavo Noronha Silva.
+
+        * Source/autotools/symbols.filter:
+
+2011-10-17  Vamshikrishna Yellenki  <vamshi@motorola.com>
+
+        [webkit]Debug Build Bot failure
+        https://bugs.webkit.org/show_bug.cgi?id=70222
+
+        Reviewed by Xan Lopez.
+
+        * Source/autotools/symbols.filter: Corrected the filter name for getLocationAndLengthFronRange
+
+2011-10-16  Adam Barth  <abarth@webkit.org>
+
+        Always enable ENABLE(DOM_STORAGE)
+        https://bugs.webkit.org/show_bug.cgi?id=70189
+
+        Reviewed by Eric Seidel.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2011-10-15  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
+
+        [Qt] [Symbian] Remove support for the Symbian platform for the QtWebKit port
+        https://bugs.webkit.org/show_bug.cgi?id=69920
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/WebKit.pri:
+        * Source/WebKit.pro:
+
+2011-10-14  Mark Hahnenberg  <mhahnenberg@apple.com>
+
+        Rename virtual put to putVirtual
+        https://bugs.webkit.org/show_bug.cgi?id=69851
+
+        Reviewed by Darin Adler.
+
+        Renamed virtual versions of put to putVirtual in prepration for 
+        adding the static put to the MethodTable in ClassInfo since the 
+        compiler gets mad if the virtual and static versions have the same 
+        name.
+
+        * Source/autotools/symbols.filter:
+
+2011-10-14  Mark Hahnenberg  <mhahnenberg@apple.com>
+
+        Rename virtual put to putVirtual
+        https://bugs.webkit.org/show_bug.cgi?id=69851
+
+        Reviewed by Darin Adler.
+
+        Renamed virtual versions of put to putVirtual in prepration for 
+        adding the static put to the MethodTable in ClassInfo since the 
+        compiler gets mad if the virtual and static versions have the same 
+        name.
+
+        * Source/autotools/symbols.filter:
+
+2011-10-13  Arko Saha  <arko@motorola.com>
+
+        Microdata: Basic implementation of document.getItems() method.
+        https://bugs.webkit.org/show_bug.cgi?id=68610
+
+        Reviewed by Ryosuke Niwa.
+
+        Added ENABLE(MICRODATA) feature flag.
+
+        * configure.ac:
+
+2011-10-14  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [EFL] Add DumpRenderTreeSupportEfl
+        https://bugs.webkit.org/show_bug.cgi?id=68458
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/cmake/eflsymbols.filter: Export DumpRenderTreeSupportEfl
+        symbols so that DumpRenderTree can link to them.
+
+2011-10-12  Adam Barth  <abarth@webkit.org>
+
+        Remove ENABLE(XHTMLMP) and associated code
+        https://bugs.webkit.org/show_bug.cgi?id=69729
+
+        Reviewed by David Levin.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2011-10-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
+
+        Fix build with GLib 2.31
+        https://bugs.webkit.org/show_bug.cgi?id=69840
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: add check for pthread rwlock support.
+
+2011-10-10  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] [WebKit2] Make adding another unit test easier
+        https://bugs.webkit.org/show_bug.cgi?id=69409
+
+        Reviewed by Gustavo Noronha Silva.
+
+        * GNUmakefile.am: Include the new testing makefile.
+
+2011-10-11  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Remove all references to QTDIR_build and standalone_package
+
+        Qt is now modularized, which means we no longer import WebKit into
+        the Qt source tree. Instead we use git submodules, and building
+        QtWebKit as "part of Qt" is really building QtWebKit as from trunk.
+
+        To decrease the number of buildsystem configurations we also remove
+        the standalone_package code-path used when we were providing tarballs
+        with the derived sources pre-generated.
+
+        Reviewed by Simon Hausmann.
+
+        * Source/WebKit.pri:
+        * Source/WebKit.pro:
+
+2011-10-06  Fady Samuel  <fsamuel@chromium.org>
+
+        Code clean-up: Make RenderObject::absoluteBoundingBoxRect and associated methods const and make its parameter useTransforms no longer default to false
+        https://bugs.webkit.org/show_bug.cgi?id=69009
+
+        Reviewed by Simon Fraser.
+
+        * Source/autotools/symbols.filter:
+
+2011-10-06  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt][Wk2] Fix build with Qt 5 when QtScript is built as standalone module
+        https://bugs.webkit.org/show_bug.cgi?id=69520
+
+        Reviewed by Csaba Osztrogonác.
+
+        * Source/WebKit.pri: Introduce convenience qt5 scope.
+        * Source/WebKit.pro: Replace QT_MAJOR_VERSION stuff with qt5 scope.
+
+2011-10-06  Nayan Kumar K  <nayankk@motorola.com>
+
+        Provide configure option to switch between JSC and V8.
+        https://bugs.webkit.org/show_bug.cgi?id=69469
+
+        Reviewed by Philippe Normand.
+
+        This is first of the patches to support building of V8 with
+        WebKit GTK. With this patch, new command line switch named
+        '--with-jsengine' is introduced, using which we can choose to
+        build either jsc or v8.
+
+        * GNUmakefile.am:
+        * configure.ac:
+
+2011-10-04  Scott Graham  <scottmg@chromium.org>
+
+        Add GAMEPAD feature flag
+        https://bugs.webkit.org/show_bug.cgi?id=66859
+
+        Reviewed by Darin Fisher.
+
+        * configure.ac:
+
+2011-10-04  Varun Jain  <varunjain@chromium.org>
+
+        Fix position check for double tap gesture detection. A double tap
+        should not be detected if the two taps are far from each other.
+        https://bugs.webkit.org/show_bug.cgi?id=69270
+
+        Reviewed by Darin Fisher.
+
+        Test: Source/WebKit/chromium/tests/InnerGestureRecognizerTest.cpp
+
+        * platform/chromium/GestureRecognizerChromium.cpp:
+        (WebCore::GestureRecognizerChromium::isSecondClickInsideManhattanSquare):
+        (WebCore::GestureRecognizerChromium::updateValues):
+        (WebCore::GestureRecognizerChromium::click):
+        * platform/chromium/GestureRecognizerChromium.h:
+
+2011-10-04  Nayan Kumar K  <nayankk@motorola.com>
+
+        [WebKit2][gtk] Generate gtk-doc for WebKit2-GTK.
+        https://bugs.webkit.org/show_bug.cgi?id=69325
+
+        Reviewed by Gustavo Noronha Silva.
+
+        Documentation generation for WebKit2-GTK+ APIs
+        using gtk-doc.
+
+        * configure.ac:
+
+2011-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
+
+        Web Inspector: Remove http/tests/inspector/network/disabled-cache-crash.html.
+        https://bugs.webkit.org/show_bug.cgi?id=69332
+
+        Reviewed by Pavel Feldman.
+
+        * Source/autotools/symbols.filter:
+
+2011-09-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
+
+        QWidget and friends now live in the QtWidgets library. We update
+        includes in implementation files and private headers to us the
+        non-module-prefixed path, and leave the lookup for the include
+        path. For public headers we have to ifdef the includes as the
+        user might now have the modules we need in his QT config.
+
+        Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
+        have to update our code and use windowHandle() for setting the
+        parent relationships.
+
+        https://bugs.webkit.org/show_bug.cgi?id=68687
+
+        Reviewed by Andreas Kling.
+
+        * Source/WebKit.pro:
+
+2011-09-29  Sergio Villar Senin  <svillar@igalia.com>
+
+        [GTK] Bump version to 1.7.0
+        https://bugs.webkit.org/show_bug.cgi?id=69082
+
+        Reviewed by Martin Robinson.
+
+        Apart from bumping the library version to 1.7.0 this patch also
+        sets the libtool version to the same one we have for the stable
+        branch.
+
+        * configure.ac:
+
+2011-09-28  Martin Robinson  <mrobinson@igalia.com>
+
+        Fix the WebKit2 WebGL build.
+
+        * configure.ac: Add -ldl to the OPENGL_LIBS.
+
+2011-09-28  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [EFL] Bump minimum requirement for eina.
+        https://bugs.webkit.org/show_bug.cgi?id=68994
+
+        Reviewed by Ryosuke Niwa.
+
+        * Source/cmake/FindEFL.cmake:
+
+2011-09-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Unreviewed. Fix a build error in WebKit EFL.
+
+        When web socket is disabled, there is a build break in WebKit EFL port.
+        Currently, web socket is enabled by default in build-webkit script.
+        Thus, the web socket is also enabled in EFL script of cmake build system for now.
+        Because, WebKit EFL developers can't work on latest WebKit trunk.
+
+        However, IMO, we should fix build errors when web socket is disabled.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-09-27  Ulan Degenbaev  <ulan@chromium.org>
+
+        [v8] Code calling the typed array optimization script is fragile, depends on typed array hierarchy.
+
+        Install the flag, which indicates whether or not the optimization
+        script was executed, on the global object.
+
+        https://bugs.webkit.org/show_bug.cgi?id=68890
+
+        Reviewed by Kenneth Russell.
+
+        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
+
+2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r96108, r96111, r96113, and r96116.
+        http://trac.webkit.org/changeset/96108
+        http://trac.webkit.org/changeset/96111
+        http://trac.webkit.org/changeset/96113
+        http://trac.webkit.org/changeset/96116
+        https://bugs.webkit.org/show_bug.cgi?id=68913
+
+        Wait for working Qt5 (Requested by ossy on #webkit).
+
+        * Source/WebKit.pro:
+
+2011-09-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
+
+        QWidget and friends now live in the QtWidgets library. We update
+        includes in implementation files and private headers to us the
+        non-module-prefixed path, and leave the lookup for the include
+        path. For public headers we have to ifdef the includes as the
+        user might now have the modules we need in his QT config.
+
+        Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
+        have to update our code and use windowHandle() for setting the
+        parent relationships.
+
+        https://bugs.webkit.org/show_bug.cgi?id=68687
+
+        Reviewed by Andreas Kling.
+
+        * Source/WebKit.pro:
+
+2011-09-27  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Reorganize header files
+        https://bugs.webkit.org/show_bug.cgi?id=65616
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am: Initialize $libwebkitgtkincludedir to
+        $(prefix)/include/webkitgtk-<api-version>
+
+2011-09-26  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Remove FindFreetype.cmake
+        https://bugs.webkit.org/show_bug.cgi?id=68778
+
+        Reviewed by Adam Barth.
+
+        CMake has provided its own FindFreetype.cmake forever, so there is no
+        need to have another implementation in WebKit.
+
+        * Source/cmake/FindCairo.cmake: Use FREETYPE_{LIBRARIES,INCLUDE_DIRS}
+        instead of Freetype_{LIBRARIES,INCLUDE_DIRS}.
+        * Source/cmake/FindFreetype.cmake: Removed.
+        * Source/cmake/FindPango.cmake: Use FREETYPE_{LIBRARIES,INCLUDE_DIRS}
+        instead of Freetype_{LIBRARIES,INCLUDE_DIRS}.
+        * Source/cmake/OptionsEfl.cmake: Remove minimum required version
+        check, it has never been checked and Freetype 2.1.10 from 2005 is
+        already > 9.0.
+
+2011-09-26  Alejandro G. Castro  <alex@igalia.com>
+
+        [GTK] pot file is not properly remove during distcheck
+        https://bugs.webkit.org/show_bug.cgi?id=68797
+
+        Defined DOMAIN variable before DISTCLEANFILES because we are using
+        it there to identify the .pot file.
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am:
+
+2011-09-26  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Detect the operating system in a more generic way.
+        https://bugs.webkit.org/show_bug.cgi?id=67482
+
+        Reviewed by Adam Barth.
+
+        So far the buildsystem only considered Windows, Linux and Mac OS X as
+        valid operating systems, but any Unix (or at least the BSDs) should also
+        work fine.
+
+        By using the OS values CMake itself defines we can check for Unix
+        systems in a more generic fashion.
+
+        * Source/CMakeLists.txt:
+
+2011-09-26  Jay Soffian  <jaysoffian@gmail.com>
+
+        chrome.dll!WebCore::ApplyStyleCommand::applyBlockStyle ReadAV@NULL (64db547804532a84be2e53721e499e9e)
+        https://bugs.webkit.org/show_bug.cgi?id=51639
+
+        Reviewed by Ryosuke Niwa.
+
+        Add missing window.layoutTestController.dumpAsText so that test output matches expectation.
+
+        * LayoutTests/editing/style/justify-without-enclosing-block.xhtml:
+
+2011-09-25  Adam Barth  <abarth@webkit.org>
+
+        Finish removing PLATFORM(BREWMP) by removing associated code
+        https://bugs.webkit.org/show_bug.cgi?id=68779
+
+        Reviewed by Sam Weinig.
+
+        * Source/cmake/WebKitPackaging.cmake:
+        * wscript:
+
+2011-09-25  Adam Barth  <abarth@webkit.org>
+
+        Remove PLATFORM(HAIKU) and associated code
+        https://bugs.webkit.org/show_bug.cgi?id=68774
+
+        Reviewed by Sam Weinig.
+
+        * Source/cmake/WebKitPackaging.cmake:
+        * wscript:
+
+2011-09-25  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Remove FindLibXlst.cmake
+        https://bugs.webkit.org/show_bug.cgi?id=68770
+
+        Reviewed by Adam Barth.
+
+        This file should have never been committed -- the library it looks for
+        is called libxslt, not libxlst, so it has never really been used. When
+        the buildsystem looked for libxslt, it used CMake's own LibXslt.cmake
+        instead.
+
+        * Source/cmake/FindLibXlst.cmake: Removed.
+
+2011-09-24  Adam Barth  <abarth@webkit.org>
+
+        Always enable ENABLE(OFFLINE_WEB_APPLICATIONS)
+        https://bugs.webkit.org/show_bug.cgi?id=68767
+
+        Reviewed by Eric Seidel.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2011-09-24  Adam Barth  <abarth@webkit.org>
+
+        Remove ENABLE(WCSS) and associated code
+        https://bugs.webkit.org/show_bug.cgi?id=68759
+
+        Reviewed by Darin Adler.
+
+        * configure.ac:
+
+2011-09-23  Yuqiang Xian  <yuqiang.xian@intel.com>
+
+        Add JSVALUE32_64 support to DFG JIT
+        https://bugs.webkit.org/show_bug.cgi?id=67460
+
+        Reviewed by Gavin Barraclough.
+
+        Add cmake options to enable DFG JIT compilation for EFL port
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-09-23  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        [CMake] Detect amd64 as a valid 64-bit architecture.
+        https://bugs.webkit.org/show_bug.cgi?id=67481
+
+        Reviewed by Oliver Hunt.
+
+        Some operating systems (generally the BSDs) use amd64 instead of x86_64
+        to report they're running on 64 bits, so consider it a valid value.
+
+        * Source/CMakeLists.txt:
+
+2011-09-23  Adam Klein  <adamk@chromium.org>
+
+        Add ENABLE_MUTATION_OBSERVERS feature flag
+        https://bugs.webkit.org/show_bug.cgi?id=68732
+
+        Reviewed by Ojan Vafai.
+
+        This flag will guard an implementation of the "Mutation Observers" proposed in
+        http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html
+
+        * configure.ac:
+
+2011-09-23  Varun Jain  <varunjain@google.com>
+
+        Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
+        https://bugs.webkit.org/show_bug.cgi?id=68198
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter:
+
+2011-09-23  Mark Hahnenberg  <mhahnenberg@apple.com>
+
+        Add static version of JSCell::visitChildren
+        https://bugs.webkit.org/show_bug.cgi?id=68404
+
+        Reviewed by Darin Adler.
+
+        In this patch we just extract the bodies of the virtual visitChildren methods
+        throughout the JSCell inheritance hierarchy out into static methods, which are 
+        now called from the virtual methods.  This is an intermediate step in trying to 
+        move the virtual-ness of visitChildren into our own custom vtable stored in 
+        ClassInfo.  We need to convert the methods to static methods in order to be 
+        able to more easily store and refer to them in our custom vtable since normal 
+        member methods store some implicit information in their types, making it 
+        impossible to store them generically in ClassInfo.
+
+        * Source/autotools/symbols.filter:
+
+2011-09-21  Julien Chaffraix  <jchaffraix@webkit.org>
+
+        Crash in RenderBox::paintMaskImages when GraphicsContext's painting is disabled
+        https://bugs.webkit.org/show_bug.cgi?id=68133
+
+        Reviewed by Darin Adler.
+
+        * Source/autotools/symbols.filter: Added the mangled symbols needed for window.internals
+
+2011-09-21  Joshua Bell  <jsbell@chromium.org>
+
+        IndexedDB: compare strings without decoding
+        https://bugs.webkit.org/show_bug.cgi?id=68554
+
+        Reviewed by Tony Chang.
+
+        Resolves a FIXME in IndexedDB that was also identified as a hotspot
+        during profiling. Yields a small performance improvement.
+
+        * Source/WebCore/storage/IDBLevelDBCoding.cpp:
+        * Source/WebCore/storage/IDBLevelDBCoding.h:
+        * Source/WebKit/chromium/tests/IDBLevelDBCodingTest.cpp:
+
+011-09-21  Leandro Pereira  <leandro@profusion.mobi>
+
+        Unreviewed. Remove unused ENABLE_AS_IMAGE flag after r95234 from
+        Options{Efl,WinCE}.cmake.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+
+2011-09-20  ChangSeok Oh  <shivamidow@gmail.com>
+
+        [GTK] requestAnimationFrame support for gtk port
+        https://bugs.webkit.org/show_bug.cgi?id=66280
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: Add an option to enable requestAnimationFrame for gtk port.
+
+2011-09-20  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Update NEWS and configure.ac for 1.5.90 release
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac:
+
+2011-09-19  Adam Barth  <abarth@webkit.org>
+
+        Always enable ENABLE(EVENTSOURCE)
+        https://bugs.webkit.org/show_bug.cgi?id=68414
+
+        Reviewed by Eric Seidel.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2011-09-17  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        [EFL] Bump minimum requirement for cairo to 1.10.
+        https://bugs.webkit.org/show_bug.cgi?id=68226
+
+        Reviewed by Adam Barth.
+
+        * Source/cmake/FindCairo.cmake: Check required version.
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-09-16  Ulan Degenbaev  <ulan@chromium.org>
+
+        [V8] REGRESSION(94783): calling the binding script during V8 context creation slows down page loads
+        https://bugs.webkit.org/show_bug.cgi?id=68237
+
+        Reviewed by Kenneth Russell.
+
+        Call the binding script lazily on the first run of the set() method of
+        a typed array.
+
+        * ../../Source/WebCore/WebCore.gypi:
+        * ../../Source/WebCore/bindings/v8/V8BindingScripts.cpp: Removed.
+        * ../../Source/WebCore/bindings/v8/V8BindingScripts.h: Removed.
+        * ../../Source/WebCore/bindings/v8/V8DOMWindowShell.cpp:
+        * ../../Source/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp:
+        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
+        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:
+        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustomScript.js:
+
+2011-09-16  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Disable WebKit2 by default in configure.ac, but enable it with build-webkit
+        https://bugs.webkit.org/show_bug.cgi?id=68178
+
+        Reviewed by Xan Lopez.
+
+        * configure.ac: Do not build WebKit2 by default. Re-add pkgconfig support
+        for WebKit2.
+
+2011-09-15  Adam Barth  <abarth@webkit.org>
+
+        Rename ENABLE(DATABASE) to ENABLE(SQL_DATABASE)
+        https://bugs.webkit.org/show_bug.cgi?id=68205
+
+        Reviewed by Eric Seidel.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2011-09-15  Varun Jain  <varunjain@google.com>
+
+        Add method to scroll current node to specific position in Chromium WebKit API
+        https://bugs.webkit.org/show_bug.cgi?id=68192
+
+        Reviewed by Dimitri Glazkov.
+
+        *  Source/WebKit/chromium/public/WebView.h:
+        *  Source/WebKit/chromium/src/WebViewImpl.cpp:
+        *  Source/WebKit/chromium/src/WebViewImpl.h:
+
+2011-09-15  Eric Seidel  <eric@webkit.org>
+
+        Remove ENABLE(SVG_AS_IMAGE) since all major ports have it on by default
+        https://bugs.webkit.org/show_bug.cgi?id=68182
+
+        Reviewed by Adam Barth.
+
+        * configure.ac:
+
+2011-09-15  Eric Seidel  <eric@webkit.org>
+
+        Remove ENABLE_SVG_ANIMATION as all major ports have it on by default
+        https://bugs.webkit.org/show_bug.cgi?id=68022
+
+        Reviewed by Ryosuke Niwa.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2011-09-15  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r95163.
+        http://trac.webkit.org/changeset/95163
+        https://bugs.webkit.org/show_bug.cgi?id=68180
+
+        [Qt] The QT_GCC_X variables were removed in Qt5 by accident.
+        (Requested by darktears on #webkit).
+
+        * Source/WebKit.pri:
+
+2011-09-14  Alexis Menard  <alexis.menard@openbossa.org>
+
+        [Qt] Replace QT_GCC_X as they don't exist in Qt5 anymore.
+        https://bugs.webkit.org/show_bug.cgi?id=68114
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Replace QT_GCC_X variables, they have been removed in Qt5. It was
+        actually wrong to use them because they tell about which GCC version
+        Qt has been compiled, not the current version of GCC use to build webkit.
+        I use gcc -dumpversion to get it.
+
+        * Source/WebKit.pri:
+
+2011-09-14  Ulan Degenbaev  <ulan@chromium.org>
+
+        [v8] Improve performance of typed array copy constructor taking Array
+        https://bugs.webkit.org/show_bug.cgi?id=68015
+
+        Reviewed by Kenneth Russell.
+
+        Invoke the 'set' method of the constructed array instead of
+        copying the elements of the source array one by one.
+
+        Copy constructor tests already exist.
+
+        * ../../Source/WebCore/WebCore.gypi:
+        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.cpp: Added.
+        * ../../Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:
+
+2011-09-14  Csaba Osztrogonác  <ossy@webkit.org>
+
+        [GTK] Unreviewed buildfix after r95107.
+
+        * configure.ac:
+
+2011-09-13  Eric Seidel  <eric@webkit.org>
+
+        Remove ENABLE_SVG_USE as <use> is required by HTML5
+        https://bugs.webkit.org/show_bug.cgi?id=68019
+
+        Reviewed by Ryosuke Niwa.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2011-09-13  Eric Seidel  <eric@webkit.org>
+
+        Remove ENABLE_SVG_FOREIGN_OBJECT as it is a required part of HTML5
+        https://bugs.webkit.org/show_bug.cgi?id=68018
+
+        Reviewed by Ryosuke Niwa.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
+
+        Add replacement functions for gdk ones.
+        https://bugs.webkit.org/show_bug.cgi?id=66323
+
+        Reviewed by Martin Robinson.
+
+        * Source/cmake/FindPango.cmake:
+
+2011-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
+
+        [Qt] Remove common.pri
+        https://bugs.webkit.org/show_bug.cgi?id=67814
+
+        Reviewed by Andreas Kling.
+
+        * Source/WebKit.pri: Move rules from common.pri to WebKit.pri.
+        * Source/common.pri: Removed.
+
+2011-09-08  Mark Pilgrim  <pilgrim@chromium.org>
+
+        Test how HTMLAnchorElement.getParameter reacts to too few arguments
+        https://bugs.webkit.org/show_bug.cgi?id=66522
+
+        Reviewed by Adam Barth.
+
+        * LayoutTests/fast/dom/HTMLAnchorElement/get-parameter-expected.txt: Added.
+        * LayoutTests/fast/dom/HTMLAnchorElement/get-parameter.html: Added.
+
+2011-09-08  Varun Jain  <varunjain@google.com>
+
+        Implement double tap detection in GestureRecognizerChromium
+        https://bugs.webkit.org/show_bug.cgi?id=67709
+
+        Reviewed by Dimitri Glazkov.
+
+        *  Source/WebCore/page/EventHandler.cpp:
+        *  Source/WebCore/platform/PlatformGestureEvent.h:
+
+2011-09-08  Ulan Degenbaev  <ulan@chromium.org>
+
+        [v8] Improve performance of typed array set() taking Array
+        https://bugs.webkit.org/show_bug.cgi?id=63644
+
+        Reviewed by Kenneth Russell.
+
+        Overwrite the native 'set' method of the type arrays with JS
+        implementation after initialization of the global context.
+
+        Add tests for invalid and boundary offsets. No performance tests.
+
+        * LayoutTests/fast/canvas/webgl/array-unit-tests-expected.txt:
+        * LayoutTests/fast/canvas/webgl/array-unit-tests.html:
+        * Source/WebCore/WebCore.gyp/WebCore.gyp:
+        * Source/WebCore/WebCore.gypi:
+        * Source/WebCore/bindings/v8/V8BindingScripts.cpp: Added.
+        * Source/WebCore/bindings/v8/V8BindingScripts.h: Added.
+        * Source/WebCore/bindings/v8/V8DOMWindowShell.cpp:
+        * Source/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp:
+        * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustomScript.js: Added.
+
+2011-09-08  Varun Jain  <varunjain@google.com>
+
+        Split Tap gesture detection into TapDown and Tap.
+        We need this distinction to highlight links when they are first touched. The link is
+        followed only if the tap is completed, otherwise, if a scroll is detected, the highlight
+        goes away.
+        https://bugs.webkit.org/show_bug.cgi?id=67645
+
+        Reviewed by Dimitri Glazkov.
+
+        *  Source/WebCore/page/EventHandler.cpp:
+        *  Source/WebCore/platform/PlatformGestureEvent.h:
+
+2011-09-07  Alexei Svitkine  <asvitkine@chromium.org>
+
+        Add test infrastructure to test rubber-banding overhang drawing along with layout tests for existing Chromium Mac overhang drawing in the non-gpu path.
+        https://bugs.webkit.org/show_bug.cgi?id=67511
+
+        Reviewed by Dimitri Glazkov.
+
+        * Source/autotools/symbols.filter:
+
+2011-09-06  Ryosuke Niwa  <rniwa@webkit.org>
+
+        REGRESSION(r94274): FormManagerTest.PreviewForm and FillFormNonEmptyField fail on chromium
+        https://bugs.webkit.org/show_bug.cgi?id=67453
+
+        Reviewed by Kent Tamura.
+
+        Add symbols for internals.
+
+        * Source/autotools/symbols.filter:
+
+2011-09-04  Robin Dunn  <robin@alldunn.com>
+
+        [wx] Enable wxWebKit to run using the wxGC Cairo backend on platforms other than GTK.
+        https://bugs.webkit.org/show_bug.cgi?id=67577
+
+        Reviewed by Kevin Ollivier.
+
+        * wscript:
+
+2011-08-30  Aaron Colwell  <acolwell@chromium.org>
+
+        Add MediaSource API to HTMLMediaElement
+        https://bugs.webkit.org/show_bug.cgi?id=64731
+
+        Reviewed by Eric Carlson.
+
+        * configure.ac:
+
+2011-08-30  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Cleanup after r94050 and r94054.
+
+        * Source/autotools/symbols.filter:
+
+2011-08-30  Philippe Normand  <pnormand@igalia.com>
+
+        Unreviewed, another attempt to fix GTK build after r94038.
+
+        * Source/autotools/symbols.filter:
+
+2011-08-29  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Build fix attempt after r94038.
+
+        * Source/autotools/symbols.filter:
+
+2011-08-26  Varun Jain  <varunjain@google.com>
+
+        WebViewImpl::selectionRange should return range in the right order.
+        https://bugs.webkit.org/show_bug.cgi?id=66973
+
+        Reviewed by Darin Fisher.
+
+        *  Source/WebKit/chromium/public/WebWidget.h:
+        *  Source/WebKit/chromium/src/WebViewImpl.cpp:
+
+2011-08-25  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] Switch to GTK+ 3.x by default
+        https://bugs.webkit.org/show_bug.cgi?id=63047
+
+        * configure.ac: Modify the default value of the --with-gtk option to be 3.0.
+
+2011-08-24  Philippe Normand  <pnormand@igalia.com>
+
+        [GTK] bump GStreamer requirement to 0.10.30
+        https://bugs.webkit.org/show_bug.cgi?id=66860
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac:
+
+2011-08-23  Steve Block  <steveblock@google.com>
+
+        Remove all mention of removed Android files from build scripts
+        https://bugs.webkit.org/show_bug.cgi?id=66755
+
+        Reviewed by Tony Gentilcore.
+
+        * Source/cmake/WebKitPackaging.cmake:
+
+2011-08-19  MORITA Hajime  <morrita@google.com>
+
+        Spell-checking doesn't recognize word boundaries on contests inserted by execCommand('insertHTML')
+        https://bugs.webkit.org/show_bug.cgi?id=65902
+
+        Reviewed by Ryosuke Niwa.
+        
+        Add export for window.internals object.
+
+        * Source/autotools/symbols.filter:
+
+2011-08-16  Andras Becsi  <abecsi@webkit.org>
+
+        Reviewed by Csaba Osztrogonác.
+
+        Need AtomicStrings for the various font family names
+        https://bugs.webkit.org/show_bug.cgi?id=28024
+
+        * Source/cmake/WebKitMacros.cmake: Add new macro.
+
+2011-08-11  Xan Lopez  <xlopez@igalia.com>
+
+        [GTK] Update NEWS and configure.ac for 1.5.2 release
+
+        Reviewed by Gustavo Noronha.
+
+        * configure.ac: update for release.
+
+2011-08-10  Varun Jain  <varunjain@google.com>
+
+        WebViewImpl::selectionRange should return false if there is no selection
+        https://bugs.webkit.org/show_bug.cgi?id=66012
+
+        Reviewed by Darin Fisher.
+
+        *  Source/WebKit/chromium/src/WebViewImpl.cpp:
+
+2011-08-10  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Do not build LocaleToScriptMappingICU.cpp for now
+        as ICU on Leopard is too old to build this.
+        
+        * wscript:
+
+2011-08-08  Adrienne Walker  <enne@google.com>
+
+        Add testing for --force-compositing-mode to windows.internal
+        https://bugs.webkit.org/show_bug.cgi?id=65777
+
+        Reviewed by Adam Barth.
+
+        Add exports for Document::settings().
+
+        * Source/autotools/symbols.filter:
+
+2011-08-09  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r92683.
+        http://trac.webkit.org/changeset/92683
+        https://bugs.webkit.org/show_bug.cgi?id=65921
+
+         "Breaks Qt --minimal build. Revert pending update of the Qt
+        minimal configuration" (Requested by simathur on #webkit).
+
+        * Source/WebKit.pri:
+
+2011-08-09  Siddharth Mathur  <siddharth.mathur@nokia.com>
+
+        [Qt] Simplify code by removing QT_NO_DESKTOPSERVICES and QT_NO_NETWORKDISKCACHE
+        https://bugs.webkit.org/show_bug.cgi?id=65880
+
+        Reviewed by Andreas Kling.
+
+        QDesktopServices and QNetworkDiskCache have been around for a while now. Kill flags which 
+        check for their feature flags. Assume that any reasonable Qt build provides them. 
+
+        * Source/WebKit.pri:
+
+2011-08-06  Aron Rosenberg  <arosenberg@logitech.com>
+
+        Reviewed by Benjamin Poulain.
+
+        [Qt] Fix build with Intel compiler on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=65088
+
+        Disable Intel Compiler warning 873 - function "" has no corresponding operator
+        delete (to be called if an exception is thrown during initialization of an
+        allocated object).
+
+        * Source/WebKit.pri:
+
+2011-08-03  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix after gesture recognizer changes.
+
+        * wscript:
+
+2011-08-02  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
+
+        [Qt] [WK2] Expose web view classes to QML
+        https://bugs.webkit.org/show_bug.cgi?id=65339
+
+        Reviewed by Benjamin Poulain.
+
+        * Source/WebKit.pro: Include QML plugin subdir in the build system for WK2.
+
+2011-08-03  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Install web and plugin processes in libexecdir instead of bindir
+        https://bugs.webkit.org/show_bug.cgi?id=65600
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am: Initialize libexec_PROGRAMS, only used by
+        WebKit2 in this moment.
+
+2011-08-03  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Reorganize pkg-config files
+        https://bugs.webkit.org/show_bug.cgi?id=65548
+
+        Reviewed by Martin Robinson.
+
+        * GNUmakefile.am: Initialize pkgconfigdir and pkgconfig_DATA which
+        are common to all libraries.
+        * configure.ac: Update pkg-config files.
+
+2011-08-02  Varun Jain  <varunjain@google.com>
+
+        Missing null check in WebViewImpl::selectionRange
+        https://bugs.webkit.org/show_bug.cgi?id=65561
+
+        Reviewed by Darin Fisher.
+
+        *  Source/WebKit/chromium/src/WebViewImpl.cpp:
+
+2011-08-01  Scott Graham  <scottmg@chromium.org>
+
+        REGRESSION (r39725?): Resources removed from document can not be freed until the document is deleted
+        https://bugs.webkit.org/show_bug.cgi?id=61006
+
+        Reviewed by Antti Koivisto.
+
+        Update exports for test harness.
+
+        * Source/autotools/symbols.filter:
+
+2011-08-01  Hayato Ito  <hayato@chromium.org>
+
+        Add support for getting an element in shadow root by its id into a window.internals object.
+        https://bugs.webkit.org/show_bug.cgi?id=64587
+
+        Reviewed by Hajime Morita.
+
+        * Source/autotools/symbols.filter:
+
+2011-08-01  Neil Roberts  <neil@linux.intel.com>
+
+        build: Fix finding the headers for GStreamer
+
+        The cmake files to find the various GStreamer packages were all
+        checking for the header gst/gst.h. However if gst-plugins-base is
+        installed into a separate prefix from gstreamer then all of these
+        tests would only pick up the gstreamer include path so the build
+        would fail. This patch changes it to try and find a file
+        appropriate to each package.
+
+        https://bugs.webkit.org/show_bug.cgi?id=64933
+
+        Reviewed by Martin Robinson.
+
+        * Source/cmake/FindGStreamer-App.cmake:
+        * Source/cmake/FindGStreamer-Base.cmake:
+        * Source/cmake/FindGStreamer-Interfaces.cmake:
+        * Source/cmake/FindGStreamer-Pbutils.cmake:
+        * Source/cmake/FindGStreamer-Plugins-Base.cmake:
+        * Source/cmake/FindGStreamer-Video.cmake:
+
+2011-07-31  Daniel Bates  <dbates@webkit.org>
+
+        Add missing semicolons to build fix attempt in <http://trac.webkit.org/changeset/92080>.
+
+        * Source/autotools/symbols.filter:
+
+2011-07-31  Daniel Bates  <dbates@webkit.org>
+
+        Some more fixes to the GTK build after r92059 (https://bugs.webkit.org/show_bug.cgi?id=65419).
+
+        * Source/autotools/symbols.filter: Export symbols needed by Internals.
+
+2011-07-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
+
+        [Qt] Fix build in Qt 5 of QDeclarativeWebView
+        https://bugs.webkit.org/show_bug.cgi?id=65258
+
+        Reviewed by Andreas Kling.
+
+        In Qt 5, the QGraphicsView-based classes for QtQuick are in the
+        qtquick1 module, including QDeclarativeItem and QDeclarativeView.
+
+        * Source/WebKit.pro:
+
+2011-07-26  Andras Becsi  <abecsi@webkit.org>
+
+        [Qt] [WK2] Disable the build with Qt versions older than 5.0
+        https://bugs.webkit.org/show_bug.cgi?id=65189
+
+        Reviewed by Csaba Osztrogonác.
+
+        * Source/WebKit.pro: Abort if not using Qt5.
+
+2011-07-20  Pierre Rossi  <pierre.rossi@gmail.com>
+
+        [Qt] Qt5 Build Fix: Disable the legacy mac assert macros.
+
+        This is done in order to prevent collision with the recently
+        introduced function QSslCertificate::verify() in Qt5.
+
+        https://bugs.webkit.org/show_bug.cgi?id=64855
+
+        Reviewed by Simon Hausmann.
+
+        * Source/WebKit.pri:
+
+2011-07-19  Robert Sesek  <rsesek@chromium.org>
+
+        [Chromium] Need to remove app/ from DEPS
+        https://bugs.webkit.org/show_bug.cgi?id=64750
+
+        Reviewed by Tony Chang.
+
+        Remove Source/WebKit/chromium/app/ from .gitignore.
+
+        * .gitignore:
+
+2011-07-18  MORITA Hajime  <morrita@google.com>
+
+        [ShadowContentElement] forwarded node should be able to access its hosting content element.
+        https://bugs.webkit.org/show_bug.cgi?id=64251
+
+        Reviewed by Dimitri Glazkov.
+
+        Added GTK symbols for new window.internals methods.
+        
+        * Source/autotools/symbols.filter:
+
+2011-07-15  Martin Robinson  <mrobinson@igalia.com>
+
+        Build fixes for WebKit2. Ensure that all generated sources are
+        on nodist primaries, that they are on forward declared variables
+        so that BUILT_SOURCES is calculated properly and that zlib is 
+        included during linking (for WOFF support).
+
+        * GNUmakefile.am:
+        * Source/autotools/webkit.m4: Include test for zlib.
+
+2011-07-15  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Build plugin process by default when building WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=64592
+
+        Reviewed by Philippe Normand.
+
+        * configure.ac:
+
+2011-07-14  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Implement Plugin Process
+        https://bugs.webkit.org/show_bug.cgi?id=60546
+
+        * configure.ac: Always check for gtk2 when building the plugin
+        process.
+
+2011-07-14  MORITA Hajime  <morrita@google.com>
+
+        Unreviewed, rolling out r90976, r90981, and r90985.
+        http://trac.webkit.org/changeset/90976
+        http://trac.webkit.org/changeset/90981
+        http://trac.webkit.org/changeset/90985
+        https://bugs.webkit.org/show_bug.cgi?id=64251
+
+        build break
+
+        * Source/autotools/symbols.filter:
+
+2011-07-14  MORITA Hajime <morrita@google.com>
+
+        Unreviewed attempt to build fix.
+        
+        * Source/autotools/symbols.filter:
+
+2011-07-13  MORITA Hajime  <morrita@google.com>
+
+        [ShadowContentElement] forwarded node should be able to access its hosting content element.
+        https://bugs.webkit.org/show_bug.cgi?id=64251
+
+        Reviewed by Dimitri Glazkov.
+
+        Added GTK symbols for new window.internals methods.
+        
+        * Source/autotools/symbols.filter:
+
+2011-07-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        [EFL] Add Fullscreen API feature
+        https://bugs.webkit.org/show_bug.cgi?id=63975
+
+        This is just to add disabled ENABLE_FULLSCREEN_API to OptionEFl.cmake.
+        ENABLE_FULLSCREEN_API will be enabled after finishing missing implementations.
+
+        Reviewed by Adam Barth.
+
+        * Source/cmake/OptionsEfl.cmake: Add disabled ENABLE_FULLSCREEN_API feature.
+        * Source/cmakeconfig.h.cmake: ditto.
+
+2011-07-05  Vsevolod Vlasov  <vsevik@chromium.org>
+
+        Web Inspector: Show content for plugin requests in network panel.
+        https://bugs.webkit.org/show_bug.cgi?id=30080
+
+        Added GTK symbols for new window.internals methods.
+
+        Reviewed by Pavel Feldman.
+
+        * Source/autotools/symbols.filter:
+
+2011-07-04  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r90373.
+        http://trac.webkit.org/changeset/90373
+        https://bugs.webkit.org/show_bug.cgi?id=63917
+
+        Breaks Qt Linux Release minimal (Requested by vsevik on
+        #webkit).
+
+        * Source/autotools/symbols.filter:
+
+2011-07-04  Vsevolod Vlasov  <vsevik@chromium.org>
+
+        Web Inspector: Show content for plugin requests in network panel.
+        https://bugs.webkit.org/show_bug.cgi?id=30080
+
+        Reviewed by Pavel Feldman.
+
+        * Source/autotools/symbols.filter:
+
+2011-07-01  Tony Chang  <tony@chromium.org>
+
+        Add chromium sql directory to git ignore.
+
+        * .gitignore:
+
+2011-07-01  Patrick Gansterer  <paroga@webkit.org>
+
+        Reviewed by Daniel Bates.
+
+        [CMake] Add cpu detection for MIPS
+        https://bugs.webkit.org/show_bug.cgi?id=63693
+
+        * Source/CMakeLists.txt:
+
+2011-07-01  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Add DeviceOrientation feature
+        https://bugs.webkit.org/show_bug.cgi?id=63720
+
+        Add configure option to enable/disable DeviceOrientation feature.
+
+        * configure.ac:
+
+2011-06-28  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Rename 3D transforms to 3D rendering
+        https://bugs.webkit.org/show_bug.cgi?id=63508
+
+        WebKitGtk+ provides the 3D transforms feature, but it was
+        renamed to 3D Rendering. This features supports CSS 3D trasnforms.
+
+        * configure.ac: Rename ENABLE_3D_TRANSFORMS to ENABLE_3D_RENDERING.
+
+2011-06-27  Alexis Menard  <alexis.menard@openbossa.org>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [Qt] Remove Phonon MediaPlayer from the tree.
+        https://bugs.webkit.org/show_bug.cgi?id=63448
+
+        Remvove from the build.
+
+        * Source/WebKit.pri:
+
+2011-06-24  Dominic Cooney  <dominicc@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Convert shadow DOM-related tests to use window.internals
+        https://bugs.webkit.org/show_bug.cgi?id=61671
+
+        * Source/autotools/symbols.filter: Export symbols for GTK.
+
+2011-06-24  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Add more debug options to compilation
+        https://bugs.webkit.org/show_bug.cgi?id=63318
+
+        Add --enable-debug-symbols to enable/disable compilation with
+        debug symbols and --enable-debug-features to enable/disable debug
+        features. Both options are unconditionally enabled for debug
+        builds.
+
+        * configure.ac:
+
+2011-06-23  Oliver Hunt  <oliver@apple.com>
+
+        Qt build-fix: remove warning that no other platform appears to use.
+        Someone can add it back if they really feel it's needed.
+
+        * Source/WebKit.pri:
+
+2011-06-22  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Reviewed by Antonio Gomes.
+
+        [EFL] Add an option to enable Device Orientation Event.
+        https://bugs.webkit.org/show_bug.cgi?id=63120
+
+        ADD ENABLE_DEVICE_ORIENTATION.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-06-22  Nate Chapin  <japhet@chromium.org>
+
+        Reviewed by Adam Barth.
+
+        Add symbols required for window.internals.
+        https://bugs.webkit.org/show_bug.cgi?id=62066
+
+        * Source/autotools/symbols.filter:
+
+2011-06-22  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by Adam Roben.
+
+        [GTK] Implement pixel dump support for WebKitTestRunner
+        https://bugs.webkit.org/show_bug.cgi?id=58242
+
+        * GNUmakefile.am: Reference the new ImageDiff GNUmakefile.
+
+2011-06-21  MORITA Hajime  <morrita@google.com>
+
+        Unreviewed, rolling out r89401 and r89403.
+        http://trac.webkit.org/changeset/89401
+        http://trac.webkit.org/changeset/89403
+        https://bugs.webkit.org/show_bug.cgi?id=62970
+
+        Breaks mac build and mistakenly enables the spellcheck API
+
+        * configure.ac:
+
+2011-06-20  MORITA Hajime <morrita@google.com>
+
+        Reviewed by Kent Tamura.
+        
+        Spellcheck API should be build-able.
+        https://bugs.webkit.org/show_bug.cgi?id=62970
+
+        * configure.ac:
+
+2011-06-20  MORITA Hajime  <morrita@google.com>
+
+        Unreviewed GTK build fix.
+        This change corrected syntax error on symbols.filter.
+
+        * Source/autotools/symbols.filter:
+
+2011-06-19  MORITA Hajime <morrita@google.com>
+
+        Unreviewed GTK build fix.
+
+        * Source/autotools/symbols.filter:
+
+2011-06-19  MORITA Hajime  <morrita@google.com>
+
+        Reviewed by Dimitri Glazkov.
+
+        The internals object should have createShadowContentElement()
+        https://bugs.webkit.org/show_bug.cgi?id=62432
+
+        * Source/autotools/symbols.filter: Added some more symbols necessary for
+        window.internals to function to the global symbol list.
+        
+
+2011-06-19  Adam Bergkvist  <adam.bergkvist@ericsson.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Enable Media Stream feature and make it default on
+        https://bugs.webkit.org/show_bug.cgi?id=60394
+
+        * configure.ac:
+
+2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
+        https://bugs.webkit.org/show_bug.cgi?id=60687
+
+        Replace GdkRectangle by cairo_rectangle_int_t.
+
+        * configure.ac: Check whether Cairo version is higher than 1.10.
+
+2011-06-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Reviewed by Eric Seidel.
+
+        [CMAKE] Enable METER_TAG of HTML5
+        https://bugs.webkit.org/show_bug.cgi?id=62697
+
+        Support for meter tag of html5 in CMake build system. However, this feature is
+        only enabled on EFL port now. 
+
+        * Source/cmake/OptionsEfl.cmake: Add ENABLE_METER_TAG.
+        * Source/cmakeconfig.h.cmake:ditto.
+
+2011-06-16  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] Remove support for GTK+2 in WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=62794
+
+        * configure.ac: Make WebKit2 require GTK+ 3.x.
+
+2011-06-15  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Rubber stamped by Eric Seidel.
+
+        [CMAKE][WK2] Add an option to build webkit2.
+        https://bugs.webkit.org/show_bug.cgi?id=62260
+
+        Add ENABLE_WEBKIT2 to build WebKit2 using CMake and ENABLE_WEBKIT to disable
+        WebKit.
+
+        * Source/CMakeLists.txt:
+        * Source/cmake/WebKitFS.cmake:
+
+2011-06-14  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Reviewed by Eric Seidel.
+
+        [CMAKE] Add ENABLE_TOUCH_ICON_LOADING feature.
+        https://bugs.webkit.org/show_bug.cgi?id=62604
+
+        Add feature to enable or disable ENABLE_TOUCH_ICON which supports
+        apple-touch-icon and apple-touch-icon-precomposed in link tag.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-06-13  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Add configure option to enable/disable register protocol handler
+        https://bugs.webkit.org/show_bug.cgi?id=62534
+
+        This patch just adds configure option to enable/disable register protocol handler.
+        So, it needs more code to use register protocol handler.
+
+        * configure.ac: Add configure option to enable/disable register protocol handler.
+
+2011-06-13  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Need to report whether touch icon loading is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=62532
+
+        It needs to report whether touch icon loading is enabled.
+
+        * configure.ac: Updated option parsing code for loading touch icons.
+
+2011-06-13  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        Reviewed by Eric Seidel.
+
+        [CMAKE] Conditionally generate DerivedSources
+        https://bugs.webkit.org/show_bug.cgi?id=62277
+
+        Speedup build by not generating DerivedSources of features that are
+        disabled. This was already been done for some features like ENABLE_SVG
+        and now it's extended the following features: ENABLE_DATABASE,
+        ENABLE_INDEXED_DATABASE, ENABLE_DOM_STORAGE, ENABLE_XPATH,
+        ENABLE_OFFLINE_WEB_APPLICATIONS, ENABLE_WEB_SOCKETS,
+        ENABLE_DATA_TRANSFER_ITEMS.
+
+        * Source/cmakeconfig.h.cmake: add definition for INDEXED_DATABASE
+
+2011-06-10  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [CMAKE] Add generic support for building with WebGL
+        https://bugs.webkit.org/show_bug.cgi?id=62376
+
+        Add files that need to be compiled in every port for supporting WebGL.
+        Each port still needs to add its specific files to
+        CMakeLists${PORT}.txt. Therefore we do not enable WebGL in any port
+        yet.
+
+        * Source/CMakeLists.txt: Add files needed to support WebGL.
+        * Source/cmake/OptionsCommon.cmake: Find required OpenGL package.
+        * Source/cmakeconfig.h.cmake: define ENABLE_WEBGL this feature is
+        enabled.
+
+2011-06-09  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        Reviewed by Antonio Gomes.
+
+        [CMAKE] Never let USER_AGENT defined to nothing
+        https://bugs.webkit.org/show_bug.cgi?id=62410
+
+        This patch is similar to r88342, but sets WEBKIT_USER_AGENT_*
+        definitions only if that port defined it. A port might prefer to set it
+        in other place, e.g. a header that is part of the public API (like GTK
+        does).
+
+        By using #cmakedefine instead of #define, if that variable is not set
+        in CMake it will expand to:
+
+        /* #define WEBKIT_USER_AGENT_MAJOR_VERSION */
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-06-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Reviewed by Antonio Gomes.
+
+        [EFL] Enable PROGRESS_TAG feature
+        https://bugs.webkit.org/show_bug.cgi?id=62212
+
+        * Source/cmake/OptionsEfl.cmake: Turn on PROGRESS_TAG by default.
+
+2011-06-08  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [CMAKE] Never let a WTF_FEATURE defined to nothing
+        https://bugs.webkit.org/show_bug.cgi?id=60820
+
+        If a port doesn't want to give the user some configure options,
+        nevertheless it would have to define this feature as OFF. Otherwise
+        there's a build error because the generated cmakeconfig.h is not
+        parsed correctly by ENABLE macro, which expects each feature to be
+        either undefined or defined to TRUE/FALSE.
+
+        * Source/cmake/WebKitFeatures.cmake: Use a variable with the same name
+        of the feature, which allows CONFIGURE_FILE() to replace it in the new
+        cmakeconfig.h.cmake.
+        * Source/cmakeconfig.h.cmake: use #cmakedefine01 instead of #define
+        with another variable. This way the feature will always be 0 or 1 and
+        it will never be left undefined.
+
+2011-06-07  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        Reviewed by Antonio Gomes.
+
+        [EFL] Remove Ecore_X bits from PlatformScreenEfl
+        https://bugs.webkit.org/show_bug.cgi?id=61649
+
+        Remove the need for Ecore_X and some X calls by always using
+        new functions available in EFL to get the screen size.
+
+        * Source/cmake/FindEFL.cmake: Bump ecore and ecore-evas versions.
+
+2011-06-07  Andreas Kling  <andreas.kling@nokia.com>
+
+        Reviewed by Laszlo Gombos.
+
+        [Qt] Fix Symbian build with RVCT 2.x
+        https://bugs.webkit.org/show_bug.cgi?id=62205
+
+        RVCT 2.x doesn't support (or need) the --signed_bitfields command-line
+        option, so restrict it to version 4.x of the compiler.
+
+        * Source/WebKit.pri:
+
+2011-06-06  Martin Robinson  <mrobinson@igalia.com>
+
+        Fix the GTK+ build by ensuring that the autogenerated sources
+        necessary for libWebCoreInternals are recorded in a predeclared
+        variable before assigning to BUILT_SOURCES.
+
+        * GNUmakefile.am: Assign libWebCoreInternals built sources to
+        libwebcoreinternals_built_sources before adding to the source list
+        and to BUILT_SOURCES.
+
+2011-06-06  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Fix the GTK+ build.
+
+        * GNUmakefile.am: Add javascriptcore_cflags variable.
+
+2011-06-04  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Restore the PPC build and allow users to specify architectures
+        to build on Mac.
+
+        * wscript:
+
+2011-06-04  Adam Barth  <abarth@webkit.org>
+
+        Configure new commit-queue instance.  (Please ignore.)
+
+2011-06-03  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by Dimitri Glazkov.
+
+        Teach Gtk build about window.internals
+        https://bugs.webkit.org/show_bug.cgi?id=61071
+
+        * Source/autotools/symbols.filter: Added some symbols necessary for
+        window.internals to function to the global symbol list.
+
+2011-06-03  Alexis Menard  <alexis.menard@openbossa.org>
+
+        Reviewed by Benjamin Poulain.
+
+        [Qt] Build fix of QtWebKit 2.2 when inside Qt tree with GCC 4.6.
+        https://bugs.webkit.org/show_bug.cgi?id=61957
+
+        When building inside the Qt source tree, qmake always append the mkspecs
+        defines after ours. We have to workaround and make sure that we append
+        our flags after the qmake variable used inside Qt. This workaround was provided
+        by our qmake folks. We need to append in both case because qmake behave differently
+        when called with -spec or via SUBDIR+=.
+
+        * Source/WebKit.pri:
+
+2011-06-02  Alexis Menard  <alexis.menard@openbossa.org>
+
+        Reviewed by Andreas Kling.
+
+        [Qt] Build fix of QtWebKit 2.2 when inside Qt tree with GCC 4.6.
+        https://bugs.webkit.org/show_bug.cgi?id=61957
+
+        When building inside the Qt source tree, qmake always append the mkspecs
+        defines after ours. We have to workaround and make sure that we append 
+        our flags after the qmake variable used inside Qt. This workaround was provided 
+        by our qmake folks.
+
+        * Source/WebKit.pri:
+
+2011-03-30  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by Adam Roben.
+
+        [GTK] [WebKit2] Implement a basic WebKitTestRunner
+        https://bugs.webkit.org/show_bug.cgi?id=57068
+
+        * GNUmakefile.am: Added reference to WebKitTestRunner GNUmakefile.
+
+2011-05-31  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        Bump version to 1.5.1.
+
+        * configure.ac:
+
+2011-05-25  Gregg Tavares  <gman@chromium.org>
+
+        Reviewed by Kenneth Russell.
+
+        Add 'noExtensions' option to Web/GraphicsContext3D attributes.
+        https://bugs.webkit.org/show_bug.cgi?id=61460
+
+        * Source/WebCore/html/canvas/WebGLRenderingContext.cpp:
+        * Source/WebCore/platform/graphics/GraphicsContext3D.h:
+        * Source/WebKit/chromium/public/WebGraphicsContext3D.h:
+        * Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:
+
+2011-05-24  Keishi Hattori  <keishi@webkit.org>
+
+        Reviewed by Kent Tamura.
+
+        Disable textfield implementation of <input type=color>. Add INPUT_COLOR feature flag. Add input color sanitizer.
+        https://bugs.webkit.org/show_bug.cgi?id=61273
+
+        * configure.ac: Added INPUT_COLOR feature flag.
+
+2011-05-24  Jay Civelli  <jcivelli@chromium.org>
+
+        Reviewed by Adam Barth.
+
+        Adding MHTML reading support.
+        https://bugs.webkit.org/show_bug.cgi?id=7168
+
+        * configure.ac:
+
+2011-05-23  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Rubber stamped by Eric Seidel.
+
+        [CMAKE] Refactoring wtf related code.
+        https://bugs.webkit.org/show_bug.cgi?id=60146
+
+        Move WTF_INCLUDE_DIRECTORIES to Source/JavaScriptCore/wtf/CMakeLists.txt.
+
+        * Source/cmake/OptionsCommon.cmake:
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-05-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Unreviewed. Fix build break.
+
+        * Source/cmake/WebKitMacros.cmake: Add -i option in order to include Lookup.h
+
+2011-05-16  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Enable building GTK port with ENABLE_PLUGIN_PROCESS=1
+        https://bugs.webkit.org/show_bug.cgi?id=58223
+
+        * configure.ac: Add configure option to enable/disable plugin
+        process.
+
+2011-05-12  Gregg Tavares  <gman@chromium.org>
+
+        Reviewed by Kenneth Russell.
+
+        Add option to select GraphicsContext3D implementation.
+        https://bugs.webkit.org/show_bug.cgi?id=60297
+
+        * Source/WebKit/chromium/DEPS:
+        * Tools/DumpRenderTree/chromium/DumpRenderTree.cpp:
+
+2011-05-12  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        Reviewed by Antonio Gomes.
+
+        [CMAKE] Add option to unconditionally enable/disable a feature
+        https://bugs.webkit.org/show_bug.cgi?id=60643
+
+        Create an argument to be used in WEBKIT_FEATURE macro, allowing a port
+        to enable a feature without showing to user that it can be disabled.
+        This is useful if a port needs an option to be always ON/OFF and
+        changing it will break the build.
+
+        This way it's possible to add mandatory features to each port without
+        touching the cmakeconfig.cmake file.
+
+        * Source/cmake/WebKitFeatures.cmake:
+
+2011-05-11  Dmitry Lomov  <dslomov@google.com>
+
+        Reviewed by David Levin.
+
+        https://bugs.webkit.org/show_bug.cgi?id=59561
+        Switch TestWebKitAPI to GTest
+
+        Fixes Makefiles and WinCairo build as well
+
+        * Source/ThirdParty/gtest/README.WebKit:
+        * Source/ThirdParty/gtest/msvc/gtest-md.vcproj:
+        * Source/ThirdParty/gtest/xcode/Config/General.xcconfig:
+        * Source/ThirdParty/gtest/xcode/Makefile: Added.
+
+2011-05-09  Dmitry Lomov  <dslomov@google.com>
+
+        Reviewed by Sam Weinig.
+        
+        Switch TestWebKitAPI to GTest
+        https://bugs.webkit.org/show_bug.cgi?id=59561
+
+        * Source/ThirdParty/gtest/README.WebKit:
+        * Source/ThirdParty/gtest/msvc/gtest-md.vcproj:
+
+2011-05-09  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Gustavo Noronha.
+
+        Fix logic in GCC version detection, it was reversed.
+
+        * configure.ac:
+
+2011-05-09  Alexis Menard  <alexis.menard@openbossa.org>
+
+        Reviewed by Andreas Kling.
+
+        [Qt] Fix the build on Embedded Linux.
+        https://bugs.webkit.org/show_bug.cgi?id=60347
+
+        qpa is the name for lighthouse but the old name for Qt for Embedded Linux should
+        still be used in order to build properly.
+
+        * Source/WebKit.pri:
+
+2011-05-05  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Add LocalizedDateNone.cpp to the build.
+
+        * wscript:
+
+2011-05-05  Prasanth Ullattil  <prasanth.ullattil@nokia.com>
+
+        Reviewed by Simon Hausmann.
+
+        Install correct header files for webkit.
+
+        Since WebKit is no longer inside Qt, we can remove the detection for
+        that.
+
+        [Qt] Install targets are not working correctly for modularized Qt and QtWebkit
+        https://bugs.webkit.org/show_bug.cgi?id=57621
+
+        * Source/sync.profile:
+
+2011-05-05  Adam Barth  <abarth@webkit.org>
+
+        Remove a couple stray mentions of WML that I missed before.
+
+        * configure.ac:
+
+2011-05-05  Alexis Menard  <alexis.menard@openbossa.org>
+
+        Reviewed by Benjamin Poulain.
+
+        [Qt] Make QtWebKit build when using gcc 4.6.0
+        https://bugs.webkit.org/show_bug.cgi?id=60265
+
+        If QtWebKit is compiled with gcc 4.6.0 and the build is not done
+        with c++0x support we need to deactivate warnings about compatibility.
+        Some WebKit types have names which conflicts with upcoming c++0x
+        types. If QtWebKit is built with c++0x support, WebKit has code to
+        fallback to the standard type rather than the WebKit implementation.
+        For example nullptr will be the one of the std if build options turns on
+        c++0x support.
+
+        * Source/WebKit.pri:
+
+2011-05-04  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Fix warnings in webkit.m4 with autoconf 2.68
+        https://bugs.webkit.org/show_bug.cgi?id=60189
+
+        Use AC_LANG_SOURCE when passing source code to AC_COMPILE_IFELSE
+        to remove warnings.
+
+        * Source/autotools/webkit.m4: ditto.
+
+2011-05-04  Martin Robinson  <mrobinson@igalia.com>
+
+        Fix the WebKitGTK+ build.
+
+        * configure.ac: Added option parsing code for loading touch icons.
+
+2011-05-03  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        Reviewed by Xan Lopez.
+
+        [CMAKE] Remove C++0x compat mode warnings for GCC >= 4.6.0
+        https://bugs.webkit.org/show_bug.cgi?id=60041
+
+        Hardcode -Wno-c++0x-compat for the default compiler (if version >=
+        4.6.0) until our codebase is ready. This is the same as done for
+        autotools.
+
+        * Source/cmake/WebKitHelpers.cmake: ditto.
+
+2011-05-03  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        Unreviewed, rolling out r85624.
+        http://trac.webkit.org/changeset/85624
+
+        The same command is used also for make_names.pl, which breaks
+        the build.
+
+        * Source/cmake/OptionsCommon.cmake: ditto.
+
+2011-05-03  Leandro Pereira  <leandro@profusion.mobi>
+
+        [EFL] Unreviewed build fix for NETWORK_BACKEND=curl.
+
+        Force linking with zlib so that uncompress() exists.
+
+        * Source/cmake/OptionsEfl.cmake: Find zlib.
+
+2011-05-03  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        [CMAKE] Unreviewed build fix for gcc >= 4.6
+
+        Same fix as done in r84123. CMake explicitly pass the arguments to
+        make_names.pl, so let's make them the same.
+
+        * Source/cmake/OptionsCommon.cmake: ditto.
+
+2011-05-02  Adam Klein  <adamk@chromium.org>
+
+        Reviewed by Tony Chang.
+
+        Roll chromium DEPS to r83722, add new crypto directory to DEPS
+        https://bugs.webkit.org/show_bug.cgi?id=59992
+
+        * .gitignore:
+        Ignore new chromium/crypto directory.
+
+2011-05-03  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Reviewed by Eric Seidel.
+
+        [GTK] Build webkit1 even when webkit2 is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=59695
+
+        * GNUmakefile.am:
+        * configure.ac:
+
+2011-05-01  ojab  <ojab@ojab.ru>
+
+        Reviewed by Eric Seidel.
+
+        --disable-video-track if --disable-video
+        https://bugs.webkit.org/show_bug.cgi?id=59605
+
+        * configure.ac:
+
+2011-04-29  Dean Jackson  <dino@apple.com>
+
+        Reviewed by Simon Fraser.
+
+        Add ENABLE macro for WebKitAnimation
+        https://bugs.webkit.org/show_bug.cgi?id=59729
+
+        Add new feature to toggle WebKit Animation API.
+
+        * configure.ac:
+
+2011-04-29  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Unreviewed build fix. Fix library copying logic for wxMSW 2.9.x.
+
+        * wscript:
+
+2011-04-28  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Remove WML
+        https://bugs.webkit.org/show_bug.cgi?id=59678
+
+        Remove WML configuration option from the CMake build system.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-04-28  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [Gtk] Split JSC and WebCore builds
+        https://bugs.webkit.org/show_bug.cgi?id=19428
+
+        Add a pkg-config file for JavaScriptCoreGTK+.
+
+        * configure.ac: generate the final pkg-config file from our .in
+        file.
+
+2011-04-28  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [Gtk] Split JSC and WebCore builds
+        https://bugs.webkit.org/show_bug.cgi?id=19428
+
+        Build JavaScriptCore as a libtool shared library instead of a
+        private convenience library.
+
+        * GNUmakefile.am: remove convenience library definition for jsc.
+
+2011-04-28  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Remove C++0x compat mode warnings for GCC >= 4.6.0
+        https://bugs.webkit.org/show_bug.cgi?id=59718
+
+        Hardcode -Wno-c++0x-compat for the default compiler (if version >=
+        4.6.0) until our codebase is ready.
+
+        * configure.ac: do that.
+
+2011-04-27  Yi Shen  <yi.4.shen@nokia.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [Qt] Upstream Symbian platform plugin
+        https://bugs.webkit.org/show_bug.cgi?id=58435
+
+        Upstream Symbian platform plugin.
+
+        * Source/WebKit.pro: Add platformplugin path to the SUBDIRS.
+
+2011-04-27  Steve Block  <steveblock@google.com>
+
+        Reviewed by David Levin.
+
+        Remove Android build system
+        https://bugs.webkit.org/show_bug.cgi?id=48111
+
+        This is to avoid the maintenance burden until the Android port is
+        fully upstreamed.
+
+        * Source/Android.mk: Removed.
+
+2011-04-26  Kevin Ollivier  <kevino@theolliviers.com>
+
+        Rubberstamped by Eric Seidel.
+
+        Enable waf to be used to build other ports
+        https://bugs.webkit.org/show_bug.cgi?id=58213
+
+        * wscript:
+
+2011-04-22  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r84627.
+        http://trac.webkit.org/changeset/84627
+        https://bugs.webkit.org/show_bug.cgi?id=59271
+
+        It broke Symbian build (Requested by Ossy on #webkit).
+
+        * Source/WebKit.pro:
+
+2011-04-22  Yi Shen  <yi.4.shen@nokia.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [Qt] Upstream Symbian platform plugin
+        https://bugs.webkit.org/show_bug.cgi?id=58435
+
+        Upstream Symbian platform plugin.
+
+        * Source/WebKit.pro: Add platformplugin path to the SUBDIRS.
+
+2011-04-21  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Adam Roben.
+
+        Add a feature define to allow <details> and <summary> to be disabled
+        https://bugs.webkit.org/show_bug.cgi?id=59118
+        <rdar://problem/9257045>
+
+        * configure.ac:
+
+2011-04-18  Evan Martin  <evan@chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        [chromium] expose title direction to webkit client
+        https://bugs.webkit.org/show_bug.cgi?id=58823
+
+        *  Tools/DumpRenderTree/chromium/LayoutTestController.cpp:
+        *  Tools/DumpRenderTree/chromium/LayoutTestController.h:
+        Adapt to new API.  Expose title direction to JS so it can be tested.
+
+        *  Tools/DumpRenderTree/chromium/WebViewHost.cpp:
+        *  Tools/DumpRenderTree/chromium/WebViewHost.h:
+        Provide new API.
+
+2011-04-18  Hans Wennborg  <hans@chromium.org>
+
+        Reviewed by Steve Block.
+
+        LevelDB backend for IndexedDB
+        https://bugs.webkit.org/show_bug.cgi?id=57372
+
+        Add LevelDB wrappers to Android.mk.
+
+        * Source/Android.mk:
+
+2011-04-18  Patrick Gansterer  <paroga@webkit.org>
+
+        Reviewed by Pavel Feldman.
+
+        REGRESSION (r81479): generate-inspector-idl fails on native win32
+        https://bugs.webkit.org/show_bug.cgi?id=58315
+
+        Disable git autocrlf for Inspector.json.
+
+        * .gitattributes:
+
+2011-04-16  Patrick Gansterer  <paroga@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Rename PLATFORM(CAIRO) to USE(CAIRO)
+        https://bugs.webkit.org/show_bug.cgi?id=55192
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-04-15  Shishir Agrawal  <shishir@chromium.org>
+
+        Reviewed by James Robinson.
+
+        Add a flag to guard Page Visibility API changes.
+        https://bugs.webkit.org/show_bug.cgi?id=58464
+
+        Initial draft at:
+        http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0175.html
+
+        * configure.ac:
+
+2011-04-15  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        * configure.ac: bump to 1.5.0, 1.4.0 will be released from a
+        branch and was already cut off.
+
+2011-04-15  Anna Cavender  <annacc@chromium.org>
+
+        Reviewed by Eric Carlson.
+
+        Renaming TRACK feature define to VIDEO_TRACK
+        https://bugs.webkit.org/show_bug.cgi?id=53556
+
+        * configure.ac:
+
+2011-04-13  Dmitry Lomov  <dslomov@google.com>
+
+        Reviewed by David Levin.
+
+        Add GTest unit-testing framework to WebKit
+        https://bugs.webkit.org/show_bug.cgi?id=58507
+
+        * Source/ThirdParty/gtest/CHANGES: Added.
+        * Source/ThirdParty/gtest/CMakeLists.txt: Added.
+        * Source/ThirdParty/gtest/CONTRIBUTORS: Added.
+        * Source/ThirdParty/gtest/COPYING: Added.
+        * Source/ThirdParty/gtest/Makefile.am: Added.
+        * Source/ThirdParty/gtest/README: Added.
+        * Source/ThirdParty/gtest/README.WebKit: Added.
+        * Source/ThirdParty/gtest/codegear/gtest.cbproj: Added.
+        * Source/ThirdParty/gtest/codegear/gtest.groupproj: Added.
+        * Source/ThirdParty/gtest/codegear/gtest_all.cc: Added.
+        * Source/ThirdParty/gtest/codegear/gtest_link.cc: Added.
+        * Source/ThirdParty/gtest/codegear/gtest_main.cbproj: Added.
+        * Source/ThirdParty/gtest/codegear/gtest_unittest.cbproj: Added.
+        * Source/ThirdParty/gtest/configure.ac: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest-death-test.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest-message.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest-param-test.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest-param-test.h.pump: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest-spi.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest-test-part.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest-typed-test.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest_pred_impl.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/gtest_prod.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-death-test-internal.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-filepath.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-internal.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-linked_ptr.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-param-util-generated.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-param-util-generated.h.pump: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-param-util.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-port.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-string.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-tuple.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-tuple.h.pump: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-type-util.h: Added.
+        * Source/ThirdParty/gtest/include/gtest/internal/gtest-type-util.h.pump: Added.
+        * Source/ThirdParty/gtest/m4/acx_pthread.m4: Added.
+        * Source/ThirdParty/gtest/m4/gtest.m4: Added.
+        * Source/ThirdParty/gtest/make/Makefile: Added.
+        * Source/ThirdParty/gtest/msvc/gtest-md.sln: Added.
+        * Source/ThirdParty/gtest/msvc/gtest-md.vcproj: Added.
+        * Source/ThirdParty/gtest/msvc/gtest.sln: Added.
+        * Source/ThirdParty/gtest/msvc/gtest.vcproj: Added.
+        * Source/ThirdParty/gtest/msvc/gtest_main-md.vcproj: Added.
+        * Source/ThirdParty/gtest/msvc/gtest_main.vcproj: Added.
+        * Source/ThirdParty/gtest/msvc/gtest_prod_test-md.vcproj: Added.
+        * Source/ThirdParty/gtest/msvc/gtest_prod_test.vcproj: Added.
+        * Source/ThirdParty/gtest/msvc/gtest_unittest-md.vcproj: Added.
+        * Source/ThirdParty/gtest/msvc/gtest_unittest.vcproj: Added.
+        * Source/ThirdParty/gtest/run_tests.py: Added.
+        * Source/ThirdParty/gtest/samples/prime_tables.h: Added.
+        * Source/ThirdParty/gtest/samples/sample1.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample1.h: Added.
+        * Source/ThirdParty/gtest/samples/sample10_unittest.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample1_unittest.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample2.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample2.h: Added.
+        * Source/ThirdParty/gtest/samples/sample2_unittest.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample3-inl.h: Added.
+        * Source/ThirdParty/gtest/samples/sample3_unittest.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample4.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample4.h: Added.
+        * Source/ThirdParty/gtest/samples/sample4_unittest.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample5_unittest.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample6_unittest.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample7_unittest.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample8_unittest.cc: Added.
+        * Source/ThirdParty/gtest/samples/sample9_unittest.cc: Added.
+        * Source/ThirdParty/gtest/scripts/fuse_gtest_files.py: Added.
+        * Source/ThirdParty/gtest/scripts/gen_gtest_pred_impl.py: Added.
+        * Source/ThirdParty/gtest/scripts/gtest-config.in: Added.
+        * Source/ThirdParty/gtest/scripts/pump.py: Added.
+        * Source/ThirdParty/gtest/scripts/test/Makefile: Added.
+        * Source/ThirdParty/gtest/scripts/upload.py: Added.
+        * Source/ThirdParty/gtest/scripts/upload_gtest.py: Added.
+        * Source/ThirdParty/gtest/src/gtest-all.cc: Added.
+        * Source/ThirdParty/gtest/src/gtest-death-test.cc: Added.
+        * Source/ThirdParty/gtest/src/gtest-filepath.cc: Added.
+        * Source/ThirdParty/gtest/src/gtest-internal-inl.h: Added.
+        * Source/ThirdParty/gtest/src/gtest-port.cc: Added.
+        * Source/ThirdParty/gtest/src/gtest-test-part.cc: Added.
+        * Source/ThirdParty/gtest/src/gtest-typed-test.cc: Added.
+        * Source/ThirdParty/gtest/src/gtest.cc: Added.
+        * Source/ThirdParty/gtest/src/gtest_main.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-death-test_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-filepath_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-linked_ptr_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-listener_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-message_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-options_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-param-test2_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-param-test_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-param-test_test.h: Added.
+        * Source/ThirdParty/gtest/test/gtest-port_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-test-part_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-tuple_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-typed-test2_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-typed-test_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest-typed-test_test.h: Added.
+        * Source/ThirdParty/gtest/test/gtest-unittest-api_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_all_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_break_on_failure_unittest.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_break_on_failure_unittest_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_color_test.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_color_test_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_env_var_test.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_env_var_test_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_environment_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_filter_unittest.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_filter_unittest_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_help_test.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_help_test_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_list_tests_unittest.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_list_tests_unittest_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_main_unittest.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_nc.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_nc_test.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_no_test_unittest.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_output_test.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_output_test_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_output_test_golden_lin.txt: Added.
+        * Source/ThirdParty/gtest/test/gtest_output_test_golden_win.txt: Added.
+        * Source/ThirdParty/gtest/test/gtest_pred_impl_unittest.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_prod_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_repeat_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_shuffle_test.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_shuffle_test_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_sole_header_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_stress_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_test_utils.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_throw_on_failure_ex_test.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_throw_on_failure_test.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_throw_on_failure_test_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_uninitialized_test.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_uninitialized_test_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_unittest.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_xml_outfile1_test_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_xml_outfile2_test_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_xml_outfiles_test.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_xml_output_unittest.py: Added.
+        * Source/ThirdParty/gtest/test/gtest_xml_output_unittest_.cc: Added.
+        * Source/ThirdParty/gtest/test/gtest_xml_test_utils.py: Added.
+        * Source/ThirdParty/gtest/test/production.cc: Added.
+        * Source/ThirdParty/gtest/test/production.h: Added.
+        * Source/ThirdParty/gtest/test/run_tests_util.py: Added.
+        * Source/ThirdParty/gtest/test/run_tests_util_test.py: Added.
+        * Source/ThirdParty/gtest/xcode/Config/DebugProject.xcconfig: Added.
+        * Source/ThirdParty/gtest/xcode/Config/FrameworkTarget.xcconfig: Added.
+        * Source/ThirdParty/gtest/xcode/Config/General.xcconfig: Added.
+        * Source/ThirdParty/gtest/xcode/Config/ReleaseProject.xcconfig: Added.
+        * Source/ThirdParty/gtest/xcode/Config/StaticLibraryTarget.xcconfig: Added.
+        * Source/ThirdParty/gtest/xcode/Config/TestTarget.xcconfig: Added.
+        * Source/ThirdParty/gtest/xcode/Resources/Info.plist: Added.
+        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/Info.plist: Added.
+        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj: Added.
+        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/runtests.sh: Added.
+        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/widget.cc: Added.
+        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/widget.h: Added.
+        * Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/widget_test.cc: Added.
+        * Source/ThirdParty/gtest/xcode/Scripts/runtests.sh: Added.
+        * Source/ThirdParty/gtest/xcode/Scripts/versiongenerate.py: Added.
+        * Source/ThirdParty/gtest/xcode/gtest.xcodeproj/project.pbxproj: Added.
+
+2011-04-13  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [CMAKE] Separate DerivedSources.
+        https://bugs.webkit.org/show_bug.cgi?id=58427
+
+        Seperate DerivedSources/ to DerivedSources/WebCore and
+        DerivedSources/JavaScriptCore.
+
+        * Source/CMakeLists.txt:
+        * Source/cmake/OptionsCommon.cmake:
+        * Source/cmake/WebKitFS.cmake:
+        * Source/cmake/WebKitHelpers.cmake:
+        * Source/cmake/WebKitMacros.cmake:
+
+2011-04-13  Tony Chang  <tony@chromium.org>
+
+        Ignore files generated from glu.gyp.
+
+        * .gitignore:
+
+2011-03-28  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Kenneth Russell.
+
+        Move libtess from WebCore/thirdparty to ThirdParty
+        https://bugs.webkit.org/show_bug.cgi?id=57288
+
+        We're putting third party code in Source/ThirdParty these days.
+
+        * Source/ThirdParty/glu: Copied from Source/WebCore/thirdparty/glu.
+        * Source/ThirdParty/glu/glu.gyp: Added.
+
+2011-04-12  Thouraya ANDOLSI  <thouraya.andolsi@st.com>
+
+        Reviewed by Eric Seidel.
+
+        [QT] Enable JIT build for SH4 platforms.
+        https://bugs.webkit.org/show_bug.cgi?id=58317
+        add disable_uitools for SH4 platforms.
+
+        * Source/WebKit.pri:
+
+2011-04-11  Anna Cavender  <annacc@chromium.org>
+
+        Reviewed by Eric Carlson.
+
+        Setup ENABLE(TRACK) feature define
+        https://bugs.webkit.org/show_bug.cgi?id=53556
+
+        * configure.ac:
+
+2011-04-11  Varun Jain  <varunjain@chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        Resolving FIXME to make new WebWidget method pure virtual since all downstream classes have implemented the method.
+        https://bugs.webkit.org/show_bug.cgi?id=58245
+
+        *  Source/WebKit/chromium/public/WebWidget.h:
+
+2011-04-11  Thouraya ANDOLSI  <thouraya.andolsi@st.com>
+
+        Reviewed by Oliver Hunt.
+
+        SH4 JIT SUPPORT.
+        https://bugs.webkit.org/show_bug.cgi?id=44329
+
+        Enable JIT support for SH4 platforms.
+
+        * configure.ac:
+
+2011-04-11  Andreas Kling  <andreas.kling@nokia.com>
+
+        Unreviewed Qt build fix, QT_CONFIG doesn't have uitools on bots.
+
+        * Source/WebKit.pri:
+
+2011-04-09  Keith Kyzivat  <keith.kyzivat@nokia.com>
+
+        Reviewed by Laszlo Gombos.
+
+        [Qt] Don't link against fontconfig or X11 if embedded
+        https://bugs.webkit.org/show_bug.cgi?id=58104
+
+        * Source/WebKit.pri: Add qpa=>embedded as it should be across all builds.
+
+2011-04-08  Alpha Lam  <hclam@chromium.org>
+
+        Unreviewed, rolling out r83335.
+        http://trac.webkit.org/changeset/83335
+        https://bugs.webkit.org/show_bug.cgi?id=53556
+
+        GTK and QT bots are broken.
+
+        * configure.ac:
+
+2011-04-08  Kristian Amlie  <kristian.amlie@nokia.com>
+
+        Reviewed by Andreas Kling.
+
+        [Qt] Remove modular references after support for the flag was removed.
+        https://bugs.webkit.org/show_bug.cgi?id=57018
+
+        Removed modular references after support for the flag was removed.
+
+        Support was removed because the Qt Modularization project decided we
+        don't need it. It's better to base decisions on the available
+        information, as demonstrated in the patch by checking
+        QT.phonon.includes.
+
+        * Source/WebKit.pri:
+
+2011-04-07  Anna Cavender  <annacc@chromium.org>
+
+        Reviewed by Eric Carlson.
+
+        Setup ENABLE(TRACK) feature define
+        https://bugs.webkit.org/show_bug.cgi?id=53556
+
+        * configure.ac:
+
+2011-04-08  Varun Jain  <varunjain@chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        Need to extend WebKit chromium API to access text selection
+        https://bugs.webkit.org/show_bug.cgi?id=57888
+
+        *  Source/WebKit/chromium/public/WebFrame.h:
+        *  Source/WebKit/chromium/public/WebWidget.h:
+        *  Source/WebKit/chromium/src/WebFrameImpl.cpp:
+        *  Source/WebKit/chromium/src/WebFrameImpl.h:
+        *  Source/WebKit/chromium/src/WebPopupMenuImpl.h:
+        *  Source/WebKit/chromium/src/WebViewImpl.cpp:
+        *  Source/WebKit/chromium/src/WebViewImpl.h:
+        *  Source/WebKit/chromium/tests/PopupMenuTest.cpp:
+
+2011-04-08  Jon Lee  <jonlee@apple.com>
+
+        Reviewed by David Levin.
+
+        adding *.vcproj.*.user to .gitignore for Visual Studio development
+        https://bugs.webkit.org/show_bug.cgi?id=58097
+
+        * .gitignore:
+
+2011-04-07  Eric Seidel  <eric@webkit.org>
+
+        Reviewed by Adam Barth.
+
+        Add stub support for generating Gtk build system from gyp
+        https://bugs.webkit.org/show_bug.cgi?id=58086
+
+        This adds support for a new --port argument and plumbs through
+        the necessary paths to allow generating for a port other than Mac.
+
+        * Source/gyp/configure:
+
+2011-04-07  Andrew Scherkus  <scherkus@chromium.org>
+
+        Revert ENABLE_TRACK patch due to compile failures.
+
+        * configure.ac:
+
+2011-04-06  Dai Mikurube  <dmikurube@chromium.org>
+
+        Reviewed by David Levin.
+
+        Add QUOTA build flag for unified quota API
+        https://bugs.webkit.org/show_bug.cgi?id=57918
+
+        * configure.ac: Added QUOTA build flag
+
+2011-04-04  Martin Robinson  <mrobinson@igalia.com>
+
+        Build fix for GTK+ after r82876.
+
+        * Source/autotools/symbols.filter: Update the symbol filter to include new symbols
+        from WTF that DRT uses.
+
+2011-04-04  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by Gustavo Noronha Silva.
+
+        [GTK] WebGL support
+        https://bugs.webkit.org/show_bug.cgi?id=31517
+
+        * configure.ac: Update configure.ac to ensure that GL/GLX headers exist.
+
+2011-04-04  Jon Lee  <jonlee@apple.com>
+
+        Reviewed by Eric Seidel.
+
+        add some directories to .gitignore (and svn:ignore) when opening projects in xcode4
+        https://bugs.webkit.org/show_bug.cgi?id=57646
+
+        * .gitignore: added xcode 4 related project and workspace directories that are not needed for checkin
+
+2011-03-31  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Link explicitly with XRender on Linux/Unix
+        https://bugs.webkit.org/show_bug.cgi?id=57558
+
+        Some linkers, like GNU Gold, require explicit linkage of all the
+        libraries used instead of relying on our dependencies to bring
+        them in. In this case, the build fails because we use XRender in
+        the plugin code but don't link directly to it.
+
+        * configure.ac: check for XRender on UNIX.
+
+2011-03-31  Vamshikrishna.Yellenki  <vamshi@motorola.com> and Alejandro G. Castro  <alex@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        Implement MiniBrowser for Gtk port.
+        https://bugs.webkit.org/show_bug.cgi?id=48512
+
+        Initial implementation of the Gtk MiniBrowser.
+
+        * GNUmakefile.am:
+
+2011-03-30  Csaba Osztrogonác  <ossy@webkit.org>
+
+        [Qt] Typo fix, remove an accidentally added line.
+
+        * Source/WebKit.pri:
+
+2011-03-30  Csaba Osztrogonác  <ossy@webkit.org>
+
+        [Qt] Rollout r82240 and r82232, because they broke 2 plugin tests.
+
+        * Source/WebKit.pri:
+
+2011-03-29  Csaba Osztrogonác  <ossy@webkit.org>
+
+        Rubber-stamped by Andreas Kling.
+
+        [Qt] Remove modular references after support for the flag was removed.
+        https://bugs.webkit.org/show_bug.cgi?id=57018
+
+        Symbian buildfix after r82232.
+
+        * Source/WebKit.pri: Readd uitools option.
+
+2011-03-29  Kristian Amlie  <kristian.amlie@nokia.com>
+
+        Reviewed by Andreas Kling.
+
+        Removed modular references after support for the flag was removed.
+
+        Support was removed because the Qt Modularization project decided we
+        don't need it. It's better to base decisions on the available
+        information, as demonstrated in the patch by checking
+        QT.phonon.includes.
+
+        In addition, remove the reference to uitools. It has been moved to
+        QtKernel now, and therefore is always available.
+
+        [Qt] Remove modular references after support for the flag was removed.
+        https://bugs.webkit.org/show_bug.cgi?id=57018
+
+        * Source/WebKit.pri:
+
+2011-03-28  Benjamin Poulain  <benjamin.poulain@nokia.com>
+
+        Reviewed by Andreas Kling.
+
+        [Qt] QtWebKit will not compile with QT_ASCII_CAST_WARNINGS enabled
+        https://bugs.webkit.org/show_bug.cgi?id=57087
+
+        Enable QT_ASCII_CAST_WARNINGS by default in webkit.pri to catch the errors early on.
+
+        * Source/WebKit.pri:
+
+2011-03-26  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        We shouldn't bother running GYP if the generated files are newer than the GYP files
+        https://bugs.webkit.org/show_bug.cgi?id=57146
+
+        In the common case, this check will avoid any overhead from processing
+        the GYP files.  Another approach to doing this is to add the feature to
+        GYP directly, but GYP's approach to this problem is to compute the
+        output in its entirety and compare it byte-for-byte against the output
+        file.  In the future, it might make sense to add this approach as an
+        alternative approach for GYP itself.
+
+        I also removed JavaScriptGlue from the script because we're not really
+        going to change JavaScriptGlue over to GYP.  We were using
+        JavaScriptGlue as a learning experience.
+
+        * Source/gyp/configure:
+
+2011-03-25  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Build fix, don't use the new FPD implementation yet, until we can merge ours with it.
+
+        * wscript:
+
+2011-03-23  George Guo  <George.Guo@nokia.com>
+
+        Reviewed by Darin Adler.
+
+        Webkit warning: converting to 'unsigned int' from 'double'
+        https://bugs.webkit.org/show_bug.cgi?id=56865
+
+        With -Werr enabled, this cause the build failure on RedHat Linux. 
+        Add a cast helped.  
+
+        * Source/JavaScriptCore/runtime/TimeoutChecker.cpp:
+        (JSC::getCPUTime):
+
+2011-03-23  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        GYP build should default to Production configuration
+        https://bugs.webkit.org/show_bug.cgi?id=56899
+
+        * Source/gyp/common.gypi:
+
+2011-03-22  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        gyp/configure shouldn&apos;t require GYP to be in your path
+        https://bugs.webkit.org/show_bug.cgi?id=56873
+
+        Now that GYP is on Source/ThirdParty/gyp, we can just use that copy
+        instead of requiring GYP to be in the user's path.
+
+        * Source/gyp/configure:
+
+2011-03-22  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Add GYP to Source/ThirdParty
+        https://bugs.webkit.org/show_bug.cgi?id=56870
+
+        We probably don't need all the test files, but it seems cleaner to just
+        check in the whole GYP tree.  GYP is BSD licensed, so it is compatible
+        with the WebKit license.
+
+        * Source/ThirdParty/gyp: Added.
+
+2011-03-21  Alejandro G. Castro  <alex@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] 1.3.13 release bump
+        https://bugs.webkit.org/show_bug.cgi?id=56795
+
+        Version bump for 1.3.13 and updated NEWS file with release notes.
+
+        * configure.ac:
+
+2011-03-21  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Reviewed by Antonio Gomes.
+
+        [CMAKE] Add exception handling when PORT was missing.
+        https://bugs.webkit.org/show_bug.cgi?id=56728
+
+        * Source/CMakeLists.txt:
+
+2011-03-10  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
+
+        Reviewed by Laszlo Gombos.
+
+        [Qt] Text layout is broken on Symbian
+        https://bugs.webkit.org/show_bug.cgi?id=56046
+
+        Change integers included into bitfields to be signed by default on RVCT
+        compiler as a lot of other compilers do (gcc, msvc, winsc).
+        There are a lot of places in webkit where integers included in bitfield
+        are assumed to be signed.
+
+        * Source/WebKit.pri:
+
+2011-03-10  Alejandro G. Castro  <alex@igalia.com>
+
+        Unreviewed, fixed Efl compilation after r80744.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-03-10  Martin Robinson  <mrobinson@igalia.com>
+
+        Fixed the help message for WebGL support on GTK+ to reflect the fact that
+        it's turned off by default and is experimental.
+
+        * configure.ac: Fix WebGL help message.
+
+2011-03-04  Dimitri Glazkov  <dglazkov@chromium.org>
+
+        Reviewed by Adam Barth.
+
+        Add skeletal WebCore.gyp
+        https://bugs.webkit.org/show_bug.cgi?id=55802
+
+        * Source/gyp/configure: Added WebCore.
+
+2011-03-04  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Add a basic configure script for the GYP build
+        https://bugs.webkit.org/show_bug.cgi?id=55791
+
+        This script just calls GYP on the various gyp projects.  As we add more
+        build systems, this script should be able to select which of them you'd
+        like to generate the project for.
+
+        * Source/gyp/configure: Added.
+
+2011-03-04  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Use target_defaults to reduce boilerplate in GYP build system
+        https://bugs.webkit.org/show_bug.cgi?id=55790
+
+        This file contains GYP declarations that are shared by all the modules.
+        Currently, we use this to set up the configurations, albeit primitively.
+
+        * Source/gyp/common.gypi: Added.
+
+2011-03-03  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Build fix. Ensure the ICU include dir comes before JavaScriptCore/wtf on Win
+        to make sure the proper unicode/utf8.h header is included.
+
+        * wscript:
+
+2011-03-02  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Build fix, don't use LocalizedNumberICU.cpp yet, headers that it needs are not
+        included in the ICU headers used by WebKit.
+
+        * wscript:
+
+2011-03-02  Daniel Cheng  <dcheng@chromium.org>
+
+        Reviewed by David Levin.
+
+        Add feature define for data transfer items
+        https://bugs.webkit.org/show_bug.cgi?id=55510
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+        * configure.ac:
+
+>>>>>>> .r80188
+2011-03-02  Andras Becsi  <abecsi@webkit.org>
+
+        Reviewed by Laszlo Gombos.
+
+        [Qt][WK2] generate-forwarding-headers.pl should generate paths with framework names
+        https://bugs.webkit.org/show_bug.cgi?id=55478
+
+        On case insensitive systems the generated forwarding headers cause build problems.
+
+        * Source/WebKit.pri: Adjust INCLUDEPATH for the project.
+
+2011-03-01  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r80079.
+        http://trac.webkit.org/changeset/80079
+        https://bugs.webkit.org/show_bug.cgi?id=55547
+
+        "Broke the Win debug build?" (Requested by dcheng on #webkit).
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-03-01  Daniel Cheng  <dcheng@chromium.org>
+
+        Reviewed by David Levin.
+
+        Add feature define for data transfer items
+        https://bugs.webkit.org/show_bug.cgi?id=55510
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/OptionsWinCE.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2011-03-01  Andras Becsi  <abecsi@webkit.org>
+
+        Reviewed by Csaba Osztrogonác.
+
+        [Qt] Clean up the project files and move common options to WebKit.pri.
+
+        Mac related changes suggested by Prasanth Ullattil <prasanth.ullattil@nokia.com>
+
+        * Source/WebKit.pri: Common options should be here.
+        Also move Mac options to this file to fix the Mac build.
+
+2011-03-01  Andras Becsi  <abecsi@webkit.org>
+
+        Unreviewed build fix.
+
+        [Qt] Fix minimal build.
+
+        * Source/WebKit.pri: Move the XP_UNIX define back to WebCore.pri.
+
+2011-02-28  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Teach JavaScriptGlue gyp build about DEPTH
+        https://bugs.webkit.org/show_bug.cgi?id=55421
+
+        Moves the previously JavaScriptGlue-specific GYP helper shell scripts
+        to the gyp directory in Source, where they can be shared by multiple
+        frameworks.
+
+        * Source/gyp: Added.
+        * Source/gyp/remove-headers-if-needed.sh: Copied from Source/JavaScriptGlue/gyp/remove-headers-if-needed.sh.
+        * Source/gyp/run-if-exists.sh: Copied from Source/JavaScriptGlue/gyp/run-if-exists.sh.
+        * Source/gyp/update-info-plist.sh: Copied from Source/JavaScriptGlue/gyp/update-info-plist.sh.
+
+2011-02-28  Benjamin Poulain  <benjamin.poulain@nokia.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [Qt][WK2] Add a way to test the WebKit 2 APIs
+        https://bugs.webkit.org/show_bug.cgi?id=55408
+
+        Add the build file for test to the build system.
+
+        * Source/WebKit.pri: Add the include path for WebKit 2 APIs.
+        * Source/WebKit.pro: Add the dependency to build the new test project.
+
+2011-02-28  Balazs Kelemen  <kbalazs@webkit.org>
+
+        Reviewed by Anders Carlsson.
+
+        [Qt][WK2] Plugin initialization
+        https://bugs.webkit.org/show_bug.cgi?id=48127
+
+        * Source/WebKit.pri: Lift the definition of the XP_UNIX macro
+        from WebCore.pri to WebKit.pri to apply it to WebKit2 as well.
+
+2011-02-28  Kristian Amlie  <kristian.amlie@nokia.com>
+
+        Reviewed by Andreas Kling.
+
+        Added full webkit module profile and a syncqt profile.
+
+        This is for modularized Qt.
+
+        [Qt] WebKit patches required to work with a modularized version of Qt
+        https://bugs.webkit.org/show_bug.cgi?id=53916
+
+        * Source/sync.profile: Added.
+
+2011-02-26  Dihan Wickremasuriya  <dihan.wickremasuriya@nokia.com>
+
+        Reviewed by Laszlo Gombos.
+
+        [Qt] [Symbian] Disable dependency to a specific version of a Qt package for
+        non-production builds.
+        https://bugs.webkit.org/show_bug.cgi?id=55313
+
+        * Source/WebKit.pri:
+
+2011-02-24  Alejandro G. Castro  <alex@igalia.com>
+
+        Rubber-stamped by Martin Robinson.
+
+        Fixed compilation after r79537, added a bug to solve webkit2
+        translations:
+        https://bugs.webkit.org/show_bug.cgi?id=55153
+
+        * GNUmakefile.am:
+
+2011-02-24  Christian Dywan  <christian@lanedo.com>
+
+        Rubber-stamped by Eric Seidel.
+
+        [GTK] webkitgtk 1.3.7 build without translations
+        https://bugs.webkit.org/show_bug.cgi?id=50612
+
+        * GNUmakefile.am: Require stamp-po target for all-local so
+            that po files are built before they install.
+
+2011-02-22  Philippe Normand  <pnormand@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] 1.3.12 release preparation
+        https://bugs.webkit.org/show_bug.cgi?id=54967
+
+        Version bump for 1.3.12 and updated NEWS file with release notes.
+        Also bumped libsoup requirement to 2.33.6 as agreed with Sergio
+        and Martin.
+
+        * Source/WebKit/gtk/NEWS:
+        * configure.ac:
+
+2011-02-22  Andras Becsi  <abecsi@webkit.org>
+
+        Reviewed by Laszlo Gombos.
+
+        [Qt] Redesign the build system
+        https://bugs.webkit.org/show_bug.cgi?id=51339
+
+        Part 2.
+
+        Build WebCore as a static library, compile the WebKit API and WebKit2 API
+        in a final step and link to WebKit2, WebCore and JSC libraries to fix
+        linking issues resulting from stripped away symbols.
+
+        * Source/WebKit.pri: Add common include paths
+        * Source/WebKit.pro: Add new project file to SUBDIRS
+
+2011-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Bump GTK+3 dependency to 3.0
+        https://bugs.webkit.org/show_bug.cgi?id=54394
+
+        * configure.ac:
+
+2011-02-19  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Remove mandatory Enchant dependency
+        https://bugs.webkit.org/show_bug.cgi?id=51587
+
+        Add enable-spellcheck option which decides whether to use enchant.
+        If disabled, WebKitGTK+ will not use enchant library.
+
+        * configure.ac:
+
+2011-02-18  Zan Dobersek  <zandobersek@gmail.com>
+
+        Reviewed by Martin Robinson.
+
+        [Gtk] Re-enable meter tag support
+        https://bugs.webkit.org/show_bug.cgi?id=54762
+
+        Enable meter tag support in the configure.ac. This feature was
+        previously enabled by default in the makefile, but should be
+        enabled here after changes in r78981.
+
+        * configure.ac:
+
+2011-02-18  Kristian Amlie  <kristian.amlie@nokia.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Avoided UiTools dependency if the module is not present.
+
+        [Qt] WebKit patches required to work with a modularized version of Qt
+        https://bugs.webkit.org/show_bug.cgi?id=53916
+
+        * Source/WebKit.pri:
+
+2011-02-18  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Reviewed by Kent Tamura.
+
+        [EFL] Remove GDK dependency.
+        https://bugs.webkit.org/show_bug.cgi?id=53978
+
+        Remove checking GDK library.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-02-18  Philippe Normand  <pnormand@igalia.com>
+
+        Unreviewed, build fix after r78981
+
+        * configure.ac: datagrid is datagrid, it is not database. Also
+        meter is not progress. Fixed copy/paste mistakes.
+
+2011-02-18  Philippe Normand  <pnormand@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] minimal build unrecognized options
+        https://bugs.webkit.org/show_bug.cgi?id=50890
+
+        * configure.ac: added new configure options to enable/disable the
+        meter element, progress element, datagrid and client-based
+        geolocation support.
+
+2011-02-17  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Build fix after introduction of JavaScriptCore/collector.
+        
+        * wscript:
+
+2011-02-17  Kristian Amlie  <kristian.amlie@nokia.com>
+
+        Reviewed by Laszlo Gombos.
+
+        Updated include paths for phonon.
+
+        [Qt] WebKit patches required to work with a modularized version of Qt
+        https://bugs.webkit.org/show_bug.cgi?id=53916
+
+        * Source/WebKit.pri:
+
+2011-02-13  Hayato Ito  <hayato@chromium.org>
+
+        Reviewed by Kent Tamura.
+
+        Update .gitignore to ignore files which Ninja build system generates.
+
+        https://bugs.webkit.org/show_bug.cgi?id=54378
+
+        * .gitignore:
+
+2011-02-10  Peter Varga  <pvarga@webkit.org>
+
+        Reviewed by Csaba Osztrogonác.
+
+        Remove PCRE source from trunk
+        https://bugs.webkit.org/show_bug.cgi?id=54188
+
+        * Source/cmake/WebKitFS.cmake:
+
+2011-02-09  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Steve Block.
+
+        Move Android.mk into Source
+        https://bugs.webkit.org/show_bug.cgi?id=53751
+
+        A somewhat blind attempt to move Android.mk into the Source directory.
+        I'm sure I've goofed this up in some way.  The Android folks have
+        kindly volunteered to fix this up once they merge past this revision.
+
+        * Android.mk: Removed.
+        * Source/Android.mk: Copied from Android.mk.
+
+2011-02-08  Alejandro G. Castro  <alex@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        WebKit2 GTK Fails to Build #include nested too deeply
+        https://bugs.webkit.org/show_bug.cgi?id=52219
+
+        Removed the __STDC_FORMAT_MACROS definition, it is already defined
+        in the file where PRIxx64 is used before the inclusion so we are
+        safe.
+
+        * configure.ac:
+
+2011-02-08  Kristian Amlie  <kristian.amlie@nokia.com>
+
+        Reviewed by Eric Seidel.
+
+        Added include paths for QtScript.
+
+        WebKit patches required to work with a modularized version of Qt
+        https://bugs.webkit.org/show_bug.cgi?id=53916
+
+        * Source/WebKit.pri:
+
+2011-02-03  Martin Robinson  <mrobinson@igalia.com>
+
+        Fix GTK+ WebGL build after r76600.
+
+        * configure.ac: Make sure to respect configure.ac conventions 
+        consistently when it comes to capitalization. Remove an old
+        reference to enable_3d_canvas.
+
+2011-02-02  Alejandro G. Castro  <alex@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        Bump the WebKitGTK+ versions in preparation for development release.
+
+        * configure.ac: Bump the library, libtool and user agent version.
+
+2011-02-02  Steve Lacey  <sjl@chromium.org>
+
+        Reviewed by Eric Carlson.
+
+        Implement basic media statistics on media elements.
+        https://bugs.webkit.org/show_bug.cgi?id=53322
+
+        * configure.ac:
+
+2011-02-02  Kevin Ollivier  <kevino@theolliviers.com>
+
+        [wx] Build fixes for wxWebKit.
+
+        * wscript:
+
+2010-01-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed.  Test commit for commit-queue@webkit.org.
+
+2010-01-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed.  Test commit for commit-queue@webkit.org.
+
+2010-01-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed.  Test commit for commit-queue@webkit.org.
+
+2011-01-31  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] REGRESSION:  http/tests/media/video-{cookie,referer}.html failing
+        https://bugs.webkit.org/show_bug.cgi?id=53379
+
+        Remove left over mentions of HAVE_SOUP_2_29_90, and apply the
+        dependency on newer soup to efl as well.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-01-29  Daniel Bates  <dbates@rim.com>
+
+        Reviewed by Maciej Stachowiak.
+
+        Remove reference to ${CMAKE_SOURCE_DIR}/Source in CMake files
+        https://bugs.webkit.org/show_bug.cgi?id=53382
+
+        Our file system hierarchy ensures that CMAKE_SOURCE_DIR is defined to be /Source.
+        So, ${CMAKE_SOURCE_DIR}/Source evaluates to the non-existent directory /Source/Source.
+        Therefore, we should remove such references.
+
+        * Source/cmake/OptionsCommon.cmake:
+
+2011-01-29  Daniel Bates  <dbates@rim.com>
+
+        Reviewed by Eric Seidel.
+
+        Move wince/mt19937ar.c to ThirdParty and make it a policy choice
+        https://bugs.webkit.org/show_bug.cgi?id=53253
+
+        Move implementation of Mersenne Twister pseudorandom number generator to
+        ThirdParty since it is a third party library.
+
+        * Source/ThirdParty/mt19937ar.c: Copied from Source/JavaScriptCore/wtf/wince/mt19937ar.c.
+
+2011-01-29  Dan Winship  <danw@gnome.org>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] Require the latest glib and libsoup, and remove conditional
+        support for older versions
+        https://bugs.webkit.org/show_bug.cgi?id=50675
+
+        * autotools/webkit.m4: use AM_PATH_GLIB_2_0 rather than doing
+        basically the same work by hand
+        * configure.ac:
+
+2011-01-28  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Build failure with --enable-indexed-database
+        https://bugs.webkit.org/show_bug.cgi?id=50954
+
+        Build fix for IndexedDB support.
+
+        * configure.ac: Change the autogen.sh option --enable-indexeddb to
+        --enable-indexed-database to match the build-webkit option.
+
+2010-01-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed.  Test commit for commit-queue@webkit.org.
+
+2010-01-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed.  Test commit for commit-queue@webkit.org.
+
+2011-01-26  Yael Aharon  <yael.aharon@nokia.com>
+
+        Reviewed by Laszlo Gombos.
+
+        [Qt][Symbian] Fix --minimal build
+        https://bugs.webkit.org/show_bug.cgi?id=52839
+
+        Move definition of USE_SYSTEM_MALLOC out of pri file.
+        Put it in platform.h instead.
+
+        * Source/WebKit.pri:
+
+2011-01-26  Csaba Osztrogonác  <ossy@webkit.org>
+
+        Reviewed by Andreas Kling.
+
+        [Qt] Fix qt_minimal build
+        https://bugs.webkit.org/show_bug.cgi?id=53172
+
+        * Source/WebKit.pri:
+
+2011-01-25  Patrick Gansterer  <paroga@webkit.org>
+
+        Reviewed by Adam Barth.
+
+        Move main CMakeLists.txt into Source directory
+        https://bugs.webkit.org/show_bug.cgi?id=52888
+
+        * CMakeLists.txt: Removed.
+        * Source/CMakeLists.txt: Copied from CMakeLists.txt.
+        * Source/cmakeconfig.h.cmake: Copied from cmakeconfig.h.cmake.
+        * cmakeconfig.h.cmake: Removed.
+
+2011-01-24  Chris Marrin  <cmarrin@apple.com>
+
+        Reviewed by Eric Seidel.
+
+        Change ENABLE_3D_CANVAS to ENABLE_WEBGL
+        https://bugs.webkit.org/show_bug.cgi?id=53041
+
+        * configure.ac:
+        
+2011-01-24  Peter Gal  <galpeter@inf.u-szeged.hu>
+
+        Rubber-stamped by Csaba Osztrogonác.
+
+        * runtime: Removed. It was accidentally created by r76457.
+
+2011-01-24  Andras Becsi  <abecsi@webkit.org>
+
+        Reviewed by Csaba Osztrogonác.
+
+        [Qt] Move project files into Source
+        https://bugs.webkit.org/show_bug.cgi?id=52891
+
+        * Source/DerivedSources.pro: Copied from DerivedSources.pro.
+        * Source/WebKit.pri: Renamed from WebKit.pri.
+        * Source/WebKit.pro: Added.
+        * Source/common.pri: Renamed from common.pri.
+        * WebKit.pro: Removed.
+
+2011-01-20  Siddharth Mathur  <siddharth.mathur@nokia.com>
+
+        Reviewed by Laszlo Gombos.
+
+        [Qt][Symbian] Smaller debug symbol size when using RVCT 4.x
+        https://bugs.webkit.org/show_bug.cgi?id=52835
+
+        * WebKit.pri: Use --remove_unneeded_entities for RVCT 4.x compilers
+
+2011-01-20  Alejandro G. Castro  <alex@igalia.com>
+
+        Reviewed by Andreas Kling.
+
+        [GTK] Fix typo in the webkit2 section of the configure.ac file
+        https://bugs.webkit.org/show_bug.cgi?id=52801
+
+        Fixed typo in the GTK WebKit2 compilation.
+
+        * configure.ac:
+
+2011-01-19  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
+
+        Reviewed by Andreas Kling.
+
+        Enable usage of Google ld if it exist but is not on by default.
+
+        [Qt] Enable the google ld if it exist but is not on by default
+        https://bugs.webkit.org/show_bug.cgi?id=52625
+
+        * common.pri: flip the test.
+
+2011-01-18  Mihai Parparita  <mihaip@chromium.org>
+
+        Unreviewed. Update .gitignore to reflect that WebKit is now in Source.
+        
+        * .gitignore:
+
+2011-01-18  Krithigassree Sambamurthy  <krithigassree.sambamurthy@nokia.com>
+
+        Reviewed by Simon Fraser.
+
+        Support background-clip: content-box
+        https://bugs.webkit.org/show_bug.cgi?id=48771
+
+        Addded content-box as a valid background-clip value.
+
+        * WebCore/css/CSSParser.cpp:
+        (WebCore::parseBackgroundClip):
+
+2011-01-18  Hayato Ito  <hayato@chromium.org>
+
+        Reviewed by Kent Tamura.
+
+        Update .gitignore file to reflect a recent WebKit directory movement.
+
+        https://bugs.webkit.org/show_bug.cgi?id=52618
+
+        * .gitignore:
+
+2011-01-16  Adam Barth  <abarth@webkit.org>
+
+        Rubber-stamped by Eric Seidel.
+
+        Move WebKit into Source
+        https://bugs.webkit.org/show_bug.cgi?id=52530
+
+        * Android.mk:
+        * CMakeLists.txt:
+        * DerivedSources.pro:
+        * GNUmakefile.am:
+        * Makefile:
+        * WebKit.pri:
+        * WebKit.pro:
+        * configure.ac:
+        * wscript:
+
+2011-01-15  Adam Barth  <abarth@webkit.org>
+
+        Rubber-stamped by Eric Seidel.
+
+        Move WebKit2 into Source
+        https://bugs.webkit.org/show_bug.cgi?id=52438
+
+        Update reference to WebKit2.
+
+        * DerivedSources.pro:
+        * GNUmakefile.am:
+        * Makefile:
+        * Source/cmake/WebKitPackaging.cmake:
+        * WebKit.pro:
+        * configure.ac:
+
+2011-01-14  Ahmad Sharif  <asharif.tools@gmail.com>
+
+        Reviewed by Darin Fisher.
+
+        When inlining is performed, the progress variable is
+        declared as uninitialized.
+        https://bugs.webkit.org/show_bug.cgi?id=51084
+
+        * WebCore: Copied from WebCore.
+        * WebCore/page/animation/KeyframeAnimation.cpp:
+        (WebCore::KeyframeAnimation::animate):
+        (WebCore::KeyframeAnimation::getAnimatedStyle):
+
+2011-01-11  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
+
+        Reviewed by Csaba Osztrogonác.
+
+        [Qt] Add QT_NO_CONCURRENT to the qt_minimal configuration
+        https://bugs.webkit.org/show_bug.cgi?id=52223
+
+        Add QT_NO_CONCURRENT to the qt_minimal configuration to make sure
+        that QtWebKit builds with QT_NO_CONCURRENT defined.
+
+        * WebKit.pri:
+
+2011-01-11  Mihai Parparita  <mihaip@chromium.org>
+
+        Unreviewed. Update .gitignore with new Chromium dependency.
+        
+        ui/ was added with http://crrev.com/70743, we picked that up with a
+        Chromium roll in r75311.
+        
+        Also alphabetizes the dependency list.
+
+        * .gitignore:
+
+2011-01-10  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
+
+        Reviewed by Csaba Osztrogonác.
+
+        [Qt] Baseline qt_minimal configuration
+        https://bugs.webkit.org/show_bug.cgi?id=51313
+
+        * WebKit.pri: List the supported QT_NO_FEATURE flags
+        under qt_minimal configuration.
+
+2011-01-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Reviewed by Eric Seidel.
+
+        [EFL] Enable JIT for WebKit EFL
+        https://bugs.webkit.org/show_bug.cgi?id=52140
+
+        Enable JIT option for WebKit EFL. Enabled JIT's JS performance is 
+        3 ~ 6 times faster than before.
+
+        * Source/cmake/OptionsEfl.cmake:
+
+2011-01-10  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by Gustavo Noronha.
+
+        Bump the WebKitGTK+ versions in preparation for development release.
+
+        * configure.ac: Bump the library, libtool and user agent version.
+
+2011-01-10  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Create intermediate libWebCore library
+        https://bugs.webkit.org/show_bug.cgi?id=52116
+
+        * GNUmakefile.am: add XP_UNIX to the global CPP flags, since it's
+        used by both libWebCore and libwebkitgtk now.
+
+2011-01-08  Patrick Gansterer  <paroga@webkit.org>
+
+        Unreviewed wx build fix for r75313.
+
+        * wscript: Added missing brace.
+
+2011-01-07  Adam Barth  <abarth@webkit.org>
+
+        Rubber-stamped by Eric Seidel.
+
+        Move WebCore to Source
+        https://bugs.webkit.org/show_bug.cgi?id=52050
+
+        Update build files and metadata to point to WebCore's new location.
+
+        * .gitattributes:
+        * .gitignore:
+        * Android.mk:
+        * CMakeLists.txt:
+        * DerivedSources.pro:
+        * GNUmakefile.am:
+        * Makefile:
+        * Source/autotools/webkit.m4:
+        * Source/cmake/OptionsEfl.cmake:
+        * WebKit.pri:
+        * WebKit.pro:
+        * configure.ac:
+        * wscript:
+
+2011-01-06  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by Eric Seidel.
+
+        [GTK] Initial build support for WebGL
+        https://bugs.webkit.org/show_bug.cgi?id=51716
+
+        * configure.ac: Add a configure option for WebGL.
+
+2011-01-06  Michael Saboff  <msaboff@apple.com>
+
+        Reviewed by Gavin Barraclough.
+
+        Enhancement: Add Regexp Debug Compare between JIT and Interpreter
+        https://bugs.webkit.org/show_bug.cgi?id=51834
+
+        * JavaScriptCore: Copied from JavaScriptCore.
+
+2011-01-06  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] Enable blob support by default
+        https://bugs.webkit.org/show_bug.cgi?id=51994
+
+        * configure.ac: Enable Blob support by default.
+
+2011-01-05  Patrick Gansterer  <paroga@webkit.org>
+
+        Reviewed by Andreas Kling.
+
+        [CMake] Fix the usage of SOURCE_GROUP
+        https://bugs.webkit.org/show_bug.cgi?id=51739
+
+        * Source/cmake/WebKitMacros.cmake:
+
+2011-01-05  Patrick Gansterer  <paroga@webkit.org>
+
+        Reviewed by Andreas Kling.
+
+        [WINCE] Remove CMake warning
+        https://bugs.webkit.org/show_bug.cgi?id=51921
+
+        * Source/cmake/WebKitHelpers.cmake:
+
+2011-01-04  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by David Levin.
+
+        .gitignore should be updated to reflect Sources rename to Source
+        https://bugs.webkit.org/show_bug.cgi?id=51893
+
+        * .gitignore: Change all paths that reference the "Sources" directory to say "Source".
+
+2011-01-04  Dihan Wickremasuriya  <dihan.wickremasuriya@nokia.com>
+
+        Reviewed by Laszlo Gombos.
+
+        [Qt] [Symbian] Build system cleanup
+
+        After r74811 special handling for the Symbian build is no longer needed.
+        This patch reverts r58756.
+
+        * WebKit.pri:
+
+2011-01-03  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        * autogen.sh: also pass $ACLOCAL_FLAGS for tools that set that env
+        variable (like jhbuild).
+
+2011-01-03  Patrick Gansterer  <paroga@webkit.org>
+
+        Reviewed by Darin Adler.
+
+        [WINCE] Provide third party directory via environment variable
+        https://bugs.webkit.org/show_bug.cgi?id=51643
+
+        * Source/cmake/OptionsWinCE.cmake:
+
+2011-01-03  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        Use autoreconf instead of calling manually all the usual commands.
+
+        * autogen.sh: call autoreconf instead of
+        aclocal/autoheader/autoconf/automake/libtoolize.
+
+2011-01-03  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Disable superfluous GNU make built-in implicit rules
+        https://bugs.webkit.org/show_bug.cgi?id=51826
+
+        GNU make ships some superflous built-in rules that we never use
+        and that end up adding up to a very significant portion of our
+        total Makefile processing time. Disable them completely by
+        defining the rule without any recipe, as suggested by the GNU make
+        manual (10.5.6, Cancelling Implicit Rules).
+
+        In my system the null-build goes from:
+
+        make  43.51s user 12.77s system 99% cpu 56.628 total
+
+        to:
+
+        make  31.45s user 11.59s system 99% cpu 43.227 total
+
+        * GNUmakefile.am: disable implicit built-in rules.
+
+2011-01-03  Mihai Parparita  <mihaip@chromium.org>
+
+        Unreviewed. Update .gitignore with new JavaScriptCore location.
+
+        * .gitignore:
+
+2011-01-02  Patrick Gansterer  <paroga@webkit.org>
+
+        [CMake] Unreviewed build fix.
+
+        * CMakeLists.txt:
+        * Source/cmake/OptionsCommon.cmake:
+
+2011-01-01  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Move JavaScriptCore to Source
+        https://bugs.webkit.org/show_bug.cgi?id=51604
+
+        Update references to JavaScriptCore to point to the new location.
+
+        * Android.mk:
+        * CMakeLists.txt:
+        * DerivedSources.pro:
+        * GNUmakefile.am:
+        * Makefile:
+        * WebKit.pri:
+        * WebKit.pro:
+        * wscript:
+
+2011-01-01  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Move Sources to Source
+        https://bugs.webkit.org/show_bug.cgi?id=51794
+
+        Update build files to point to the new location.
+
+        * CMakeLists.txt:
+        * GNUmakefile.am:
+        * Makefile:
+        * autogen.sh:
+        * configure.ac:
+
+2010-12-31  Adam Barth  <abarth@webkit.org>
+
+        Rubber-stamped by Eric Seidel.
+
+        Move HTML and XML parser benchmarks into PerformanceTests/Parser
+        https://bugs.webkit.org/show_bug.cgi?id=51772
+
+        Actually move the directory.
+
+        * PerformanceTests/Parser: Copied from WebCore/benchmarks/parser.
+
+2010-12-31  Adam Barth  <abarth@webkit.org>
+
+        Rubber-stamped by Eric Seidel.
+
+        Move PageLoadTests to PerformanceTests/PageLoad
+        https://bugs.webkit.org/show_bug.cgi?id=51771
+
+        Actually move the directory.
+
+        * PageLoadTests: Removed.
+        * PageLoadTests/svg: Removed.
+        * PageLoadTests/svg/LICENSES: Removed.
+        * PageLoadTests/svg/files: Removed.
+        * PageLoadTests/svg/files/33041-Samurai.svg: Removed.
+        * PageLoadTests/svg/files/42450-under the see.svg: Removed.
+        * PageLoadTests/svg/files/42470-flower_from_my_garden_v2.svg: Removed.
+        * PageLoadTests/svg/files/44057-drops on a blade.svg: Removed.
+        * PageLoadTests/svg/files/Harvey_Rayner.svg: Removed.
+        * PageLoadTests/svg/files/az-lizard_benji_park_01.svg: Removed.
+        * PageLoadTests/svg/files/bamboo_01.svg: Removed.
+        * PageLoadTests/svg/files/cacuts_01.svg: Removed.
+        * PageLoadTests/svg/files/cowboy.svg: Removed.
+        * PageLoadTests/svg/files/crawfish2_ganson.svg: Removed.
+        * PageLoadTests/svg/files/deb9frac1.svg: Removed.
+        * PageLoadTests/svg/files/food_leif_lodahl_01.svg: Removed.
+        * PageLoadTests/svg/files/france.svg: Removed.
+        * PageLoadTests/svg/files/francobollo_gnome_ezechi_02.svg: Removed.
+        * PageLoadTests/svg/files/gearflowers.svg: Removed.
+        * PageLoadTests/svg/files/hereGear4.svg: Removed.
+        * PageLoadTests/svg/files/mtsthelens.svg: Removed.
+        * PageLoadTests/svg/files/mtsthelens0.jpg: Removed.
+        * PageLoadTests/svg/files/world-iso.svg: Removed.
+        * PageLoadTests/svg/files/worldcup.svg: Removed.
+        * PageLoadTests/svg/svg.pltsuite: Removed.
+        * PerformanceTests/PageLoad: Copied from PageLoadTests.
+        * Sources/cmake/WebKitPackaging.cmake:
+
+2010-12-31  Adam Barth  <abarth@webkit.org>
+
+        Rubber-stamped by Eric Seidel.
+
+        Move SunSpider into PerformanceTests
+        https://bugs.webkit.org/show_bug.cgi?id=51769
+
+        Actually move the directory.
+
+        * PerformanceTests: Added.
+        * PerformanceTests/SunSpider: Copied from SunSpider.
+        * Sources/cmake/WebKitPackaging.cmake:
+        * SunSpider: Removed.
+        * SunSpider/SunSpider.make: Removed.
+        * SunSpider/TODO: Removed.
+        * SunSpider/UNCOVERED: Removed.
+        * SunSpider/hosted: Removed.
+        * SunSpider/hosted/json2.js: Removed.
+        * SunSpider/hosted/sunspider.css: Removed.
+        * SunSpider/hosted/sunspider.html: Removed.
+        * SunSpider/hosted/versions.html: Removed.
+        * SunSpider/make-hosted: Removed.
+        * SunSpider/resources: Removed.
+        * SunSpider/resources/TEMPLATE.html: Removed.
+        * SunSpider/resources/driver-TEMPLATE.html: Removed.
+        * SunSpider/resources/results-TEMPLATE.html: Removed.
+        * SunSpider/resources/sunspider-analyze-results.js: Removed.
+        * SunSpider/resources/sunspider-compare-results.js: Removed.
+        * SunSpider/resources/sunspider-standalone-compare.js: Removed.
+        * SunSpider/resources/sunspider-standalone-driver.js: Removed.
+        * SunSpider/sunspider: Removed.
+        * SunSpider/sunspider-compare-results: Removed.
+        * SunSpider/tests: Removed.
+        * SunSpider/tests/parse-only: Removed.
+        * SunSpider/tests/parse-only/LIST: Removed.
+        * SunSpider/tests/parse-only/concat-jquery-mootools-prototype.js: Removed.
+        * SunSpider/tests/parse-only/jquery-1.3.2.js: Removed.
+        * SunSpider/tests/parse-only/mootools-1.2.2-core-nc.js: Removed.
+        * SunSpider/tests/parse-only/prototype-1.6.0.3.js: Removed.
+        * SunSpider/tests/sunspider-0.9: Removed.
+        * SunSpider/tests/sunspider-0.9.1: Removed.
+        * SunSpider/tests/sunspider-0.9.1/3d-cube.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/3d-morph.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/3d-raytrace.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/LIST: Removed.
+        * SunSpider/tests/sunspider-0.9.1/access-binary-trees.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/access-fannkuch.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/access-nbody.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/access-nsieve.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/bitops-3bit-bits-in-byte.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/bitops-bits-in-byte.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/bitops-bitwise-and.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/bitops-nsieve-bits.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/controlflow-recursive.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/crypto-aes.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/crypto-md5.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/crypto-sha1.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/date-format-tofte.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/date-format-xparb.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/math-cordic.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/math-partial-sums.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/math-spectral-norm.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/regexp-dna.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/string-base64.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/string-fasta.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/string-tagcloud.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/string-unpack-code.js: Removed.
+        * SunSpider/tests/sunspider-0.9.1/string-validate-input.js: Removed.
+        * SunSpider/tests/sunspider-0.9/3d-cube.js: Removed.
+        * SunSpider/tests/sunspider-0.9/3d-morph.js: Removed.
+        * SunSpider/tests/sunspider-0.9/3d-raytrace.js: Removed.
+        * SunSpider/tests/sunspider-0.9/LIST: Removed.
+        * SunSpider/tests/sunspider-0.9/access-binary-trees.js: Removed.
+        * SunSpider/tests/sunspider-0.9/access-fannkuch.js: Removed.
+        * SunSpider/tests/sunspider-0.9/access-nbody.js: Removed.
+        * SunSpider/tests/sunspider-0.9/access-nsieve.js: Removed.
+        * SunSpider/tests/sunspider-0.9/bitops-3bit-bits-in-byte.js: Removed.
+        * SunSpider/tests/sunspider-0.9/bitops-bits-in-byte.js: Removed.
+        * SunSpider/tests/sunspider-0.9/bitops-bitwise-and.js: Removed.
+        * SunSpider/tests/sunspider-0.9/bitops-nsieve-bits.js: Removed.
+        * SunSpider/tests/sunspider-0.9/controlflow-recursive.js: Removed.
+        * SunSpider/tests/sunspider-0.9/crypto-aes.js: Removed.
+        * SunSpider/tests/sunspider-0.9/crypto-md5.js: Removed.
+        * SunSpider/tests/sunspider-0.9/crypto-sha1.js: Removed.
+        * SunSpider/tests/sunspider-0.9/date-format-tofte.js: Removed.
+        * SunSpider/tests/sunspider-0.9/date-format-xparb.js: Removed.
+        * SunSpider/tests/sunspider-0.9/math-cordic.js: Removed.
+        * SunSpider/tests/sunspider-0.9/math-partial-sums.js: Removed.
+        * SunSpider/tests/sunspider-0.9/math-spectral-norm.js: Removed.
+        * SunSpider/tests/sunspider-0.9/regexp-dna.js: Removed.
+        * SunSpider/tests/sunspider-0.9/string-base64.js: Removed.
+        * SunSpider/tests/sunspider-0.9/string-fasta.js: Removed.
+        * SunSpider/tests/sunspider-0.9/string-tagcloud.js: Removed.
+        * SunSpider/tests/sunspider-0.9/string-unpack-code.js: Removed.
+        * SunSpider/tests/sunspider-0.9/string-validate-input.js: Removed.
+        * SunSpider/tests/ubench: Removed.
+        * SunSpider/tests/ubench/LIST: Removed.
+        * SunSpider/tests/ubench/function-closure.js: Removed.
+        * SunSpider/tests/ubench/function-correct-args.js: Removed.
+        * SunSpider/tests/ubench/function-empty.js: Removed.
+        * SunSpider/tests/ubench/function-excess-args.js: Removed.
+        * SunSpider/tests/ubench/function-missing-args.js: Removed.
+        * SunSpider/tests/ubench/function-sum.js: Removed.
+        * SunSpider/tests/ubench/loop-empty-resolve.js: Removed.
+        * SunSpider/tests/ubench/loop-empty.js: Removed.
+        * SunSpider/tests/ubench/loop-sum.js: Removed.
+        * SunSpider/tests/v8-v4: Removed.
+        * SunSpider/tests/v8-v4/LIST: Removed.
+        * SunSpider/tests/v8-v4/v8-crypto.js: Removed.
+        * SunSpider/tests/v8-v4/v8-deltablue.js: Removed.
+        * SunSpider/tests/v8-v4/v8-earley-boyer.js: Removed.
+        * SunSpider/tests/v8-v4/v8-raytrace.js: Removed.
+        * SunSpider/tests/v8-v4/v8-regexp.js: Removed.
+        * SunSpider/tests/v8-v4/v8-richards.js: Removed.
+        * SunSpider/tests/v8-v4/v8-splay.js: Removed.
+        * SunSpider/tests/v8-v5: Removed.
+        * SunSpider/tests/v8-v5/LIST: Removed.
+        * SunSpider/tests/v8-v5/v8-crypto.js: Removed.
+        * SunSpider/tests/v8-v5/v8-deltablue.js: Removed.
+        * SunSpider/tests/v8-v5/v8-earley-boyer.js: Removed.
+        * SunSpider/tests/v8-v5/v8-raytrace.js: Removed.
+        * SunSpider/tests/v8-v5/v8-regexp.js: Removed.
+        * SunSpider/tests/v8-v5/v8-richards.js: Removed.
+        * SunSpider/tests/v8-v5/v8-splay.js: Removed.
+        * SunSpider/tests/v8-v6: Removed.
+        * SunSpider/tests/v8-v6/LIST: Removed.
+        * SunSpider/tests/v8-v6/v8-crypto.js: Removed.
+        * SunSpider/tests/v8-v6/v8-deltablue.js: Removed.
+        * SunSpider/tests/v8-v6/v8-earley-boyer.js: Removed.
+        * SunSpider/tests/v8-v6/v8-raytrace.js: Removed.
+        * SunSpider/tests/v8-v6/v8-regexp.js: Removed.
+        * SunSpider/tests/v8-v6/v8-richards.js: Removed.
+        * SunSpider/tests/v8-v6/v8-splay.js: Removed.
+        * SunSpider/xcopy.excludes: Removed.
+
+2010-12-30  Konstantin Tokarev  <annulen@yandex.ru>
+
+        Reviewed by David Kilzer.
+
+        [Qt] Don't build wtf/TCSystemAlloc.cpp if --system-malloc option is
+        used
+        https://bugs.webkit.org/show_bug.cgi?id=51672
+
+        * WebKit.pri: Replaced USE_SYSTEM_MALLOC with USE_SYSTEM_MALLOC=1
+
+2010-12-29  Philippe Normand  <pnormand@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] minimal build fails at link time due to missing sqlite3 symbols
+        https://bugs.webkit.org/show_bug.cgi?id=51327
+
+        * configure.ac: Error out if SQLite3 wasn't found while at least
+        one of the features depending on it has been enabled.
+
+2010-12-29  Patrick Gansterer  <paroga@webkit.org>
+
+        Unreviewed. Use gcc as default preprocessor.
+
+        * Sources/cmake/OptionsCommon.cmake:
+
+2010-12-27  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Reviewed by David Levin.
+
+        [EFL] Change path of eflsymbols.filter
+        https://bugs.webkit.org/show_bug.cgi?id=51659
+
+        * Sources/cmake/OptionsEfl.cmake: 
+
+2010-12-26  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Siedel.
+
+        Move autotools into Sources
+        https://bugs.webkit.org/show_bug.cgi?id=51630
+
+        * .gitignore:
+        * GNUmakefile.am:
+        * Sources/autotools: Copied from autotools.
+        * autogen.sh:
+        * autotools: Removed.
+        * autotools/acinclude.m4: Removed.
+        * autotools/dolt.m4: Removed.
+        * autotools/gsettings.m4: Removed.
+        * autotools/symbols.filter: Removed.
+        * autotools/webkit.m4: Removed.
+        * configure.ac:
+
+2010-12-26  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Move cmake into Sources
+        https://bugs.webkit.org/show_bug.cgi?id=51631
+
+        * CMakeLists.txt:
+        * Sources/cmake: Copied from cmake.
+        * cmake: Removed.
+        * cmake/FindCFLite.cmake: Removed.
+        * cmake/FindCairo.cmake: Removed.
+        * cmake/FindEFL.cmake: Removed.
+        * cmake/FindFontconfig.cmake: Removed.
+        * cmake/FindFreetype.cmake: Removed.
+        * cmake/FindGDK-PixBuf.cmake: Removed.
+        * cmake/FindGDK.cmake: Removed.
+        * cmake/FindGIO.cmake: Removed.
+        * cmake/FindGStreamer-App.cmake: Removed.
+        * cmake/FindGStreamer-Base.cmake: Removed.
+        * cmake/FindGStreamer-Interfaces.cmake: Removed.
+        * cmake/FindGStreamer-Pbutils.cmake: Removed.
+        * cmake/FindGStreamer-Plugins-Base.cmake: Removed.
+        * cmake/FindGStreamer-Video.cmake: Removed.
+        * cmake/FindGStreamer.cmake: Removed.
+        * cmake/FindGlib.cmake: Removed.
+        * cmake/FindGperf.cmake: Removed.
+        * cmake/FindGthread.cmake: Removed.
+        * cmake/FindICU.cmake: Removed.
+        * cmake/FindLibSoup2.cmake: Removed.
+        * cmake/FindLibXlst.cmake: Removed.
+        * cmake/FindPango.cmake: Removed.
+        * cmake/FindSqlite.cmake: Removed.
+        * cmake/LibFindMacros.cmake: Removed.
+        * cmake/OptionsCommon.cmake: Removed.
+        * cmake/OptionsEfl.cmake: Removed.
+        * cmake/OptionsWinCE.cmake: Removed.
+        * cmake/OptionsWindows.cmake: Removed.
+        * cmake/WebKitEfl.cmake: Removed.
+        * cmake/WebKitFS.cmake: Removed.
+        * cmake/WebKitFeatures.cmake: Removed.
+        * cmake/WebKitHelpers.cmake: Removed.
+        * cmake/WebKitMacros.cmake: Removed.
+        * cmake/WebKitPackaging.cmake: Removed.
+        * cmake/eflsymbols.filter: Removed.
+
+2010-12-26  Adam Barth  <abarth@webkit.org>
+
+        Fix some references to the old location of the WebKit website in git
+        metadata files.
+
+        * .gitattributes:
+
+2010-12-25  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Move ANGLE to Sources/ThirdParty
+        https://bugs.webkit.org/show_bug.cgi?id=51605
+
+        Actually move ANGLE and update the Makefile.
+
+        * ANGLE: Removed.
+        * ANGLE/ANGLE.xcodeproj: Removed.
+        * ANGLE/ANGLE.xcodeproj/project.pbxproj: Removed.
+        * ANGLE/Configurations: Removed.
+        * ANGLE/Configurations/ANGLE.xcconfig: Removed.
+        * ANGLE/Configurations/Base.xcconfig: Removed.
+        * ANGLE/Configurations/DebugRelease.xcconfig: Removed.
+        * ANGLE/Makefile: Removed.
+        * ANGLE/include: Removed.
+        * ANGLE/include/EGL: Removed.
+        * ANGLE/include/EGL/egl.h: Removed.
+        * ANGLE/include/EGL/eglext.h: Removed.
+        * ANGLE/include/EGL/eglplatform.h: Removed.
+        * ANGLE/include/GLES2: Removed.
+        * ANGLE/include/GLES2/gl2.h: Removed.
+        * ANGLE/include/GLES2/gl2ext.h: Removed.
+        * ANGLE/include/GLES2/gl2platform.h: Removed.
+        * ANGLE/include/GLSLANG: Removed.
+        * ANGLE/include/GLSLANG/ShaderLang.h: Removed.
+        * ANGLE/include/KHR: Removed.
+        * ANGLE/include/KHR/khrplatform.h: Removed.
+        * ANGLE/src: Removed.
+        * ANGLE/src/build_angle.xcodeproj: Removed.
+        * ANGLE/src/build_angle.xcodeproj/project.pbxproj: Removed.
+        * ANGLE/src/common: Removed.
+        * ANGLE/src/common/angleutils.h: Removed.
+        * ANGLE/src/common/debug.cpp: Removed.
+        * ANGLE/src/common/debug.h: Removed.
+        * ANGLE/src/compiler: Removed.
+        * ANGLE/src/compiler/BaseTypes.h: Removed.
+        * ANGLE/src/compiler/CodeGenGLSL.cpp: Removed.
+        * ANGLE/src/compiler/CodeGenHLSL.cpp: Removed.
+        * ANGLE/src/compiler/Common.h: Removed.
+        * ANGLE/src/compiler/ConstantUnion.h: Removed.
+        * ANGLE/src/compiler/InfoSink.cpp: Removed.
+        * ANGLE/src/compiler/InfoSink.h: Removed.
+        * ANGLE/src/compiler/Initialize.cpp: Removed.
+        * ANGLE/src/compiler/Initialize.h: Removed.
+        * ANGLE/src/compiler/InitializeDll.cpp: Removed.
+        * ANGLE/src/compiler/InitializeDll.h: Removed.
+        * ANGLE/src/compiler/InitializeGlobals.h: Removed.
+        * ANGLE/src/compiler/InitializeParseContext.h: Removed.
+        * ANGLE/src/compiler/IntermTraverse.cpp: Removed.
+        * ANGLE/src/compiler/Intermediate.cpp: Removed.
+        * ANGLE/src/compiler/MMap.h: Removed.
+        * ANGLE/src/compiler/OutputGLSL.cpp: Removed.
+        * ANGLE/src/compiler/OutputGLSL.h: Removed.
+        * ANGLE/src/compiler/OutputHLSL.cpp: Removed.
+        * ANGLE/src/compiler/OutputHLSL.h: Removed.
+        * ANGLE/src/compiler/ParseHelper.cpp: Removed.
+        * ANGLE/src/compiler/ParseHelper.h: Removed.
+        * ANGLE/src/compiler/PoolAlloc.cpp: Removed.
+        * ANGLE/src/compiler/PoolAlloc.h: Removed.
+        * ANGLE/src/compiler/QualifierAlive.cpp: Removed.
+        * ANGLE/src/compiler/QualifierAlive.h: Removed.
+        * ANGLE/src/compiler/RemoveTree.cpp: Removed.
+        * ANGLE/src/compiler/RemoveTree.h: Removed.
+        * ANGLE/src/compiler/ShHandle.h: Removed.
+        * ANGLE/src/compiler/ShaderLang.cpp: Removed.
+        * ANGLE/src/compiler/SymbolTable.cpp: Removed.
+        * ANGLE/src/compiler/SymbolTable.h: Removed.
+        * ANGLE/src/compiler/TranslatorGLSL.cpp: Removed.
+        * ANGLE/src/compiler/TranslatorGLSL.h: Removed.
+        * ANGLE/src/compiler/TranslatorHLSL.cpp: Removed.
+        * ANGLE/src/compiler/TranslatorHLSL.h: Removed.
+        * ANGLE/src/compiler/Types.h: Removed.
+        * ANGLE/src/compiler/UnfoldSelect.cpp: Removed.
+        * ANGLE/src/compiler/UnfoldSelect.h: Removed.
+        * ANGLE/src/compiler/debug.cpp: Removed.
+        * ANGLE/src/compiler/debug.h: Removed.
+        * ANGLE/src/compiler/glslang.l: Removed.
+        * ANGLE/src/compiler/glslang.y: Removed.
+        * ANGLE/src/compiler/intermOut.cpp: Removed.
+        * ANGLE/src/compiler/intermediate.h: Removed.
+        * ANGLE/src/compiler/localintermediate.h: Removed.
+        * ANGLE/src/compiler/osinclude.h: Removed.
+        * ANGLE/src/compiler/ossource_posix.cpp: Removed.
+        * ANGLE/src/compiler/ossource_win.cpp: Removed.
+        * ANGLE/src/compiler/parseConst.cpp: Removed.
+        * ANGLE/src/compiler/preprocessor: Removed.
+        * ANGLE/src/compiler/preprocessor/atom.c: Removed.
+        * ANGLE/src/compiler/preprocessor/atom.h: Removed.
+        * ANGLE/src/compiler/preprocessor/compile.h: Removed.
+        * ANGLE/src/compiler/preprocessor/cpp.c: Removed.
+        * ANGLE/src/compiler/preprocessor/cpp.h: Removed.
+        * ANGLE/src/compiler/preprocessor/cppstruct.c: Removed.
+        * ANGLE/src/compiler/preprocessor/memory.c: Removed.
+        * ANGLE/src/compiler/preprocessor/memory.h: Removed.
+        * ANGLE/src/compiler/preprocessor/parser.h: Removed.
+        * ANGLE/src/compiler/preprocessor/preprocess.h: Removed.
+        * ANGLE/src/compiler/preprocessor/scanner.c: Removed.
+        * ANGLE/src/compiler/preprocessor/scanner.h: Removed.
+        * ANGLE/src/compiler/preprocessor/slglobals.h: Removed.
+        * ANGLE/src/compiler/preprocessor/symbols.c: Removed.
+        * ANGLE/src/compiler/preprocessor/symbols.h: Removed.
+        * ANGLE/src/compiler/preprocessor/tokens.c: Removed.
+        * ANGLE/src/compiler/preprocessor/tokens.h: Removed.
+        * ANGLE/src/compiler/tools: Removed.
+        * ANGLE/src/compiler/unistd.h: Removed.
+        * ANGLE/src/libEGL: Removed.
+        * ANGLE/src/libEGL/Config.cpp: Removed.
+        * ANGLE/src/libEGL/Config.h: Removed.
+        * ANGLE/src/libEGL/Display.cpp: Removed.
+        * ANGLE/src/libEGL/Display.h: Removed.
+        * ANGLE/src/libEGL/Surface.cpp: Removed.
+        * ANGLE/src/libEGL/Surface.h: Removed.
+        * ANGLE/src/libEGL/libEGL.cpp: Removed.
+        * ANGLE/src/libEGL/libEGL.def: Removed.
+        * ANGLE/src/libEGL/libEGL.vcproj: Removed.
+        * ANGLE/src/libEGL/main.cpp: Removed.
+        * ANGLE/src/libEGL/main.h: Removed.
+        * ANGLE/src/libGLESv2: Removed.
+        * ANGLE/src/libGLESv2/Blit.cpp: Removed.
+        * ANGLE/src/libGLESv2/Blit.h: Removed.
+        * ANGLE/src/libGLESv2/Buffer.cpp: Removed.
+        * ANGLE/src/libGLESv2/Buffer.h: Removed.
+        * ANGLE/src/libGLESv2/Context.cpp: Removed.
+        * ANGLE/src/libGLESv2/Context.h: Removed.
+        * ANGLE/src/libGLESv2/Framebuffer.cpp: Removed.
+        * ANGLE/src/libGLESv2/Framebuffer.h: Removed.
+        * ANGLE/src/libGLESv2/Program.cpp: Removed.
+        * ANGLE/src/libGLESv2/Program.h: Removed.
+        * ANGLE/src/libGLESv2/RefCountObject.cpp: Removed.
+        * ANGLE/src/libGLESv2/RefCountObject.h: Removed.
+        * ANGLE/src/libGLESv2/Renderbuffer.cpp: Removed.
+        * ANGLE/src/libGLESv2/Renderbuffer.h: Removed.
+        * ANGLE/src/libGLESv2/ResourceManager.cpp: Removed.
+        * ANGLE/src/libGLESv2/ResourceManager.h: Removed.
+        * ANGLE/src/libGLESv2/Shader.cpp: Removed.
+        * ANGLE/src/libGLESv2/Shader.h: Removed.
+        * ANGLE/src/libGLESv2/Texture.cpp: Removed.
+        * ANGLE/src/libGLESv2/Texture.h: Removed.
+        * ANGLE/src/libGLESv2/geometry: Removed.
+        * ANGLE/src/libGLESv2/geometry/IndexDataManager.cpp: Removed.
+        * ANGLE/src/libGLESv2/geometry/IndexDataManager.h: Removed.
+        * ANGLE/src/libGLESv2/geometry/VertexDataManager.cpp: Removed.
+        * ANGLE/src/libGLESv2/geometry/VertexDataManager.h: Removed.
+        * ANGLE/src/libGLESv2/geometry/backend.cpp: Removed.
+        * ANGLE/src/libGLESv2/geometry/backend.h: Removed.
+        * ANGLE/src/libGLESv2/geometry/dx9.cpp: Removed.
+        * ANGLE/src/libGLESv2/geometry/dx9.h: Removed.
+        * ANGLE/src/libGLESv2/geometry/vertexconversion.h: Removed.
+        * ANGLE/src/libGLESv2/libGLESv2.cpp: Removed.
+        * ANGLE/src/libGLESv2/libGLESv2.def: Removed.
+        * ANGLE/src/libGLESv2/libGLESv2.vcproj: Removed.
+        * ANGLE/src/libGLESv2/main.cpp: Removed.
+        * ANGLE/src/libGLESv2/main.h: Removed.
+        * ANGLE/src/libGLESv2/mathutil.h: Removed.
+        * ANGLE/src/libGLESv2/utilities.cpp: Removed.
+        * ANGLE/src/libGLESv2/utilities.h: Removed.
+        * Makefile:
+        * Sources/ThirdParty: Added.
+        * Sources/ThirdParty/ANGLE: Copied from ANGLE.
+
+2010-12-26  Patrick Gansterer  <paroga@webkit.org>
+
+        Unreviewed WinCE buildfix after r74626.
+
+        * cmake/OptionsWinCE.cmake:
+
+2010-12-24  Darin Adler  <darin@apple.com>
+
+        Updated makefiles used by Apple engineers to fix build with the
+        new JavaScriptGlue location.
+
+        * Makefile: Told this to build JavaScriptGlue. Some day we might
+        want it to descend into Sources instead and use the Makefile there,
+        but there are problems with sequencing the project builds, so that
+        can wait.
+        * Sources/Makefile.shared: Added.
+
+2010-12-24  Ryuan Choi  <ryuan.choi@samsung.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [EFL] Add option to enable Touch Events.
+        https://bugs.webkit.org/show_bug.cgi?id=49125
+
+        Add ENABLE_TOUCH_EVENTS option.
+
+        * cmake/OptionsEfl.cmake:
+        * cmakeconfig.h.cmake:
+
+2010-12-23  Adam Barth  <abarth@webkit.org>
+
+        Rubber-stamped by Eric Seidel.
+
+        Move JavaScriptGlue into Sources
+        https://bugs.webkit.org/show_bug.cgi?id=51583
+
+        Actually perform the move.
+
+        * JavaScriptGlue: Removed.
+        * JavaScriptGlue/Configurations: Removed.
+        * JavaScriptGlue/Configurations/Base.xcconfig: Removed.
+        * JavaScriptGlue/Configurations/DebugRelease.xcconfig: Removed.
+        * JavaScriptGlue/Configurations/JavaScriptGlue.xcconfig: Removed.
+        * JavaScriptGlue/Configurations/Version.xcconfig: Removed.
+        * JavaScriptGlue/English.lproj: Removed.
+        * JavaScriptGlue/English.lproj/InfoPlist.strings: Removed.
+        * JavaScriptGlue/ForwardingHeaders: Removed.
+        * JavaScriptGlue/ForwardingHeaders/masm: Removed.
+        * JavaScriptGlue/ForwardingHeaders/masm/X86Assembler.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/profiler: Removed.
+        * JavaScriptGlue/ForwardingHeaders/profiler/Profiler.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/runtime: Removed.
+        * JavaScriptGlue/ForwardingHeaders/runtime/CallFrame.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/ASCIICType.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/AlwaysInline.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/Assertions.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/Atomics.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/Bitmap.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/BumpPointerAllocator.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/CrossThreadRefCounted.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/CurrentTime.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/DateInstanceCache.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/DateMath.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/FastAllocBase.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/FastMalloc.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/FixedArray.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/Forward.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/HashCountedSet.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/HashFunctions.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/HashMap.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/HashSet.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/HashTraits.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/ListHashSet.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/ListRefPtr.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/Locker.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/MainThread.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/MathExtras.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/Noncopyable.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/NotFound.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/OSAllocator.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/OwnArrayPtr.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/OwnArrayPtrCommon.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/OwnFastMallocPtr.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/OwnPtr.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/OwnPtrCommon.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/PageAllocation.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/PageAllocationAligned.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/PageBlock.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/PageReservation.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/PassOwnArrayPtr.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/PassOwnPtr.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/PassRefPtr.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/Platform.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/PossiblyNull.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/PtrAndFlags.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/RandomNumber.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/RefCounted.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/RefPtr.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/StackBounds.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/StdLibExtras.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/StringHasher.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/ThreadSafeShared.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/ThreadSpecific.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/Threading.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/ThreadingPrimitives.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/UnusedParam.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/VMTags.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/ValueCheck.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/Vector.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/VectorTraits.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/WTFThreadData.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/text: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/text/CString.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/text/StringHash.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/text/StringImpl.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/text/StringImplBase.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/text/TextPosition.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/text/WTFString.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/unicode: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/unicode/Unicode.h: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/unicode/icu: Removed.
+        * JavaScriptGlue/ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h: Removed.
+        * JavaScriptGlue/Info.plist: Removed.
+        * JavaScriptGlue/JSBase.cpp: Removed.
+        * JavaScriptGlue/JSBase.h: Removed.
+        * JavaScriptGlue/JSObject.cpp: Removed.
+        * JavaScriptGlue/JSObject.h: Removed.
+        * JavaScriptGlue/JSRun.cpp: Removed.
+        * JavaScriptGlue/JSRun.h: Removed.
+        * JavaScriptGlue/JSUtils.cpp: Removed.
+        * JavaScriptGlue/JSUtils.h: Removed.
+        * JavaScriptGlue/JSValueWrapper.cpp: Removed.
+        * JavaScriptGlue/JSValueWrapper.h: Removed.
+        * JavaScriptGlue/JavaScriptGlue.cpp: Removed.
+        * JavaScriptGlue/JavaScriptGlue.exp: Removed.
+        * JavaScriptGlue/JavaScriptGlue.h: Removed.
+        * JavaScriptGlue/JavaScriptGlue.xcodeproj: Removed.
+        * JavaScriptGlue/JavaScriptGlue.xcodeproj/project.pbxproj: Removed.
+        * JavaScriptGlue/LICENSE: Removed.
+        * JavaScriptGlue/Makefile: Removed.
+        * JavaScriptGlue/UserObjectImp.cpp: Removed.
+        * JavaScriptGlue/UserObjectImp.h: Removed.
+        * JavaScriptGlue/config.h: Removed.
+        * JavaScriptGlue/icu: Removed.
+        * JavaScriptGlue/icu/LICENSE: Removed.
+        * JavaScriptGlue/icu/README: Removed.
+        * JavaScriptGlue/icu/unicode: Removed.
+        * JavaScriptGlue/icu/unicode/platform.h: Removed.
+        * JavaScriptGlue/icu/unicode/putil.h: Removed.
+        * JavaScriptGlue/icu/unicode/uchar.h: Removed.
+        * JavaScriptGlue/icu/unicode/ucnv.h: Removed.
+        * JavaScriptGlue/icu/unicode/ucnv_err.h: Removed.
+        * JavaScriptGlue/icu/unicode/uconfig.h: Removed.
+        * JavaScriptGlue/icu/unicode/uenum.h: Removed.
+        * JavaScriptGlue/icu/unicode/uiter.h: Removed.
+        * JavaScriptGlue/icu/unicode/umachine.h: Removed.
+        * JavaScriptGlue/icu/unicode/urename.h: Removed.
+        * JavaScriptGlue/icu/unicode/ustring.h: Removed.
+        * JavaScriptGlue/icu/unicode/utf.h: Removed.
+        * JavaScriptGlue/icu/unicode/utf16.h: Removed.
+        * JavaScriptGlue/icu/unicode/utf8.h: Removed.
+        * JavaScriptGlue/icu/unicode/utf_old.h: Removed.
+        * JavaScriptGlue/icu/unicode/utypes.h: Removed.
+        * JavaScriptGlue/icu/unicode/uversion.h: Removed.
+        * JavaScriptGlue/testjsglue.cpp: Removed.
+        * Makefile:
+        * Sources: Added.
+        * Sources/JavaScriptGlue: Copied from JavaScriptGlue.
+        * Sources/Makefile: Added.
+
+2010-12-23  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [EFL] Fix ContextMenu removal
+        https://bugs.webkit.org/show_bug.cgi?id=51530
+
+        Fix ContextMenu removal
+
+        In r74207 the support for ContextMenu was removed from EFL while the
+        code is being ported to the new CROSS_PLATFORM_MENUS due to build
+        breakage.  However there were some missing removals in the shutdown
+        logic that introduced a bug, leading to a segmentation fault when
+        ContexController was destroyed.
+
+        The best way to effectively disable the ContextMenu is to conditionally
+        compile the meaningful stuff by surrounding with "#if
+        ENABLE(CONTEXT_MENUS)" and then disabling it in CMake.
+
+        * cmake/OptionsEfl.cmake: Disable ContextMenu and don't pretend we
+        implement CROSS_PLATFORM_MENUS yet.
+
+2010-12-22  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Gustavo Noronha.
+
+        * configure.ac: bump version to 1.3.9.
+
+2010-12-22  Xan Lopez  <xlopez@igalia.com>
+
+        Reviewed by Gustavo Noronha.
+
+        [GTK] Compilation fixes with GTK+ 2.91.7
+        https://bugs.webkit.org/show_bug.cgi?id=51487
+
+        * configure.ac: depend on GTK+ 2.91.7 when using GTK+ 3.x.
+
+2010-12-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Reviewed by Antonio Gomes.
+
+        [EFL] Sets default user agent
+        https://bugs.webkit.org/show_bug.cgi?id=47903
+
+        Add macros for WebKit EFL and User Agent.
+
+        * cmake/OptionsEfl.cmake:
+        * cmakeconfig.h.cmake:
+
+2010-12-20  Adam Barth  <abarth@webkit.org>
+
+        Move web sites to Websites directory
+        https://bugs.webkit.org/show_bug.cgi?id=51323
+
+        This patch was never officially reviewed (because it was too large to
+        upload to bugs.webkit.org), but it was discussed on webkit-dev and Mark
+        Rowe gave me the green light.
+
+        * BugsSite: Removed.
+        * BugsSite/.cvsignore: Removed.
+        * BugsSite/.htaccess: Removed.
+        * BugsSite/Bugzilla: Removed.
+        * BugsSite/Bugzilla.pm: Removed.
+        * BugsSite/Bugzilla/.cvsignore: Removed.
+        * BugsSite/Bugzilla/.htaccess: Removed.
+        * BugsSite/Bugzilla/Attachment: Removed.
+        * BugsSite/Bugzilla/Attachment.pm: Removed.
+        * BugsSite/Bugzilla/Attachment/PatchReader.pm: Removed.
+        * BugsSite/Bugzilla/Auth: Removed.
+        * BugsSite/Bugzilla/Auth.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Login: Removed.
+        * BugsSite/Bugzilla/Auth/Login.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Login/CGI.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Login/Cookie.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Login/Env.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Login/Stack.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Login/WWW: Removed.
+        * BugsSite/Bugzilla/Auth/Login/WWW/CGI: Removed.
+        * BugsSite/Bugzilla/Auth/Persist: Removed.
+        * BugsSite/Bugzilla/Auth/Persist/Cookie.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Verify: Removed.
+        * BugsSite/Bugzilla/Auth/Verify.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Verify/DB.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Verify/LDAP.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Verify/RADIUS.pm: Removed.
+        * BugsSite/Bugzilla/Auth/Verify/Stack.pm: Removed.
+        * BugsSite/Bugzilla/Bug.pm: Removed.
+        * BugsSite/Bugzilla/BugMail.pm: Removed.
+        * BugsSite/Bugzilla/CGI.pm: Removed.
+        * BugsSite/Bugzilla/Chart.pm: Removed.
+        * BugsSite/Bugzilla/Classification.pm: Removed.
+        * BugsSite/Bugzilla/Component.pm: Removed.
+        * BugsSite/Bugzilla/Config: Removed.
+        * BugsSite/Bugzilla/Config.pm: Removed.
+        * BugsSite/Bugzilla/Config/Admin.pm: Removed.
+        * BugsSite/Bugzilla/Config/Attachment.pm: Removed.
+        * BugsSite/Bugzilla/Config/Auth.pm: Removed.
+        * BugsSite/Bugzilla/Config/BugChange.pm: Removed.
+        * BugsSite/Bugzilla/Config/BugFields.pm: Removed.
+        * BugsSite/Bugzilla/Config/BugMove.pm: Removed.
+        * BugsSite/Bugzilla/Config/Common.pm: Removed.
+        * BugsSite/Bugzilla/Config/Core.pm: Removed.
+        * BugsSite/Bugzilla/Config/DependencyGraph.pm: Removed.
+        * BugsSite/Bugzilla/Config/GroupSecurity.pm: Removed.
+        * BugsSite/Bugzilla/Config/LDAP.pm: Removed.
+        * BugsSite/Bugzilla/Config/MTA.pm: Removed.
+        * BugsSite/Bugzilla/Config/PatchViewer.pm: Removed.
+        * BugsSite/Bugzilla/Config/Query.pm: Removed.
+        * BugsSite/Bugzilla/Config/RADIUS.pm: Removed.
+        * BugsSite/Bugzilla/Config/ShadowDB.pm: Removed.
+        * BugsSite/Bugzilla/Config/UserMatch.pm: Removed.
+        * BugsSite/Bugzilla/Constants.pm: Removed.
+        * BugsSite/Bugzilla/DB: Removed.
+        * BugsSite/Bugzilla/DB.pm: Removed.
+        * BugsSite/Bugzilla/DB/Mysql.pm: Removed.
+        * BugsSite/Bugzilla/DB/Oracle.pm: Removed.
+        * BugsSite/Bugzilla/DB/Pg.pm: Removed.
+        * BugsSite/Bugzilla/DB/Schema: Removed.
+        * BugsSite/Bugzilla/DB/Schema.pm: Removed.
+        * BugsSite/Bugzilla/DB/Schema/Mysql.pm: Removed.
+        * BugsSite/Bugzilla/DB/Schema/Oracle.pm: Removed.
+        * BugsSite/Bugzilla/DB/Schema/Pg.pm: Removed.
+        * BugsSite/Bugzilla/Error.pm: Removed.
+        * BugsSite/Bugzilla/Field.pm: Removed.
+        * BugsSite/Bugzilla/Flag.pm: Removed.
+        * BugsSite/Bugzilla/FlagType.pm: Removed.
+        * BugsSite/Bugzilla/Group.pm: Removed.
+        * BugsSite/Bugzilla/Hook.pm: Removed.
+        * BugsSite/Bugzilla/Install: Removed.
+        * BugsSite/Bugzilla/Install.pm: Removed.
+        * BugsSite/Bugzilla/Install/CPAN.pm: Removed.
+        * BugsSite/Bugzilla/Install/DB.pm: Removed.
+        * BugsSite/Bugzilla/Install/Filesystem.pm: Removed.
+        * BugsSite/Bugzilla/Install/Localconfig.pm: Removed.
+        * BugsSite/Bugzilla/Install/Requirements.pm: Removed.
+        * BugsSite/Bugzilla/Install/Util.pm: Removed.
+        * BugsSite/Bugzilla/Keyword.pm: Removed.
+        * BugsSite/Bugzilla/Mailer.pm: Removed.
+        * BugsSite/Bugzilla/Milestone.pm: Removed.
+        * BugsSite/Bugzilla/Object.pm: Removed.
+        * BugsSite/Bugzilla/Product.pm: Removed.
+        * BugsSite/Bugzilla/Search: Removed.
+        * BugsSite/Bugzilla/Search.pm: Removed.
+        * BugsSite/Bugzilla/Search/Quicksearch.pm: Removed.
+        * BugsSite/Bugzilla/Search/Saved.pm: Removed.
+        * BugsSite/Bugzilla/Series.pm: Removed.
+        * BugsSite/Bugzilla/Status.pm: Removed.
+        * BugsSite/Bugzilla/Template: Removed.
+        * BugsSite/Bugzilla/Template.pm: Removed.
+        * BugsSite/Bugzilla/Template/Parser.pm: Removed.
+        * BugsSite/Bugzilla/Template/Plugin: Removed.
+        * BugsSite/Bugzilla/Template/Plugin/Bugzilla.pm: Removed.
+        * BugsSite/Bugzilla/Template/Plugin/Hook.pm: Removed.
+        * BugsSite/Bugzilla/Template/Plugin/User.pm: Removed.
+        * BugsSite/Bugzilla/Token.pm: Removed.
+        * BugsSite/Bugzilla/Update.pm: Removed.
+        * BugsSite/Bugzilla/User: Removed.
+        * BugsSite/Bugzilla/User.pm: Removed.
+        * BugsSite/Bugzilla/User/Setting: Removed.
+        * BugsSite/Bugzilla/User/Setting.pm: Removed.
+        * BugsSite/Bugzilla/User/Setting/Lang.pm: Removed.
+        * BugsSite/Bugzilla/User/Setting/Skin.pm: Removed.
+        * BugsSite/Bugzilla/Util.pm: Removed.
+        * BugsSite/Bugzilla/Version.pm: Removed.
+        * BugsSite/Bugzilla/WebService: Removed.
+        * BugsSite/Bugzilla/WebService.pm: Removed.
+        * BugsSite/Bugzilla/WebService/Bug.pm: Removed.
+        * BugsSite/Bugzilla/WebService/Bugzilla.pm: Removed.
+        * BugsSite/Bugzilla/WebService/Constants.pm: Removed.
+        * BugsSite/Bugzilla/WebService/Product.pm: Removed.
+        * BugsSite/Bugzilla/WebService/User.pm: Removed.
+        * BugsSite/PrettyPatch: Removed.
+        * BugsSite/PrettyPatch/PrettyPatch.rb: Removed.
+        * BugsSite/PrettyPatch/diff.rb: Removed.
+        * BugsSite/PrettyPatch/prettify.rb: Removed.
+        * BugsSite/QUICKSTART: Removed.
+        * BugsSite/README: Removed.
+        * BugsSite/UPGRADING: Removed.
+        * BugsSite/UPGRADING-pre-2.8: Removed.
+        * BugsSite/admin.cgi: Removed.
+        * BugsSite/attachment.cgi: Removed.
+        * BugsSite/buglist.cgi: Removed.
+        * BugsSite/bugzilla.dtd: Removed.
+        * BugsSite/chart.cgi: Removed.
+        * BugsSite/checksetup.pl: Removed.
+        * BugsSite/code-review.js: Removed.
+        * BugsSite/colchange.cgi: Removed.
+        * BugsSite/collectstats.pl: Removed.
+        * BugsSite/committers-autocomplete.js: Removed.
+        * BugsSite/config.cgi: Removed.
+        * BugsSite/contrib: Removed.
+        * BugsSite/contrib/README: Removed.
+        * BugsSite/contrib/bugzilla-submit: Removed.
+        * BugsSite/contrib/bugzilla-submit/README: Removed.
+        * BugsSite/contrib/bugzilla-submit/bugdata.txt: Removed.
+        * BugsSite/contrib/bugzilla-submit/bugzilla-submit: Removed.
+        * BugsSite/contrib/bugzilla-submit/bugzilla-submit.xml: Removed.
+        * BugsSite/contrib/bugzilla_ldapsync.rb: Removed.
+        * BugsSite/contrib/bz_webservice_demo.pl: Removed.
+        * BugsSite/contrib/bzdbcopy.pl: Removed.
+        * BugsSite/contrib/cmdline: Removed.
+        * BugsSite/contrib/cmdline/bugcount: Removed.
+        * BugsSite/contrib/cmdline/bugids: Removed.
+        * BugsSite/contrib/cmdline/buglist: Removed.
+        * BugsSite/contrib/cmdline/bugs: Removed.
+        * BugsSite/contrib/cmdline/bugslink: Removed.
+        * BugsSite/contrib/cmdline/makequery: Removed.
+        * BugsSite/contrib/cmdline/query.conf: Removed.
+        * BugsSite/contrib/cvs-update.pl: Removed.
+        * BugsSite/contrib/gnats2bz.pl: Removed.
+        * BugsSite/contrib/gnatsparse: Removed.
+        * BugsSite/contrib/gnatsparse/README: Removed.
+        * BugsSite/contrib/gnatsparse/gnatsparse.py: Removed.
+        * BugsSite/contrib/gnatsparse/magic.py: Removed.
+        * BugsSite/contrib/gnatsparse/specialuu.py: Removed.
+        * BugsSite/contrib/jb2bz.py: Removed.
+        * BugsSite/contrib/merge-users.pl: Removed.
+        * BugsSite/contrib/mysqld-watcher.pl: Removed.
+        * BugsSite/contrib/recode-overrides.txt: Removed.
+        * BugsSite/contrib/recode.pl: Removed.
+        * BugsSite/contrib/sendbugmail.pl: Removed.
+        * BugsSite/contrib/sendunsentbugmail.pl: Removed.
+        * BugsSite/contrib/syncLDAP.pl: Removed.
+        * BugsSite/contrib/yp_nomail.sh: Removed.
+        * BugsSite/createaccount.cgi: Removed.
+        * BugsSite/data: Removed.
+        * BugsSite/data/.htaccess: Removed.
+        * BugsSite/data/attachments: Removed.
+        * BugsSite/data/attachments/.htaccess: Removed.
+        * BugsSite/data/duplicates: Removed.
+        * BugsSite/data/mail: Removed.
+        * BugsSite/data/mimedump-tmp: Removed.
+        * BugsSite/data/mining: Removed.
+        * BugsSite/data/params: Removed.
+        * BugsSite/data/template: Removed.
+        * BugsSite/data/webdot: Removed.
+        * BugsSite/data/webdot/.htaccess: Removed.
+        * BugsSite/describecomponents.cgi: Removed.
+        * BugsSite/describekeywords.cgi: Removed.
+        * BugsSite/docs: Removed.
+        * BugsSite/docs/en: Removed.
+        * BugsSite/docs/en/.cvsignore: Removed.
+        * BugsSite/docs/en/README.docs: Removed.
+        * BugsSite/docs/en/images: Removed.
+        * BugsSite/docs/en/images/bzLifecycle.png: Removed.
+        * BugsSite/docs/en/images/bzLifecycle.xml: Removed.
+        * BugsSite/docs/en/images/callouts: Removed.
+        * BugsSite/docs/en/images/callouts/1.gif: Removed.
+        * BugsSite/docs/en/images/callouts/2.gif: Removed.
+        * BugsSite/docs/en/images/callouts/3.gif: Removed.
+        * BugsSite/docs/en/images/caution.gif: Removed.
+        * BugsSite/docs/en/images/note.gif: Removed.
+        * BugsSite/docs/en/images/tip.gif: Removed.
+        * BugsSite/docs/en/images/warning.gif: Removed.
+        * BugsSite/docs/en/rel_notes.txt: Removed.
+        * BugsSite/docs/en/xml: Removed.
+        * BugsSite/docs/en/xml/.cvsignore: Removed.
+        * BugsSite/docs/en/xml/Bugzilla-Guide.xml: Removed.
+        * BugsSite/docs/en/xml/about.xml: Removed.
+        * BugsSite/docs/en/xml/administration.xml: Removed.
+        * BugsSite/docs/en/xml/conventions.xml: Removed.
+        * BugsSite/docs/en/xml/customization.xml: Removed.
+        * BugsSite/docs/en/xml/gfdl.xml: Removed.
+        * BugsSite/docs/en/xml/glossary.xml: Removed.
+        * BugsSite/docs/en/xml/index.xml: Removed.
+        * BugsSite/docs/en/xml/installation.xml: Removed.
+        * BugsSite/docs/en/xml/integration.xml: Removed.
+        * BugsSite/docs/en/xml/introduction.xml: Removed.
+        * BugsSite/docs/en/xml/modules.xml: Removed.
+        * BugsSite/docs/en/xml/patches.xml: Removed.
+        * BugsSite/docs/en/xml/requiredsoftware.xml: Removed.
+        * BugsSite/docs/en/xml/security.xml: Removed.
+        * BugsSite/docs/en/xml/troubleshooting.xml: Removed.
+        * BugsSite/docs/en/xml/using.xml: Removed.
+        * BugsSite/docs/html: Removed.
+        * BugsSite/docs/html/api: Removed.
+        * BugsSite/docs/images: Removed.
+        * BugsSite/docs/images/callouts: Removed.
+        * BugsSite/docs/lib: Removed.
+        * BugsSite/docs/lib/Pod: Removed.
+        * BugsSite/docs/lib/Pod/Simple: Removed.
+        * BugsSite/docs/lib/Pod/Simple/HTML: Removed.
+        * BugsSite/docs/lib/Pod/Simple/HTML/Bugzilla.pm: Removed.
+        * BugsSite/docs/lib/Pod/Simple/HTMLBatch: Removed.
+        * BugsSite/docs/lib/Pod/Simple/HTMLBatch/Bugzilla.pm: Removed.
+        * BugsSite/docs/makedocs.pl: Removed.
+        * BugsSite/docs/pdf: Removed.
+        * BugsSite/docs/style.css: Removed.
+        * BugsSite/docs/txt: Removed.
+        * BugsSite/docs/xml: Removed.
+        * BugsSite/duplicates.cgi: Removed.
+        * BugsSite/editclassifications.cgi: Removed.
+        * BugsSite/editcomponents.cgi: Removed.
+        * BugsSite/editfields.cgi: Removed.
+        * BugsSite/editflagtypes.cgi: Removed.
+        * BugsSite/editgroups.cgi: Removed.
+        * BugsSite/editkeywords.cgi: Removed.
+        * BugsSite/editmilestones.cgi: Removed.
+        * BugsSite/editparams.cgi: Removed.
+        * BugsSite/editproducts.cgi: Removed.
+        * BugsSite/editsettings.cgi: Removed.
+        * BugsSite/editusers.cgi: Removed.
+        * BugsSite/editvalues.cgi: Removed.
+        * BugsSite/editversions.cgi: Removed.
+        * BugsSite/editwhines.cgi: Removed.
+        * BugsSite/editworkflow.cgi: Removed.
+        * BugsSite/email_in.pl: Removed.
+        * BugsSite/enter_bug.cgi: Removed.
+        * BugsSite/extensions: Removed.
+        * BugsSite/extensions/example: Removed.
+        * BugsSite/extensions/example/code: Removed.
+        * BugsSite/extensions/example/code/bug-end_of_update.pl: Removed.
+        * BugsSite/extensions/example/code/buglist-columns.pl: Removed.
+        * BugsSite/extensions/example/code/colchange-columns.pl: Removed.
+        * BugsSite/extensions/example/code/config.pl: Removed.
+        * BugsSite/extensions/example/code/flag-end_of_update.pl: Removed.
+        * BugsSite/extensions/example/code/install-before_final_checks.pl: Removed.
+        * BugsSite/extensions/example/code/product-confirm_delete.pl: Removed.
+        * BugsSite/extensions/example/code/webservice-error_codes.pl: Removed.
+        * BugsSite/extensions/example/code/webservice.pl: Removed.
+        * BugsSite/extensions/example/disabled: Removed.
+        * BugsSite/extensions/example/info.pl: Removed.
+        * BugsSite/extensions/example/lib: Removed.
+        * BugsSite/extensions/example/lib/ConfigExample.pm: Removed.
+        * BugsSite/extensions/example/lib/WSExample.pm: Removed.
+        * BugsSite/extensions/example/template: Removed.
+        * BugsSite/extensions/example/template/en: Removed.
+        * BugsSite/extensions/example/template/en/default: Removed.
+        * BugsSite/extensions/example/template/en/default/admin: Removed.
+        * BugsSite/extensions/example/template/en/default/admin/params: Removed.
+        * BugsSite/extensions/example/template/en/default/admin/params/example.html.tmpl: Removed.
+        * BugsSite/extensions/example/template/en/global: Removed.
+        * BugsSite/extensions/example/template/en/global/user-error-errors.html.tmpl: Removed.
+        * BugsSite/graphs: Removed.
+        * BugsSite/images: Removed.
+        * BugsSite/images/favicon.ico: Removed.
+        * BugsSite/images/padlock.png: Removed.
+        * BugsSite/importxml.pl: Removed.
+        * BugsSite/index.cgi: Removed.
+        * BugsSite/install-module.pl: Removed.
+        * BugsSite/js: Removed.
+        * BugsSite/js/TUI.js: Removed.
+        * BugsSite/js/attachment.js: Removed.
+        * BugsSite/js/expanding-tree.js: Removed.
+        * BugsSite/js/field.js: Removed.
+        * BugsSite/js/help.js: Removed.
+        * BugsSite/js/params.js: Removed.
+        * BugsSite/js/productform.js: Removed.
+        * BugsSite/js/util.js: Removed.
+        * BugsSite/js/yui: Removed.
+        * BugsSite/js/yui/calendar.js: Removed.
+        * BugsSite/js/yui/yahoo-dom-event.js: Removed.
+        * BugsSite/lib: Removed.
+        * BugsSite/lib/.htaccess: Removed.
+        * BugsSite/lib/README: Removed.
+        * BugsSite/long_list.cgi: Removed.
+        * BugsSite/mod_perl.pl: Removed.
+        * BugsSite/page.cgi: Removed.
+        * BugsSite/post_bug.cgi: Removed.
+        * BugsSite/process_bug.cgi: Removed.
+        * BugsSite/query.cgi: Removed.
+        * BugsSite/quips.cgi: Removed.
+        * BugsSite/relogin.cgi: Removed.
+        * BugsSite/report.cgi: Removed.
+        * BugsSite/reports.cgi: Removed.
+        * BugsSite/request.cgi: Removed.
+        * BugsSite/robots.txt: Removed.
+        * BugsSite/runtests.pl: Removed.
+        * BugsSite/sanitycheck.cgi: Removed.
+        * BugsSite/sanitycheck.pl: Removed.
+        * BugsSite/search_plugin.cgi: Removed.
+        * BugsSite/show_activity.cgi: Removed.
+        * BugsSite/show_bug.cgi: Removed.
+        * BugsSite/showattachment.cgi: Removed.
+        * BugsSite/showdependencygraph.cgi: Removed.
+        * BugsSite/showdependencytree.cgi: Removed.
+        * BugsSite/sidebar.cgi: Removed.
+        * BugsSite/skins: Removed.
+        * BugsSite/skins/.cvsignore: Removed.
+        * BugsSite/skins/contrib: Removed.
+        * BugsSite/skins/contrib/Dusk: Removed.
+        * BugsSite/skins/contrib/Dusk/.cvsignore: Removed.
+        * BugsSite/skins/contrib/Dusk/IE-fixes.css: Removed.
+        * BugsSite/skins/contrib/Dusk/admin.css: Removed.
+        * BugsSite/skins/contrib/Dusk/buglist.css: Removed.
+        * BugsSite/skins/contrib/Dusk/create_attachment.css: Removed.
+        * BugsSite/skins/contrib/Dusk/dependency-tree.css: Removed.
+        * BugsSite/skins/contrib/Dusk/duplicates.css: Removed.
+        * BugsSite/skins/contrib/Dusk/editusers.css: Removed.
+        * BugsSite/skins/contrib/Dusk/global.css: Removed.
+        * BugsSite/skins/contrib/Dusk/help.css: Removed.
+        * BugsSite/skins/contrib/Dusk/index.css: Removed.
+        * BugsSite/skins/contrib/Dusk/panel.css: Removed.
+        * BugsSite/skins/contrib/Dusk/params.css: Removed.
+        * BugsSite/skins/contrib/Dusk/release-notes.css: Removed.
+        * BugsSite/skins/contrib/Dusk/show_bug.css: Removed.
+        * BugsSite/skins/contrib/Dusk/show_multiple.css: Removed.
+        * BugsSite/skins/contrib/Dusk/summarize-time.css: Removed.
+        * BugsSite/skins/contrib/Dusk/voting.css: Removed.
+        * BugsSite/skins/contrib/Dusk/yui: Removed.
+        * BugsSite/skins/contrib/Dusk/yui/calendar.css: Removed.
+        * BugsSite/skins/custom: Removed.
+        * BugsSite/skins/custom/IE-fixes.css: Removed.
+        * BugsSite/skins/custom/admin.css: Removed.
+        * BugsSite/skins/custom/buglist.css: Removed.
+        * BugsSite/skins/custom/create_attachment.css: Removed.
+        * BugsSite/skins/custom/dependency-tree.css: Removed.
+        * BugsSite/skins/custom/duplicates.css: Removed.
+        * BugsSite/skins/custom/editusers.css: Removed.
+        * BugsSite/skins/custom/global.css: Removed.
+        * BugsSite/skins/custom/help.css: Removed.
+        * BugsSite/skins/custom/index.css: Removed.
+        * BugsSite/skins/custom/opendarwin.gif: Removed.
+        * BugsSite/skins/custom/panel.css: Removed.
+        * BugsSite/skins/custom/params.css: Removed.
+        * BugsSite/skins/custom/release-notes.css: Removed.
+        * BugsSite/skins/custom/show_bug.css: Removed.
+        * BugsSite/skins/custom/show_multiple.css: Removed.
+        * BugsSite/skins/custom/summarize-time.css: Removed.
+        * BugsSite/skins/custom/voting.css: Removed.
+        * BugsSite/skins/custom/yui: Removed.
+        * BugsSite/skins/custom/yui/calendar.css: Removed.
+        * BugsSite/skins/standard: Removed.
+        * BugsSite/skins/standard/IE-fixes.css: Removed.
+        * BugsSite/skins/standard/admin.css: Removed.
+        * BugsSite/skins/standard/buglist.css: Removed.
+        * BugsSite/skins/standard/create_attachment.css: Removed.
+        * BugsSite/skins/standard/dependency-tree: Removed.
+        * BugsSite/skins/standard/dependency-tree.css: Removed.
+        * BugsSite/skins/standard/dependency-tree/bug-item.png: Removed.
+        * BugsSite/skins/standard/dependency-tree/tree-closed.png: Removed.
+        * BugsSite/skins/standard/dependency-tree/tree-open.png: Removed.
+        * BugsSite/skins/standard/dependency-tree/tree.png: Removed.
+        * BugsSite/skins/standard/duplicates.css: Removed.
+        * BugsSite/skins/standard/editusers.css: Removed.
+        * BugsSite/skins/standard/global: Removed.
+        * BugsSite/skins/standard/global.css: Removed.
+        * BugsSite/skins/standard/global/body-back.gif: Removed.
+        * BugsSite/skins/standard/global/calendar.png: Removed.
+        * BugsSite/skins/standard/global/header.png: Removed.
+        * BugsSite/skins/standard/help.css: Removed.
+        * BugsSite/skins/standard/index: Removed.
+        * BugsSite/skins/standard/index.css: Removed.
+        * BugsSite/skins/standard/index/front.png: Removed.
+        * BugsSite/skins/standard/panel.css: Removed.
+        * BugsSite/skins/standard/params.css: Removed.
+        * BugsSite/skins/standard/release-notes.css: Removed.
+        * BugsSite/skins/standard/show_bug.css: Removed.
+        * BugsSite/skins/standard/show_multiple.css: Removed.
+        * BugsSite/skins/standard/summarize-time.css: Removed.
+        * BugsSite/skins/standard/voting.css: Removed.
+        * BugsSite/skins/standard/yui: Removed.
+        * BugsSite/skins/standard/yui/calendar.css: Removed.
+        * BugsSite/skins/standard/yui/sprite.png: Removed.
+        * BugsSite/summarize_time.cgi: Removed.
+        * BugsSite/t: Removed.
+        * BugsSite/t/001compile.t: Removed.
+        * BugsSite/t/002goodperl.t: Removed.
+        * BugsSite/t/003safesys.t: Removed.
+        * BugsSite/t/004template.t: Removed.
+        * BugsSite/t/005no_tabs.t: Removed.
+        * BugsSite/t/006spellcheck.t: Removed.
+        * BugsSite/t/007util.t: Removed.
+        * BugsSite/t/008filter.t: Removed.
+        * BugsSite/t/009bugwords.t: Removed.
+        * BugsSite/t/010dependencies.t: Removed.
+        * BugsSite/t/011pod.t: Removed.
+        * BugsSite/t/012throwables.t: Removed.
+        * BugsSite/t/Support: Removed.
+        * BugsSite/t/Support/Files.pm: Removed.
+        * BugsSite/t/Support/Systemexec.pm: Removed.
+        * BugsSite/t/Support/Templates.pm: Removed.
+        * BugsSite/template: Removed.
+        * BugsSite/template/.cvsignore: Removed.
+        * BugsSite/template/.htaccess: Removed.
+        * BugsSite/template/en: Removed.
+        * BugsSite/template/en/.cvsignore: Removed.
+        * BugsSite/template/en/custom: Removed.
+        * BugsSite/template/en/custom/account: Removed.
+        * BugsSite/template/en/custom/account/auth: Removed.
+        * BugsSite/template/en/custom/account/email: Removed.
+        * BugsSite/template/en/custom/account/password: Removed.
+        * BugsSite/template/en/custom/account/prefs: Removed.
+        * BugsSite/template/en/custom/admin: Removed.
+        * BugsSite/template/en/custom/admin/classifications: Removed.
+        * BugsSite/template/en/custom/admin/components: Removed.
+        * BugsSite/template/en/custom/admin/fieldvalues: Removed.
+        * BugsSite/template/en/custom/admin/flag-type: Removed.
+        * BugsSite/template/en/custom/admin/groups: Removed.
+        * BugsSite/template/en/custom/admin/keywords: Removed.
+        * BugsSite/template/en/custom/admin/milestones: Removed.
+        * BugsSite/template/en/custom/admin/products: Removed.
+        * BugsSite/template/en/custom/admin/products/groupcontrol: Removed.
+        * BugsSite/template/en/custom/admin/settings: Removed.
+        * BugsSite/template/en/custom/admin/users: Removed.
+        * BugsSite/template/en/custom/admin/versions: Removed.
+        * BugsSite/template/en/custom/attachment: Removed.
+        * BugsSite/template/en/custom/attachment/content-types.html.tmpl: Removed.
+        * BugsSite/template/en/custom/attachment/create.html.tmpl: Removed.
+        * BugsSite/template/en/custom/attachment/created.html.tmpl: Removed.
+        * BugsSite/template/en/custom/attachment/edit.html.tmpl: Removed.
+        * BugsSite/template/en/custom/attachment/list.html.tmpl: Removed.
+        * BugsSite/template/en/custom/attachment/review.html.tmpl: Removed.
+        * BugsSite/template/en/custom/attachment/reviewform.html.tmpl: Removed.
+        * BugsSite/template/en/custom/attachment/rietveldreview.html.tmpl: Removed.
+        * BugsSite/template/en/custom/bug: Removed.
+        * BugsSite/template/en/custom/bug/activity: Removed.
+        * BugsSite/template/en/custom/bug/create: Removed.
+        * BugsSite/template/en/custom/bug/edit.html.tmpl: Removed.
+        * BugsSite/template/en/custom/bug/navigate.html.tmpl: Removed.
+        * BugsSite/template/en/custom/bug/process: Removed.
+        * BugsSite/template/en/custom/bug/votes: Removed.
+        * BugsSite/template/en/custom/flag: Removed.
+        * BugsSite/template/en/custom/flag/list.html.tmpl: Removed.
+        * BugsSite/template/en/custom/global: Removed.
+        * BugsSite/template/en/custom/global/choose-product.html.tmpl: Removed.
+        * BugsSite/template/en/custom/global/header.html.tmpl: Removed.
+        * BugsSite/template/en/custom/list: Removed.
+        * BugsSite/template/en/custom/list/list.html.tmpl: Removed.
+        * BugsSite/template/en/custom/pages: Removed.
+        * BugsSite/template/en/custom/reports: Removed.
+        * BugsSite/template/en/custom/request: Removed.
+        * BugsSite/template/en/custom/request/email.txt.tmpl: Removed.
+        * BugsSite/template/en/custom/request/queue.html.tmpl: Removed.
+        * BugsSite/template/en/custom/search: Removed.
+        * BugsSite/template/en/custom/whine: Removed.
+        * BugsSite/template/en/default: Removed.
+        * BugsSite/template/en/default/account: Removed.
+        * BugsSite/template/en/default/account/auth: Removed.
+        * BugsSite/template/en/default/account/auth/login-small.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/auth/login.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/cancel-token.txt.tmpl: Removed.
+        * BugsSite/template/en/default/account/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/created.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/email: Removed.
+        * BugsSite/template/en/default/account/email/change-new.txt.tmpl: Removed.
+        * BugsSite/template/en/default/account/email/change-old.txt.tmpl: Removed.
+        * BugsSite/template/en/default/account/email/confirm-new.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/email/confirm.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/email/request-new.txt.tmpl: Removed.
+        * BugsSite/template/en/default/account/password: Removed.
+        * BugsSite/template/en/default/account/password/forgotten-password.txt.tmpl: Removed.
+        * BugsSite/template/en/default/account/password/set-forgotten-password.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/prefs: Removed.
+        * BugsSite/template/en/default/account/prefs/account.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/prefs/email.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/prefs/permissions.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/prefs/prefs.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/prefs/saved-searches.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/prefs/settings.html.tmpl: Removed.
+        * BugsSite/template/en/default/account/profile-activity.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin: Removed.
+        * BugsSite/template/en/default/admin/admin.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/classifications: Removed.
+        * BugsSite/template/en/default/admin/classifications/add.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/classifications/del.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/classifications/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/classifications/reclassify.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/classifications/select.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/components: Removed.
+        * BugsSite/template/en/default/admin/components/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/components/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/components/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/components/footer.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/components/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/components/select-product.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/confirm-action.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/custom_fields: Removed.
+        * BugsSite/template/en/default/admin/custom_fields/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/custom_fields/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/custom_fields/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/custom_fields/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/fieldvalues: Removed.
+        * BugsSite/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/fieldvalues/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/fieldvalues/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/fieldvalues/footer.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/fieldvalues/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/fieldvalues/select-field.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/flag-type: Removed.
+        * BugsSite/template/en/default/admin/flag-type/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/flag-type/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/flag-type/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/groups: Removed.
+        * BugsSite/template/en/default/admin/groups/confirm-remove.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/groups/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/groups/delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/groups/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/groups/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/keywords: Removed.
+        * BugsSite/template/en/default/admin/keywords/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/keywords/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/keywords/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/keywords/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/milestones: Removed.
+        * BugsSite/template/en/default/admin/milestones/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/milestones/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/milestones/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/milestones/footer.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/milestones/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/milestones/select-product.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params: Removed.
+        * BugsSite/template/en/default/admin/params/admin.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/attachment.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/auth.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/bugchange.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/bugfields.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/bugmove.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/common.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/core.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/dependencygraph.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/editparams.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/groupsecurity.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/index.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/ldap.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/mta.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/patchviewer.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/query.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/radius.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/shadowdb.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/params/usermatch.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products: Removed.
+        * BugsSite/template/en/default/admin/products/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/edit-common.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/footer.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/groupcontrol: Removed.
+        * BugsSite/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/groupcontrol/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/groupcontrol/updated.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/list-classifications.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/products/updated.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/sanitycheck: Removed.
+        * BugsSite/template/en/default/admin/sanitycheck/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/sanitycheck/messages.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/settings: Removed.
+        * BugsSite/template/en/default/admin/settings/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/sudo.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/table.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/users: Removed.
+        * BugsSite/template/en/default/admin/users/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/users/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/users/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/users/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/users/listselectvars.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/users/responsibilities.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/users/search.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/users/userdata.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/versions: Removed.
+        * BugsSite/template/en/default/admin/versions/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/versions/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/versions/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/versions/footer.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/versions/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/versions/select-product.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/workflow: Removed.
+        * BugsSite/template/en/default/admin/workflow/comment.html.tmpl: Removed.
+        * BugsSite/template/en/default/admin/workflow/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment: Removed.
+        * BugsSite/template/en/default/attachment/cancel-create-dupe.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/choose.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/confirm-delete.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/content-types.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/created.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/createformcontents.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/delete_reason.txt.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/diff-file.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/diff-footer.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/diff-header.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/midair.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/show-multiple.html.tmpl: Removed.
+        * BugsSite/template/en/default/attachment/updated.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug: Removed.
+        * BugsSite/template/en/default/bug/activity: Removed.
+        * BugsSite/template/en/default/bug/activity/show.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/activity/table.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/choose.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/comments.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/create: Removed.
+        * BugsSite/template/en/default/bug/create/comment-guided.txt.tmpl: Removed.
+        * BugsSite/template/en/default/bug/create/comment.txt.tmpl: Removed.
+        * BugsSite/template/en/default/bug/create/confirm-create-dupe.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/create/create-guided.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/create/create.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/create/created.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/create/make-template.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/create/user-message.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/dependency-graph.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/dependency-tree.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/edit.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/field.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/knob.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/navigate.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/process: Removed.
+        * BugsSite/template/en/default/bug/process/bugmail.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/process/confirm-duplicate.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/process/header.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/process/midair.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/process/results.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/process/verify-new-product.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/show-multiple.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/show.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/show.xml.tmpl: Removed.
+        * BugsSite/template/en/default/bug/summarize-time.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/time.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/votes: Removed.
+        * BugsSite/template/en/default/bug/votes/delete-all.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/votes/list-for-bug.html.tmpl: Removed.
+        * BugsSite/template/en/default/bug/votes/list-for-user.html.tmpl: Removed.
+        * BugsSite/template/en/default/config.js.tmpl: Removed.
+        * BugsSite/template/en/default/config.rdf.tmpl: Removed.
+        * BugsSite/template/en/default/email: Removed.
+        * BugsSite/template/en/default/email/newchangedmail.txt.tmpl: Removed.
+        * BugsSite/template/en/default/email/sanitycheck.txt.tmpl: Removed.
+        * BugsSite/template/en/default/email/sudo.txt.tmpl: Removed.
+        * BugsSite/template/en/default/email/votes-removed.txt.tmpl: Removed.
+        * BugsSite/template/en/default/email/whine.txt.tmpl: Removed.
+        * BugsSite/template/en/default/filterexceptions.pl: Removed.
+        * BugsSite/template/en/default/flag: Removed.
+        * BugsSite/template/en/default/flag/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/global: Removed.
+        * BugsSite/template/en/default/global/banner.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/choose-classification.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/choose-product.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/code-error.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/common-links.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/confirm-action.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/confirm-user-match.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/docslinks.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/field-descs.none.tmpl: Removed.
+        * BugsSite/template/en/default/global/footer.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/header.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/help.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/hidden-fields.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/initialize.none.tmpl: Removed.
+        * BugsSite/template/en/default/global/js-products.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/message.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/message.txt.tmpl: Removed.
+        * BugsSite/template/en/default/global/messages.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/per-bug-queries.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/select-menu.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/setting-descs.none.tmpl: Removed.
+        * BugsSite/template/en/default/global/site-navigation.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/tabs.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/textarea.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/useful-links.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/user-error.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/userselect.html.tmpl: Removed.
+        * BugsSite/template/en/default/global/variables.none.tmpl: Removed.
+        * BugsSite/template/en/default/index.html.tmpl: Removed.
+        * BugsSite/template/en/default/list: Removed.
+        * BugsSite/template/en/default/list/change-columns.html.tmpl: Removed.
+        * BugsSite/template/en/default/list/edit-multiple.html.tmpl: Removed.
+        * BugsSite/template/en/default/list/list-simple.html.tmpl: Removed.
+        * BugsSite/template/en/default/list/list.atom.tmpl: Removed.
+        * BugsSite/template/en/default/list/list.csv.tmpl: Removed.
+        * BugsSite/template/en/default/list/list.html.tmpl: Removed.
+        * BugsSite/template/en/default/list/list.ics.tmpl: Removed.
+        * BugsSite/template/en/default/list/list.js.tmpl: Removed.
+        * BugsSite/template/en/default/list/list.rdf.tmpl: Removed.
+        * BugsSite/template/en/default/list/quips.html.tmpl: Removed.
+        * BugsSite/template/en/default/list/server-push.html.tmpl: Removed.
+        * BugsSite/template/en/default/list/table.html.tmpl: Removed.
+        * BugsSite/template/en/default/pages: Removed.
+        * BugsSite/template/en/default/pages/bug-writing.html.tmpl: Removed.
+        * BugsSite/template/en/default/pages/fields.html.tmpl: Removed.
+        * BugsSite/template/en/default/pages/linked.html.tmpl: Removed.
+        * BugsSite/template/en/default/pages/linkify.html.tmpl: Removed.
+        * BugsSite/template/en/default/pages/quicksearch.html.tmpl: Removed.
+        * BugsSite/template/en/default/pages/quicksearchhack.html.tmpl: Removed.
+        * BugsSite/template/en/default/pages/release-notes.html.tmpl: Removed.
+        * BugsSite/template/en/default/pages/sudo.html.tmpl: Removed.
+        * BugsSite/template/en/default/pages/voting.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports: Removed.
+        * BugsSite/template/en/default/reports/chart.csv.tmpl: Removed.
+        * BugsSite/template/en/default/reports/chart.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/chart.png.tmpl: Removed.
+        * BugsSite/template/en/default/reports/components.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/create-chart.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/duplicates-simple.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/duplicates-table.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/duplicates.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/edit-series.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/keywords.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/menu.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/old-charts.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/report-bar.png.tmpl: Removed.
+        * BugsSite/template/en/default/reports/report-line.png.tmpl: Removed.
+        * BugsSite/template/en/default/reports/report-pie.png.tmpl: Removed.
+        * BugsSite/template/en/default/reports/report-simple.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/report-table.csv.tmpl: Removed.
+        * BugsSite/template/en/default/reports/report-table.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/report.csv.tmpl: Removed.
+        * BugsSite/template/en/default/reports/report.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/series-common.html.tmpl: Removed.
+        * BugsSite/template/en/default/reports/series.html.tmpl: Removed.
+        * BugsSite/template/en/default/request: Removed.
+        * BugsSite/template/en/default/request/email.txt.tmpl: Removed.
+        * BugsSite/template/en/default/request/queue.html.tmpl: Removed.
+        * BugsSite/template/en/default/search: Removed.
+        * BugsSite/template/en/default/search/boolean-charts.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/form.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/knob.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/search-advanced.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/search-create-series.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/search-help.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/search-plugin.xml.tmpl: Removed.
+        * BugsSite/template/en/default/search/search-report-graph.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/search-report-select.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/search-report-table.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/search-specific.html.tmpl: Removed.
+        * BugsSite/template/en/default/search/tabs.html.tmpl: Removed.
+        * BugsSite/template/en/default/setup: Removed.
+        * BugsSite/template/en/default/setup/strings.txt.pl: Removed.
+        * BugsSite/template/en/default/sidebar.xul.tmpl: Removed.
+        * BugsSite/template/en/default/welcome-admin.html.tmpl: Removed.
+        * BugsSite/template/en/default/whine: Removed.
+        * BugsSite/template/en/default/whine/mail.html.tmpl: Removed.
+        * BugsSite/template/en/default/whine/mail.txt.tmpl: Removed.
+        * BugsSite/template/en/default/whine/multipart-mime.txt.tmpl: Removed.
+        * BugsSite/template/en/default/whine/schedule.html.tmpl: Removed.
+        * BugsSite/template/en/extension: Removed.
+        * BugsSite/template/en/extension/filterexceptions.pl: Removed.
+        * BugsSite/testagent.cgi: Removed.
+        * BugsSite/testserver.pl: Removed.
+        * BugsSite/token.cgi: Removed.
+        * BugsSite/userprefs.cgi: Removed.
+        * BugsSite/votes.cgi: Removed.
+        * BugsSite/whine.pl: Removed.
+        * BugsSite/whineatnews.pl: Removed.
+        * BugsSite/xml.cgi: Removed.
+        * BugsSite/xmlrpc.cgi: Removed.
+        * PlanetWebKit: Removed.
+        * PlanetWebKit/README: Removed.
+        * PlanetWebKit/config.ini: Removed.
+        * PlanetWebKit/planet: Removed.
+        * PlanetWebKit/planet/AUTHORS: Removed.
+        * PlanetWebKit/planet/INSTALL: Removed.
+        * PlanetWebKit/planet/LICENCE: Removed.
+        * PlanetWebKit/planet/NEWS: Removed.
+        * PlanetWebKit/planet/PKG-INFO: Removed.
+        * PlanetWebKit/planet/README: Removed.
+        * PlanetWebKit/planet/THANKS: Removed.
+        * PlanetWebKit/planet/TODO: Removed.
+        * PlanetWebKit/planet/examples: Removed.
+        * PlanetWebKit/planet/examples/atom.xml.tmpl: Removed.
+        * PlanetWebKit/planet/examples/basic: Removed.
+        * PlanetWebKit/planet/examples/basic/config.ini: Removed.
+        * PlanetWebKit/planet/examples/basic/index.html.tmpl: Removed.
+        * PlanetWebKit/planet/examples/fancy: Removed.
+        * PlanetWebKit/planet/examples/fancy/config.ini: Removed.
+        * PlanetWebKit/planet/examples/fancy/index.html.tmpl: Removed.
+        * PlanetWebKit/planet/examples/foafroll.xml.tmpl: Removed.
+        * PlanetWebKit/planet/examples/opml.xml.tmpl: Removed.
+        * PlanetWebKit/planet/examples/output: Removed.
+        * PlanetWebKit/planet/examples/output/images: Removed.
+        * PlanetWebKit/planet/examples/output/images/edd.png: Removed.
+        * PlanetWebKit/planet/examples/output/images/evolution.png: Removed.
+        * PlanetWebKit/planet/examples/output/images/feed-icon-10x10.png: Removed.
+        * PlanetWebKit/planet/examples/output/images/jdub.png: Removed.
+        * PlanetWebKit/planet/examples/output/images/keybuk.png: Removed.
+        * PlanetWebKit/planet/examples/output/images/logo.png: Removed.
+        * PlanetWebKit/planet/examples/output/images/opml.png: Removed.
+        * PlanetWebKit/planet/examples/output/images/planet.png: Removed.
+        * PlanetWebKit/planet/examples/output/images/thom.png: Removed.
+        * PlanetWebKit/planet/examples/output/planet.css: Removed.
+        * PlanetWebKit/planet/examples/rss10.xml.tmpl: Removed.
+        * PlanetWebKit/planet/examples/rss20.xml.tmpl: Removed.
+        * PlanetWebKit/planet/planet: Removed.
+        * PlanetWebKit/planet/planet-cache.py: Removed.
+        * PlanetWebKit/planet/planet.py: Removed.
+        * PlanetWebKit/planet/planet/__init__.py: Removed.
+        * PlanetWebKit/planet/planet/atomstyler.py: Removed.
+        * PlanetWebKit/planet/planet/cache.py: Removed.
+        * PlanetWebKit/planet/planet/compat_logging: Removed.
+        * PlanetWebKit/planet/planet/compat_logging/__init__.py: Removed.
+        * PlanetWebKit/planet/planet/compat_logging/config.py: Removed.
+        * PlanetWebKit/planet/planet/compat_logging/handlers.py: Removed.
+        * PlanetWebKit/planet/planet/feedparser.py: Removed.
+        * PlanetWebKit/planet/planet/htmltmpl.py: Removed.
+        * PlanetWebKit/planet/planet/sanitize.py: Removed.
+        * PlanetWebKit/planet/planet/tests: Removed.
+        * PlanetWebKit/planet/planet/tests/__init__.py: Removed.
+        * PlanetWebKit/planet/planet/tests/data: Removed.
+        * PlanetWebKit/planet/planet/tests/data/simple.tmpl: Removed.
+        * PlanetWebKit/planet/planet/tests/data/simple2.tmpl: Removed.
+        * PlanetWebKit/planet/planet/tests/test_channel.py: Removed.
+        * PlanetWebKit/planet/planet/tests/test_main.py: Removed.
+        * PlanetWebKit/planet/planet/tests/test_sanitize.py: Removed.
+        * PlanetWebKit/planet/planet/tests/test_sub.py: Removed.
+        * PlanetWebKit/planet/planet/timeoutsocket.py: Removed.
+        * PlanetWebKit/planet/runtests.py: Removed.
+        * PlanetWebKit/planet/setup.py: Removed.
+        * PlanetWebKit/templates: Removed.
+        * PlanetWebKit/templates/atom.xml.tmpl: Removed.
+        * PlanetWebKit/templates/foafroll.xml.tmpl: Removed.
+        * PlanetWebKit/templates/index.html.tmpl: Removed.
+        * PlanetWebKit/templates/opml.xml.tmpl: Removed.
+        * PlanetWebKit/templates/rss10.xml.tmpl: Removed.
+        * PlanetWebKit/templates/rss20.xml.tmpl: Removed.
+        * PlanetWebKit/update.pl: Removed.
+        * PlanetWebKit/wwwroot: Removed.
+        * PlanetWebKit/wwwroot/ie.css: Removed.
+        * PlanetWebKit/wwwroot/images: Removed.
+        * PlanetWebKit/wwwroot/images/feed-icon-10x10.png: Removed.
+        * PlanetWebKit/wwwroot/images/ie-nav-blue.png: Removed.
+        * PlanetWebKit/wwwroot/images/planet-webkit.png: Removed.
+        * PlanetWebKit/wwwroot/images/planet.png: Removed.
+        * PlanetWebKit/wwwroot/planet.css: Removed.
+        * PlanetWebKit/wwwroot/planetwebkit.css: Removed.
+        * Sites: Added.
+        * Sites/bugs.webkit.org: Copied from BugsSite.
+        * Sites/planet.webkit.org: Copied from PlanetWebKit.
+        * Sites/webkit.org: Copied from WebKitSite.
+        * WebKitSite: Removed.
+        * WebKitSite/.htaccess: Removed.
+        * WebKitSite/asking_questions.html: Removed.
+        * WebKitSite/blog: Removed.
+        * WebKitSite/blog-files: Removed.
+        * WebKitSite/blog-files/3d-transforms: Removed.
+        * WebKitSite/blog-files/3d-transforms/image-flip.html: Removed.
+        * WebKitSite/blog-files/3d-transforms/mighty-cubes.png: Removed.
+        * WebKitSite/blog-files/3d-transforms/morphing-cubes.html: Removed.
+        * WebKitSite/blog-files/3d-transforms/perspective-by-example.html: Removed.
+        * WebKitSite/blog-files/3d-transforms/poster-circle.html: Removed.
+        * WebKitSite/blog-files/3d-transforms/poster-circle.png: Removed.
+        * WebKitSite/blog-files/3d-transforms/transform-style.html: Removed.
+        * WebKitSite/blog-files/InspectElementMenu.png: Removed.
+        * WebKitSite/blog-files/InspectorCSSEditing.png: Removed.
+        * WebKitSite/blog-files/InspectorDatabaseBrowser.png: Removed.
+        * WebKitSite/blog-files/InspectorFonts.png: Removed.
+        * WebKitSite/blog-files/acid3-100.png: Removed.
+        * WebKitSite/blog-files/acid3-full-rendering-pass.png: Removed.
+        * WebKitSite/blog-files/acid3-rendering-reference.png: Removed.
+        * WebKitSite/blog-files/acid3-screenshot.png: Removed.
+        * WebKitSite/blog-files/acid3-timing-screenshot.png: Removed.
+        * WebKitSite/blog-files/acid3-timing.png: Removed.
+        * WebKitSite/blog-files/animation-demo.svg: Removed.
+        * WebKitSite/blog-files/bounce.html: Removed.
+        * WebKitSite/blog-files/bounce.png: Removed.
+        * WebKitSite/blog-files/circle.svg: Removed.
+        * WebKitSite/blog-files/cubes-7.svg: Removed.
+        * WebKitSite/blog-files/gebcnspeedtest.html: Removed.
+        * WebKitSite/blog-files/gebcnwebkitonly.png: Removed.
+        * WebKitSite/blog-files/inspector: Removed.
+        * WebKitSite/blog-files/inspector-closure-scope.png: Removed.
+        * WebKitSite/blog-files/inspector-console-autocomplete.png: Removed.
+        * WebKitSite/blog-files/inspector-databases-panel-query-view.png: Removed.
+        * WebKitSite/blog-files/inspector-databases-panel.png: Removed.
+        * WebKitSite/blog-files/inspector-disabling-properties.png: Removed.
+        * WebKitSite/blog-files/inspector-elements-panel.png: Removed.
+        * WebKitSite/blog-files/inspector-event-scope.png: Removed.
+        * WebKitSite/blog-files/inspector-numeric-style-stepping.gif: Removed.
+        * WebKitSite/blog-files/inspector-profiles-panel.png: Removed.
+        * WebKitSite/blog-files/inspector-resources-panel.png: Removed.
+        * WebKitSite/blog-files/inspector-scripts-panel.png: Removed.
+        * WebKitSite/blog-files/inspector-searching-elements.png: Removed.
+        * WebKitSite/blog-files/inspector-searching-profiles.png: Removed.
+        * WebKitSite/blog-files/inspector-status-bar-with-errors.png: Removed.
+        * WebKitSite/blog-files/inspector-toolbar.png: Removed.
+        * WebKitSite/blog-files/inspector-with-scope.png: Removed.
+        * WebKitSite/blog-files/inspector/audits_launcher.png: Removed.
+        * WebKitSite/blog-files/inspector/audits_panel.png: Removed.
+        * WebKitSite/blog-files/inspector/breakpoints.png: Removed.
+        * WebKitSite/blog-files/inspector/colors.png: Removed.
+        * WebKitSite/blog-files/inspector/console_panel.png: Removed.
+        * WebKitSite/blog-files/inspector/context_menu.png: Removed.
+        * WebKitSite/blog-files/inspector/cookies.png: Removed.
+        * WebKitSite/blog-files/inspector/css_highlighted_line.png: Removed.
+        * WebKitSite/blog-files/inspector/css_line_number_snippet.png: Removed.
+        * WebKitSite/blog-files/inspector/css_line_numbers.png: Removed.
+        * WebKitSite/blog-files/inspector/css_selectors.png: Removed.
+        * WebKitSite/blog-files/inspector/css_syntax_highlight.png: Removed.
+        * WebKitSite/blog-files/inspector/deactivate_breakpoints.png: Removed.
+        * WebKitSite/blog-files/inspector/dom_storage.png: Removed.
+        * WebKitSite/blog-files/inspector/edit_attributes.png: Removed.
+        * WebKitSite/blog-files/inspector/enable.png: Removed.
+        * WebKitSite/blog-files/inspector/evaluate_on_hover.png: Removed.
+        * WebKitSite/blog-files/inspector/evaluate_on_hover_2.png: Removed.
+        * WebKitSite/blog-files/inspector/event_listeners.png: Removed.
+        * WebKitSite/blog-files/inspector/form_data.png: Removed.
+        * WebKitSite/blog-files/inspector/inherited_styles.png: Removed.
+        * WebKitSite/blog-files/inspector/inline_highlight.png: Removed.
+        * WebKitSite/blog-files/inspector/inorder.png: Removed.
+        * WebKitSite/blog-files/inspector/inspect_inspector.png: Removed.
+        * WebKitSite/blog-files/inspector/inspect_inspector_small.png: Removed.
+        * WebKitSite/blog-files/inspector/large_dom.png: Removed.
+        * WebKitSite/blog-files/inspector/large_resources.png: Removed.
+        * WebKitSite/blog-files/inspector/load_lines.png: Removed.
+        * WebKitSite/blog-files/inspector/nodelist.png: Removed.
+        * WebKitSite/blog-files/inspector/pseudo_elements.png: Removed.
+        * WebKitSite/blog-files/inspector/redirect_headers.png: Removed.
+        * WebKitSite/blog-files/inspector/redirect_headers_full.png: Removed.
+        * WebKitSite/blog-files/inspector/redirects.png: Removed.
+        * WebKitSite/blog-files/inspector/redirects_full.png: Removed.
+        * WebKitSite/blog-files/inspector/scope_bar.png: Removed.
+        * WebKitSite/blog-files/inspector/timeline_overview.png: Removed.
+        * WebKitSite/blog-files/inspector/timeline_panel.png: Removed.
+        * WebKitSite/blog-files/inspector/timeline_record_details.png: Removed.
+        * WebKitSite/blog-files/inspector/watched_expression.png: Removed.
+        * WebKitSite/blog-files/kate-circle.png: Removed.
+        * WebKitSite/blog-files/kate-gradient-rounded.png: Removed.
+        * WebKitSite/blog-files/kate-gradient.png: Removed.
+        * WebKitSite/blog-files/kate-reflected.png: Removed.
+        * WebKitSite/blog-files/kate-vignette-mask.png: Removed.
+        * WebKitSite/blog-files/kate.png: Removed.
+        * WebKitSite/blog-files/leaves: Removed.
+        * WebKitSite/blog-files/leaves-screenshot-small.jpg: Removed.
+        * WebKitSite/blog-files/leaves-screenshot.jpg: Removed.
+        * WebKitSite/blog-files/leaves/images: Removed.
+        * WebKitSite/blog-files/leaves/images/apple-touch-icon.png: Removed.
+        * WebKitSite/blog-files/leaves/images/backgroundLeaves.jpg: Removed.
+        * WebKitSite/blog-files/leaves/images/realLeaf1.png: Removed.
+        * WebKitSite/blog-files/leaves/images/realLeaf2.png: Removed.
+        * WebKitSite/blog-files/leaves/images/realLeaf3.png: Removed.
+        * WebKitSite/blog-files/leaves/images/realLeaf4.png: Removed.
+        * WebKitSite/blog-files/leaves/images/textBackground.png: Removed.
+        * WebKitSite/blog-files/leaves/index.html: Removed.
+        * WebKitSite/blog-files/leaves/leaves.css: Removed.
+        * WebKitSite/blog-files/leaves/leaves.js: Removed.
+        * WebKitSite/blog-files/load-unload-example.html: Removed.
+        * WebKitSite/blog-files/loader-diagram.svg: Removed.
+        * WebKitSite/blog-files/maskspeedracer.png: Removed.
+        * WebKitSite/blog-files/number-morph.svg: Removed.
+        * WebKitSite/blog-files/pageshow-pagehide-example.html: Removed.
+        * WebKitSite/blog-files/prototype-for-gebcn-test.js: Removed.
+        * WebKitSite/blog-files/pulse.html: Removed.
+        * WebKitSite/blog-files/pulse.png: Removed.
+        * WebKitSite/blog-files/riemann-screenshot.png: Removed.
+        * WebKitSite/blog-files/scrollbarpicture.png: Removed.
+        * WebKitSite/blog-files/sfx-perf.png: Removed.
+        * WebKitSite/blog-files/squirrelfish-link-animated.svg: Removed.
+        * WebKitSite/blog-files/squirrelfish-webkit-graph.png: Removed.
+        * WebKitSite/blog-files/squirrelfish.png: Removed.
+        * WebKitSite/blog-files/timeline-blocking-script.png: Removed.
+        * WebKitSite/blog-files/timeline-defer-script.png: Removed.
+        * WebKitSite/blog-files/touch-poster.png: Removed.
+        * WebKitSite/blog-files/vignette-mask.png: Removed.
+        * WebKitSite/blog-files/webgl: Removed.
+        * WebKitSite/blog-files/webgl/Earth.html: Removed.
+        * WebKitSite/blog-files/webgl/ManyPlanetsDeep.html: Removed.
+        * WebKitSite/blog-files/webgl/SpinningBox.html: Removed.
+        * WebKitSite/blog-files/webgl/SpiritBox.html: Removed.
+        * WebKitSite/blog-files/webgl/TeapotPerPixel.html: Removed.
+        * WebKitSite/blog-files/webgl/TeapotPerVertex.html: Removed.
+        * WebKitSite/blog-files/webgl/WebGL+CSS.html: Removed.
+        * WebKitSite/blog-files/webgl/resources: Removed.
+        * WebKitSite/blog-files/webgl/resources/BambooBridge.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/EarthThumb.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/J3DI.js: Removed.
+        * WebKitSite/blog-files/webgl/resources/J3DIMath.js: Removed.
+        * WebKitSite/blog-files/webgl/resources/ManyPlanetsDeepThumb.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/SpinningBoxThumb.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/SpiritBox.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/TeapotPerPixelThumb.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/TeapotPerVertexThumb.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/WebGL+CSSThumb.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/blogpost.css: Removed.
+        * WebKitSite/blog-files/webgl/resources/earthmap1k.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/mars500x250.png: Removed.
+        * WebKitSite/blog-files/webgl/resources/spirit.jpg: Removed.
+        * WebKitSite/blog-files/webgl/resources/teapot.obj: Removed.
+        * WebKitSite/blog-files/wsj-nopreload.png: Removed.
+        * WebKitSite/blog-files/wsj-preload.png: Removed.
+        * WebKitSite/blog-files/wsj-vs.png: Removed.
+        * WebKitSite/blog/.htaccess: Removed.
+        * WebKitSite/blog/index.php: Removed.
+        * WebKitSite/blog/license.txt: Removed.
+        * WebKitSite/blog/wp-admin: Removed.
+        * WebKitSite/blog/wp-admin/admin-ajax.php: Removed.
+        * WebKitSite/blog/wp-admin/admin-footer.php: Removed.
+        * WebKitSite/blog/wp-admin/admin-functions.php: Removed.
+        * WebKitSite/blog/wp-admin/admin-header.php: Removed.
+        * WebKitSite/blog/wp-admin/admin-post.php: Removed.
+        * WebKitSite/blog/wp-admin/admin.php: Removed.
+        * WebKitSite/blog/wp-admin/async-upload.php: Removed.
+        * WebKitSite/blog/wp-admin/categories.php: Removed.
+        * WebKitSite/blog/wp-admin/comment.php: Removed.
+        * WebKitSite/blog/wp-admin/css: Removed.
+        * WebKitSite/blog/wp-admin/css/colors-classic-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/colors-classic.css: Removed.
+        * WebKitSite/blog/wp-admin/css/colors-fresh-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/colors-fresh.css: Removed.
+        * WebKitSite/blog/wp-admin/css/dashboard-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/dashboard.css: Removed.
+        * WebKitSite/blog/wp-admin/css/farbtastic-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/farbtastic.css: Removed.
+        * WebKitSite/blog/wp-admin/css/global-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/global.css: Removed.
+        * WebKitSite/blog/wp-admin/css/ie-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/ie.css: Removed.
+        * WebKitSite/blog/wp-admin/css/install-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/install.css: Removed.
+        * WebKitSite/blog/wp-admin/css/login-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/login.css: Removed.
+        * WebKitSite/blog/wp-admin/css/media-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/media.css: Removed.
+        * WebKitSite/blog/wp-admin/css/plugin-install-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/plugin-install.css: Removed.
+        * WebKitSite/blog/wp-admin/css/press-this-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/press-this.css: Removed.
+        * WebKitSite/blog/wp-admin/css/theme-editor-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/theme-editor.css: Removed.
+        * WebKitSite/blog/wp-admin/css/theme-install.css: Removed.
+        * WebKitSite/blog/wp-admin/css/widgets-rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/css/widgets.css: Removed.
+        * WebKitSite/blog/wp-admin/custom-header.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-attachment-rows.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-category-form.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-comments.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-form-advanced.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-form-comment.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-link-categories.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-link-category-form.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-link-form.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-page-form.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-pages.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-post-rows.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-tag-form.php: Removed.
+        * WebKitSite/blog/wp-admin/edit-tags.php: Removed.
+        * WebKitSite/blog/wp-admin/edit.php: Removed.
+        * WebKitSite/blog/wp-admin/export.php: Removed.
+        * WebKitSite/blog/wp-admin/gears-manifest.php: Removed.
+        * WebKitSite/blog/wp-admin/images: Removed.
+        * WebKitSite/blog/wp-admin/images/align-center.png: Removed.
+        * WebKitSite/blog/wp-admin/images/align-left.png: Removed.
+        * WebKitSite/blog/wp-admin/images/align-none.png: Removed.
+        * WebKitSite/blog/wp-admin/images/align-right.png: Removed.
+        * WebKitSite/blog/wp-admin/images/archive-link.png: Removed.
+        * WebKitSite/blog/wp-admin/images/blue-grad.png: Removed.
+        * WebKitSite/blog/wp-admin/images/browse-happy.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/bubble_bg-rtl.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/bubble_bg.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/button-grad-active-vs.png: Removed.
+        * WebKitSite/blog/wp-admin/images/button-grad-active.png: Removed.
+        * WebKitSite/blog/wp-admin/images/button-grad-vs.png: Removed.
+        * WebKitSite/blog/wp-admin/images/button-grad.png: Removed.
+        * WebKitSite/blog/wp-admin/images/comment-grey-bubble.png: Removed.
+        * WebKitSite/blog/wp-admin/images/date-button.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/ed-bg-vs.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/ed-bg.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/fade-butt.png: Removed.
+        * WebKitSite/blog/wp-admin/images/fav-arrow-rtl.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/fav-arrow-vs.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/fav-arrow.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/fav-top-vs.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/fav-top.png: Removed.
+        * WebKitSite/blog/wp-admin/images/fav-vs.png: Removed.
+        * WebKitSite/blog/wp-admin/images/fav.png: Removed.
+        * WebKitSite/blog/wp-admin/images/generic.png: Removed.
+        * WebKitSite/blog/wp-admin/images/gray-grad.png: Removed.
+        * WebKitSite/blog/wp-admin/images/icons32-vs.png: Removed.
+        * WebKitSite/blog/wp-admin/images/icons32.png: Removed.
+        * WebKitSite/blog/wp-admin/images/list-vs.png: Removed.
+        * WebKitSite/blog/wp-admin/images/list.png: Removed.
+        * WebKitSite/blog/wp-admin/images/loading-publish.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/loading.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/logo-ghost.png: Removed.
+        * WebKitSite/blog/wp-admin/images/logo-login.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/logo.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/marker.png: Removed.
+        * WebKitSite/blog/wp-admin/images/mask.png: Removed.
+        * WebKitSite/blog/wp-admin/images/media-button-image.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/media-button-music.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/media-button-other.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/media-button-video.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/menu-arrows.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/menu-bits-rtl-vs.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/menu-bits-rtl.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/menu-bits-vs.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/menu-bits.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/menu-dark-rtl.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/menu-dark.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/menu-vs.png: Removed.
+        * WebKitSite/blog/wp-admin/images/menu.png: Removed.
+        * WebKitSite/blog/wp-admin/images/no.png: Removed.
+        * WebKitSite/blog/wp-admin/images/required.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/resize.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/screen-options-left.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/screen-options-right-up.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/screen-options-right.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/se.png: Removed.
+        * WebKitSite/blog/wp-admin/images/star.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/toggle-arrow-rtl.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/toggle-arrow.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/visit-site-button-grad-vs.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/visit-site-button-grad.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/wheel.png: Removed.
+        * WebKitSite/blog/wp-admin/images/white-grad-active.png: Removed.
+        * WebKitSite/blog/wp-admin/images/white-grad.png: Removed.
+        * WebKitSite/blog/wp-admin/images/wordpress-logo.png: Removed.
+        * WebKitSite/blog/wp-admin/images/wp-logo-vs.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/wp-logo.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/wpspin_dark.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/wpspin_light.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/xit.gif: Removed.
+        * WebKitSite/blog/wp-admin/images/yes.png: Removed.
+        * WebKitSite/blog/wp-admin/import: Removed.
+        * WebKitSite/blog/wp-admin/import.php: Removed.
+        * WebKitSite/blog/wp-admin/import/blogger.php: Removed.
+        * WebKitSite/blog/wp-admin/import/blogware.php: Removed.
+        * WebKitSite/blog/wp-admin/import/dotclear.php: Removed.
+        * WebKitSite/blog/wp-admin/import/greymatter.php: Removed.
+        * WebKitSite/blog/wp-admin/import/livejournal.php: Removed.
+        * WebKitSite/blog/wp-admin/import/mt.php: Removed.
+        * WebKitSite/blog/wp-admin/import/opml.php: Removed.
+        * WebKitSite/blog/wp-admin/import/rss.php: Removed.
+        * WebKitSite/blog/wp-admin/import/stp.php: Removed.
+        * WebKitSite/blog/wp-admin/import/textpattern.php: Removed.
+        * WebKitSite/blog/wp-admin/import/utw.php: Removed.
+        * WebKitSite/blog/wp-admin/import/wordpress.php: Removed.
+        * WebKitSite/blog/wp-admin/import/wp-cat2tag.php: Removed.
+        * WebKitSite/blog/wp-admin/includes: Removed.
+        * WebKitSite/blog/wp-admin/includes/admin.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/bookmark.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-ftp-pure.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-ftp-sockets.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-ftp.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-pclzip.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-base.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-direct.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-ftpext.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-ftpsockets.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-wp-filesystem-ssh2.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/class-wp-upgrader.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/comment.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/continents-cities.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/dashboard.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/export.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/file.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/image.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/import.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/manifest.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/media.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/misc.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/plugin-install.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/plugin.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/post.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/schema.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/taxonomy.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/template.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/theme-install.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/theme.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/update-core.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/update.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/upgrade.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/user.php: Removed.
+        * WebKitSite/blog/wp-admin/includes/widgets.php: Removed.
+        * WebKitSite/blog/wp-admin/index-extra.php: Removed.
+        * WebKitSite/blog/wp-admin/index.php: Removed.
+        * WebKitSite/blog/wp-admin/install-helper.php: Removed.
+        * WebKitSite/blog/wp-admin/install.php: Removed.
+        * WebKitSite/blog/wp-admin/js: Removed.
+        * WebKitSite/blog/wp-admin/js/cat.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/cat.js: Removed.
+        * WebKitSite/blog/wp-admin/js/categories.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/categories.js: Removed.
+        * WebKitSite/blog/wp-admin/js/comment.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/comment.js: Removed.
+        * WebKitSite/blog/wp-admin/js/common.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/common.js: Removed.
+        * WebKitSite/blog/wp-admin/js/custom-fields.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/custom-fields.js: Removed.
+        * WebKitSite/blog/wp-admin/js/dashboard.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/dashboard.js: Removed.
+        * WebKitSite/blog/wp-admin/js/edit-comments.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/edit-comments.js: Removed.
+        * WebKitSite/blog/wp-admin/js/editor.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/editor.js: Removed.
+        * WebKitSite/blog/wp-admin/js/farbtastic.js: Removed.
+        * WebKitSite/blog/wp-admin/js/gallery.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/gallery.js: Removed.
+        * WebKitSite/blog/wp-admin/js/inline-edit-post.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/inline-edit-post.js: Removed.
+        * WebKitSite/blog/wp-admin/js/inline-edit-tax.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/inline-edit-tax.js: Removed.
+        * WebKitSite/blog/wp-admin/js/link.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/link.js: Removed.
+        * WebKitSite/blog/wp-admin/js/media-upload.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/media-upload.js: Removed.
+        * WebKitSite/blog/wp-admin/js/media.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/media.js: Removed.
+        * WebKitSite/blog/wp-admin/js/page.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/page.js: Removed.
+        * WebKitSite/blog/wp-admin/js/password-strength-meter.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/password-strength-meter.js: Removed.
+        * WebKitSite/blog/wp-admin/js/plugin-install.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/plugin-install.js: Removed.
+        * WebKitSite/blog/wp-admin/js/post.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/post.js: Removed.
+        * WebKitSite/blog/wp-admin/js/postbox.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/postbox.js: Removed.
+        * WebKitSite/blog/wp-admin/js/revisions-js.php: Removed.
+        * WebKitSite/blog/wp-admin/js/slug.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/slug.js: Removed.
+        * WebKitSite/blog/wp-admin/js/tags.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/tags.js: Removed.
+        * WebKitSite/blog/wp-admin/js/theme-preview.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/theme-preview.js: Removed.
+        * WebKitSite/blog/wp-admin/js/user-profile.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/user-profile.js: Removed.
+        * WebKitSite/blog/wp-admin/js/utils.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/utils.js: Removed.
+        * WebKitSite/blog/wp-admin/js/widgets.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/widgets.js: Removed.
+        * WebKitSite/blog/wp-admin/js/word-count.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/word-count.js: Removed.
+        * WebKitSite/blog/wp-admin/js/wp-gears.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/wp-gears.js: Removed.
+        * WebKitSite/blog/wp-admin/js/xfn.dev.js: Removed.
+        * WebKitSite/blog/wp-admin/js/xfn.js: Removed.
+        * WebKitSite/blog/wp-admin/link-add.php: Removed.
+        * WebKitSite/blog/wp-admin/link-category.php: Removed.
+        * WebKitSite/blog/wp-admin/link-manager.php: Removed.
+        * WebKitSite/blog/wp-admin/link-parse-opml.php: Removed.
+        * WebKitSite/blog/wp-admin/link.php: Removed.
+        * WebKitSite/blog/wp-admin/load-scripts.php: Removed.
+        * WebKitSite/blog/wp-admin/load-styles.php: Removed.
+        * WebKitSite/blog/wp-admin/media-new.php: Removed.
+        * WebKitSite/blog/wp-admin/media-upload.php: Removed.
+        * WebKitSite/blog/wp-admin/media.php: Removed.
+        * WebKitSite/blog/wp-admin/menu-header.php: Removed.
+        * WebKitSite/blog/wp-admin/menu.php: Removed.
+        * WebKitSite/blog/wp-admin/moderation.php: Removed.
+        * WebKitSite/blog/wp-admin/options-discussion.php: Removed.
+        * WebKitSite/blog/wp-admin/options-general.php: Removed.
+        * WebKitSite/blog/wp-admin/options-head.php: Removed.
+        * WebKitSite/blog/wp-admin/options-media.php: Removed.
+        * WebKitSite/blog/wp-admin/options-misc.php: Removed.
+        * WebKitSite/blog/wp-admin/options-permalink.php: Removed.
+        * WebKitSite/blog/wp-admin/options-privacy.php: Removed.
+        * WebKitSite/blog/wp-admin/options-reading.php: Removed.
+        * WebKitSite/blog/wp-admin/options-writing.php: Removed.
+        * WebKitSite/blog/wp-admin/options.php: Removed.
+        * WebKitSite/blog/wp-admin/page-new.php: Removed.
+        * WebKitSite/blog/wp-admin/page.php: Removed.
+        * WebKitSite/blog/wp-admin/plugin-editor.php: Removed.
+        * WebKitSite/blog/wp-admin/plugin-install.php: Removed.
+        * WebKitSite/blog/wp-admin/plugins.php: Removed.
+        * WebKitSite/blog/wp-admin/post-new.php: Removed.
+        * WebKitSite/blog/wp-admin/post.php: Removed.
+        * WebKitSite/blog/wp-admin/press-this.php: Removed.
+        * WebKitSite/blog/wp-admin/profile.php: Removed.
+        * WebKitSite/blog/wp-admin/revision.php: Removed.
+        * WebKitSite/blog/wp-admin/rtl.css: Removed.
+        * WebKitSite/blog/wp-admin/setup-config.php: Removed.
+        * WebKitSite/blog/wp-admin/sidebar.php: Removed.
+        * WebKitSite/blog/wp-admin/theme-editor.php: Removed.
+        * WebKitSite/blog/wp-admin/theme-install.php: Removed.
+        * WebKitSite/blog/wp-admin/themes.php: Removed.
+        * WebKitSite/blog/wp-admin/tools.php: Removed.
+        * WebKitSite/blog/wp-admin/update-core.php: Removed.
+        * WebKitSite/blog/wp-admin/update-links.php: Removed.
+        * WebKitSite/blog/wp-admin/update.php: Removed.
+        * WebKitSite/blog/wp-admin/upgrade-functions.php: Removed.
+        * WebKitSite/blog/wp-admin/upgrade.php: Removed.
+        * WebKitSite/blog/wp-admin/upload.php: Removed.
+        * WebKitSite/blog/wp-admin/user-edit.php: Removed.
+        * WebKitSite/blog/wp-admin/user-new.php: Removed.
+        * WebKitSite/blog/wp-admin/users.php: Removed.
+        * WebKitSite/blog/wp-admin/widgets.php: Removed.
+        * WebKitSite/blog/wp-admin/wp-admin.css: Removed.
+        * WebKitSite/blog/wp-app.php: Removed.
+        * WebKitSite/blog/wp-atom.php: Removed.
+        * WebKitSite/blog/wp-blog-header.php: Removed.
+        * WebKitSite/blog/wp-comments-post.php: Removed.
+        * WebKitSite/blog/wp-commentsrss2.php: Removed.
+        * WebKitSite/blog/wp-config-sample.php: Removed.
+        * WebKitSite/blog/wp-config.php: Removed.
+        * WebKitSite/blog/wp-content: Removed.
+        * WebKitSite/blog/wp-content/Picture9.png: Removed.
+        * WebKitSite/blog/wp-content/cache: Removed.
+        * WebKitSite/blog/wp-content/chrome.jpg: Removed.
+        * WebKitSite/blog/wp-content/chucknorris.png: Removed.
+        * WebKitSite/blog/wp-content/databaseexample.png: Removed.
+        * WebKitSite/blog/wp-content/drosera.png: Removed.
+        * WebKitSite/blog/wp-content/hitlist.png: Removed.
+        * WebKitSite/blog/wp-content/index.php: Removed.
+        * WebKitSite/blog/wp-content/plugins: Removed.
+        * WebKitSite/blog/wp-content/plugins/SK2: Removed.
+        * WebKitSite/blog/wp-content/plugins/SK2/sk2_plugins: Removed.
+        * WebKitSite/blog/wp-content/plugins/akismet: Removed.
+        * WebKitSite/blog/wp-content/plugins/akismet/akismet.gif: Removed.
+        * WebKitSite/blog/wp-content/plugins/akismet/akismet.php: Removed.
+        * WebKitSite/blog/wp-content/plugins/akismet/readme.txt: Removed.
+        * WebKitSite/blog/wp-content/plugins/commentcontrol.php: Removed.
+        * WebKitSite/blog/wp-content/plugins/hello.php: Removed.
+        * WebKitSite/blog/wp-content/plugins/index.php: Removed.
+        * WebKitSite/blog/wp-content/plugins/wp-cache: Removed.
+        * WebKitSite/blog/wp-content/rotate.png: Removed.
+        * WebKitSite/blog/wp-content/rotate.svg: Removed.
+        * WebKitSite/blog/wp-content/svgtext.png: Removed.
+        * WebKitSite/blog/wp-content/svgtextmini.png: Removed.
+        * WebKitSite/blog/wp-content/svgtextmini_01.png: Removed.
+        * WebKitSite/blog/wp-content/textfield_screenshot.jpg: Removed.
+        * WebKitSite/blog/wp-content/themes: Removed.
+        * WebKitSite/blog/wp-content/themes/classic: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/comments-popup.php: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/comments.php: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/footer.php: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/functions.php: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/header.php: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/index.php: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/rtl.css: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/screenshot.png: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/sidebar.php: Removed.
+        * WebKitSite/blog/wp-content/themes/classic/style.css: Removed.
+        * WebKitSite/blog/wp-content/themes/default: Removed.
+        * WebKitSite/blog/wp-content/themes/default/404.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/archive.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/archives.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/comments-popup.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/comments.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/footer.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/functions.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/header.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/image.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/images: Removed.
+        * WebKitSite/blog/wp-content/themes/default/images/audio.jpg: Removed.
+        * WebKitSite/blog/wp-content/themes/default/images/header-img.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/images/kubrickbg-ltr.jpg: Removed.
+        * WebKitSite/blog/wp-content/themes/default/images/kubrickbg-rtl.jpg: Removed.
+        * WebKitSite/blog/wp-content/themes/default/images/kubrickbgcolor.jpg: Removed.
+        * WebKitSite/blog/wp-content/themes/default/images/kubrickbgwide.jpg: Removed.
+        * WebKitSite/blog/wp-content/themes/default/images/kubrickfooter.jpg: Removed.
+        * WebKitSite/blog/wp-content/themes/default/images/kubrickheader.jpg: Removed.
+        * WebKitSite/blog/wp-content/themes/default/index.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/links.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/page.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/rtl.css: Removed.
+        * WebKitSite/blog/wp-content/themes/default/screenshot.png: Removed.
+        * WebKitSite/blog/wp-content/themes/default/search.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/sidebar.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/single.php: Removed.
+        * WebKitSite/blog/wp-content/themes/default/style.css: Removed.
+        * WebKitSite/blog/wp-content/themes/index.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/404.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/archive.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/archives.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/comments-popup.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/comments.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/footer.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/header.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/index.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/links.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/page.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/search.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/searchform.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/sidebar.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/single.php: Removed.
+        * WebKitSite/blog/wp-content/themes/webkit/style.css: Removed.
+        * WebKitSite/blog/wp-content/uploads: Removed.
+        * WebKitSite/blog/wp-content/uploads/2007: Removed.
+        * WebKitSite/blog/wp-content/uploads/2007/06: Removed.
+        * WebKitSite/blog/wp-content/uploads/2007/06/newinspector.png: Removed.
+        * WebKitSite/blog/wp-content/webInspector.png: Removed.
+        * WebKitSite/blog/wp-cron.php: Removed.
+        * WebKitSite/blog/wp-feed.php: Removed.
+        * WebKitSite/blog/wp-images: Removed.
+        * WebKitSite/blog/wp-images/smilies: Removed.
+        * WebKitSite/blog/wp-includes: Removed.
+        * WebKitSite/blog/wp-includes/Text: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff.php: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff/Engine: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff/Engine/native.php: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff/Engine/shell.php: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff/Engine/string.php: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff/Engine/xdiff.php: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff/Renderer: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff/Renderer.php: Removed.
+        * WebKitSite/blog/wp-includes/Text/Diff/Renderer/inline.php: Removed.
+        * WebKitSite/blog/wp-includes/atomlib.php: Removed.
+        * WebKitSite/blog/wp-includes/author-template.php: Removed.
+        * WebKitSite/blog/wp-includes/bookmark-template.php: Removed.
+        * WebKitSite/blog/wp-includes/bookmark.php: Removed.
+        * WebKitSite/blog/wp-includes/cache.php: Removed.
+        * WebKitSite/blog/wp-includes/canonical.php: Removed.
+        * WebKitSite/blog/wp-includes/capabilities.php: Removed.
+        * WebKitSite/blog/wp-includes/category-template.php: Removed.
+        * WebKitSite/blog/wp-includes/category.php: Removed.
+        * WebKitSite/blog/wp-includes/class-IXR.php: Removed.
+        * WebKitSite/blog/wp-includes/class-feed.php: Removed.
+        * WebKitSite/blog/wp-includes/class-phpass.php: Removed.
+        * WebKitSite/blog/wp-includes/class-phpmailer.php: Removed.
+        * WebKitSite/blog/wp-includes/class-pop3.php: Removed.
+        * WebKitSite/blog/wp-includes/class-simplepie.php: Removed.
+        * WebKitSite/blog/wp-includes/class-smtp.php: Removed.
+        * WebKitSite/blog/wp-includes/class-snoopy.php: Removed.
+        * WebKitSite/blog/wp-includes/class.wp-dependencies.php: Removed.
+        * WebKitSite/blog/wp-includes/class.wp-scripts.php: Removed.
+        * WebKitSite/blog/wp-includes/class.wp-styles.php: Removed.
+        * WebKitSite/blog/wp-includes/classes.php: Removed.
+        * WebKitSite/blog/wp-includes/comment-template.php: Removed.
+        * WebKitSite/blog/wp-includes/comment.php: Removed.
+        * WebKitSite/blog/wp-includes/compat.php: Removed.
+        * WebKitSite/blog/wp-includes/cron.php: Removed.
+        * WebKitSite/blog/wp-includes/default-filters.php: Removed.
+        * WebKitSite/blog/wp-includes/default-widgets.php: Removed.
+        * WebKitSite/blog/wp-includes/deprecated.php: Removed.
+        * WebKitSite/blog/wp-includes/feed-atom-comments.php: Removed.
+        * WebKitSite/blog/wp-includes/feed-atom.php: Removed.
+        * WebKitSite/blog/wp-includes/feed-rdf.php: Removed.
+        * WebKitSite/blog/wp-includes/feed-rss.php: Removed.
+        * WebKitSite/blog/wp-includes/feed-rss2-comments.php: Removed.
+        * WebKitSite/blog/wp-includes/feed-rss2.php: Removed.
+        * WebKitSite/blog/wp-includes/feed.php: Removed.
+        * WebKitSite/blog/wp-includes/formatting.php: Removed.
+        * WebKitSite/blog/wp-includes/functions.php: Removed.
+        * WebKitSite/blog/wp-includes/functions.wp-scripts.php: Removed.
+        * WebKitSite/blog/wp-includes/functions.wp-styles.php: Removed.
+        * WebKitSite/blog/wp-includes/general-template.php: Removed.
+        * WebKitSite/blog/wp-includes/gettext.php: Removed.
+        * WebKitSite/blog/wp-includes/http.php: Removed.
+        * WebKitSite/blog/wp-includes/images: Removed.
+        * WebKitSite/blog/wp-includes/images/blank.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/archive.png: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/audio.png: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/code.png: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/default.png: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/document.png: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/interactive.png: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/license.txt: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/spreadsheet.png: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/text.png: Removed.
+        * WebKitSite/blog/wp-includes/images/crystal/video.png: Removed.
+        * WebKitSite/blog/wp-includes/images/rss.png: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_arrow.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_biggrin.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_confused.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_cool.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_cry.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_eek.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_evil.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_exclaim.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_idea.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_lol.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_mad.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_mrgreen.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_neutral.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_question.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_razz.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_redface.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_rolleyes.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_sad.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_smile.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_surprised.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_twisted.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/smilies/icon_wink.gif: Removed.
+        * WebKitSite/blog/wp-includes/images/upload.png: Removed.
+        * WebKitSite/blog/wp-includes/images/wlw: Removed.
+        * WebKitSite/blog/wp-includes/images/wlw/wp-comments.png: Removed.
+        * WebKitSite/blog/wp-includes/images/wlw/wp-icon.png: Removed.
+        * WebKitSite/blog/wp-includes/images/wlw/wp-watermark.png: Removed.
+        * WebKitSite/blog/wp-includes/js: Removed.
+        * WebKitSite/blog/wp-includes/js/autosave.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/autosave.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/codepress.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/codepress.html: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/codepress.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/engines: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/engines/gecko.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/engines/khtml.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/engines/msie.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/engines/older.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/engines/opera.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/images: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/images/line-numbers.png: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/asp.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/asp.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/autoit.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/autoit.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/csharp.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/csharp.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/css.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/css.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/generic.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/generic.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/html.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/html.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/java.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/java.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/javascript.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/javascript.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/perl.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/perl.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/php.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/php.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/ruby.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/ruby.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/sql.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/sql.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/text.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/text.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/vbscript.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/vbscript.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/xsl.css: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/languages/xsl.js: Removed.
+        * WebKitSite/blog/wp-includes/js/codepress/license.txt: Removed.
+        * WebKitSite/blog/wp-includes/js/colorpicker.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/colorpicker.js: Removed.
+        * WebKitSite/blog/wp-includes/js/comment-reply.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/comment-reply.js: Removed.
+        * WebKitSite/blog/wp-includes/js/crop: Removed.
+        * WebKitSite/blog/wp-includes/js/crop/cropper.css: Removed.
+        * WebKitSite/blog/wp-includes/js/crop/cropper.js: Removed.
+        * WebKitSite/blog/wp-includes/js/crop/marqueeHoriz.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/crop/marqueeVert.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/hoverIntent.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/hoverIntent.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jcrop: Removed.
+        * WebKitSite/blog/wp-includes/js/jcrop/Jcrop.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/jcrop/jquery.Jcrop.css: Removed.
+        * WebKitSite/blog/wp-includes/js/jcrop/jquery.Jcrop.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jcrop/jquery.Jcrop.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/interface.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.color.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.color.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.form.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.form.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.hotkeys.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.hotkeys.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.schedule.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.table-hotkeys.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/jquery.table-hotkeys.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/suggest.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/suggest.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/ui.core.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/ui.dialog.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/ui.draggable.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/ui.droppable.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/ui.resizable.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/ui.selectable.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/ui.sortable.js: Removed.
+        * WebKitSite/blog/wp-includes/js/jquery/ui.tabs.js: Removed.
+        * WebKitSite/blog/wp-includes/js/prototype.js: Removed.
+        * WebKitSite/blog/wp-includes/js/quicktags.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/quicktags.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/MIT-LICENSE: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/builder.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/controls.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/dragdrop.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/effects.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/prototype.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/scriptaculous.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/slider.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/sound.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/unittest.js: Removed.
+        * WebKitSite/blog/wp-includes/js/scriptaculous/wp-scriptaculous.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfobject.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/handlers.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/handlers.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/plugins: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/plugins/swfupload.cookies.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/plugins/swfupload.queue.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/plugins/swfupload.speed.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/plugins/swfupload.swfobject.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/swfupload-all.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/swfupload.js: Removed.
+        * WebKitSite/blog/wp-includes/js/swfupload/swfupload.swf: Removed.
+        * WebKitSite/blog/wp-includes/js/thickbox: Removed.
+        * WebKitSite/blog/wp-includes/js/thickbox/loadingAnimation.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/thickbox/macFFBgHack.png: Removed.
+        * WebKitSite/blog/wp-includes/js/thickbox/tb-close.png: Removed.
+        * WebKitSite/blog/wp-includes/js/thickbox/thickbox.css: Removed.
+        * WebKitSite/blog/wp-includes/js/thickbox/thickbox.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/blank.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/langs: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/langs/wp-langs-en.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/langs/wp-langs.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/license.txt: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/autosave: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/autosave/langs: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/directionality: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/directionality/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/directionality/images: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/directionality/langs: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/fullscreen: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/images: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/jscripts: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/drag.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/inlinepopups/template.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/css/content.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/css/media.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/flash.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/flv_player.swf: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/quicktime.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/realmedia.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/shockwave.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/trans.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/img/windowsmedia.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/js/embed.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/js/media.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/media/media.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/blank.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/images: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/js/pastetext.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/js/pasteword.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/jscripts: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/langs: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/pastetext.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/paste/pasteword.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/safari: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/safari/blank.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/safari/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/EnchantSpell.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/PSpell.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/PSpellShell.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/SpellChecker.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/utils: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/utils/JSON.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/utils/Logger.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/config.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/css/content.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/images: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/img/wline.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/includes: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/includes/general.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/langs: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/spellchecker/rpc.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/tabfocus: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/css/content.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/images: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/audio.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/help.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/image.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/media.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/more.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/more_bug.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/page.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/page_bug.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/toolbars.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/img/video.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wordpress/langs: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/css/editimage-rtl.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/editimage.html: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/img/delete.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/img/image.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img/delete.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img/edit.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img/gallery.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wphelp: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wphelp/images: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/plugins/wphelp/langs: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/about.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/anchor.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/charmap.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/color_picker.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/editor_template.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/image.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/images: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/images/xp: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/colorpicker.jpg: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/fm.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/gotmoxie.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/icons.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/img/sflogo.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/about.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/anchor.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/charmap.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/color_picker.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/image.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/link.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/js/source_editor.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/jscripts: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/langs: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/link.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/content.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/dialog.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/buttons.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/items.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_check.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/progress.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/tabs.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/default/ui.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/content.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/dialog.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui_black.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/butt2.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/button_bg.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/down_arrow.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/fade-butt.png: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/separator.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/tabs.gif: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/themes/advanced/source_editor.htm: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/tiny_mce.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/tiny_mce_popup.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/utils: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/utils/editable_selects.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/utils/form_utils.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/utils/mctabs.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/utils/validate.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/wp-mce-help.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/wp-tinymce.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/wp-tinymce.js.gz: Removed.
+        * WebKitSite/blog/wp-includes/js/tinymce/wp-tinymce.php: Removed.
+        * WebKitSite/blog/wp-includes/js/tw-sack.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/tw-sack.js: Removed.
+        * WebKitSite/blog/wp-includes/js/wp-ajax-response.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/wp-ajax-response.js: Removed.
+        * WebKitSite/blog/wp-includes/js/wp-lists.dev.js: Removed.
+        * WebKitSite/blog/wp-includes/js/wp-lists.js: Removed.
+        * WebKitSite/blog/wp-includes/kses.php: Removed.
+        * WebKitSite/blog/wp-includes/l10n.php: Removed.
+        * WebKitSite/blog/wp-includes/link-template.php: Removed.
+        * WebKitSite/blog/wp-includes/locale.php: Removed.
+        * WebKitSite/blog/wp-includes/media.php: Removed.
+        * WebKitSite/blog/wp-includes/pluggable.php: Removed.
+        * WebKitSite/blog/wp-includes/plugin.php: Removed.
+        * WebKitSite/blog/wp-includes/pomo: Removed.
+        * WebKitSite/blog/wp-includes/pomo/entry.php: Removed.
+        * WebKitSite/blog/wp-includes/pomo/mo.php: Removed.
+        * WebKitSite/blog/wp-includes/pomo/po.php: Removed.
+        * WebKitSite/blog/wp-includes/pomo/streams.php: Removed.
+        * WebKitSite/blog/wp-includes/pomo/translations.php: Removed.
+        * WebKitSite/blog/wp-includes/post-template.php: Removed.
+        * WebKitSite/blog/wp-includes/post.php: Removed.
+        * WebKitSite/blog/wp-includes/query.php: Removed.
+        * WebKitSite/blog/wp-includes/registration-functions.php: Removed.
+        * WebKitSite/blog/wp-includes/registration.php: Removed.
+        * WebKitSite/blog/wp-includes/rewrite.php: Removed.
+        * WebKitSite/blog/wp-includes/rss-functions.php: Removed.
+        * WebKitSite/blog/wp-includes/rss.php: Removed.
+        * WebKitSite/blog/wp-includes/script-loader.php: Removed.
+        * WebKitSite/blog/wp-includes/shortcodes.php: Removed.
+        * WebKitSite/blog/wp-includes/streams.php: Removed.
+        * WebKitSite/blog/wp-includes/taxonomy.php: Removed.
+        * WebKitSite/blog/wp-includes/template-loader.php: Removed.
+        * WebKitSite/blog/wp-includes/theme.php: Removed.
+        * WebKitSite/blog/wp-includes/update.php: Removed.
+        * WebKitSite/blog/wp-includes/user.php: Removed.
+        * WebKitSite/blog/wp-includes/vars.php: Removed.
+        * WebKitSite/blog/wp-includes/version.php: Removed.
+        * WebKitSite/blog/wp-includes/widgets.php: Removed.
+        * WebKitSite/blog/wp-includes/wlwmanifest.xml: Removed.
+        * WebKitSite/blog/wp-includes/wp-db.php: Removed.
+        * WebKitSite/blog/wp-includes/wp-diff.php: Removed.
+        * WebKitSite/blog/wp-links-opml.php: Removed.
+        * WebKitSite/blog/wp-load.php: Removed.
+        * WebKitSite/blog/wp-login.php: Removed.
+        * WebKitSite/blog/wp-mail.php: Removed.
+        * WebKitSite/blog/wp-pass.php: Removed.
+        * WebKitSite/blog/wp-rdf.php: Removed.
+        * WebKitSite/blog/wp-register.php: Removed.
+        * WebKitSite/blog/wp-rss.php: Removed.
+        * WebKitSite/blog/wp-rss2.php: Removed.
+        * WebKitSite/blog/wp-settings.php: Removed.
+        * WebKitSite/blog/wp-trackback.php: Removed.
+        * WebKitSite/blog/xmlrpc.php: Removed.
+        * WebKitSite/building: Removed.
+        * WebKitSite/building/build-window.png: Removed.
+        * WebKitSite/building/build.html: Removed.
+        * WebKitSite/building/checkout.html: Removed.
+        * WebKitSite/building/custom-executable.png: Removed.
+        * WebKitSite/building/cygwin-downloader.zip: Removed.
+        * WebKitSite/building/debug.html: Removed.
+        * WebKitSite/building/debug.png: Removed.
+        * WebKitSite/building/info-tab.png: Removed.
+        * WebKitSite/building/launch-debugger-vs2005.png: Removed.
+        * WebKitSite/building/run.html: Removed.
+        * WebKitSite/building/set-as-startup-project-vs2005.png: Removed.
+        * WebKitSite/building/set-debugging-properties-vs2005.png: Removed.
+        * WebKitSite/building/tools.html: Removed.
+        * WebKitSite/coding: Removed.
+        * WebKitSite/coding/RefPtr.html: Removed.
+        * WebKitSite/coding/assertion-guidelines.html: Removed.
+        * WebKitSite/coding/bsd-license.html: Removed.
+        * WebKitSite/coding/coding-style.html: Removed.
+        * WebKitSite/coding/commit-review-policy.html: Removed.
+        * WebKitSite/coding/contributing.html: Removed.
+        * WebKitSite/coding/dom-element-attach.html: Removed.
+        * WebKitSite/coding/images: Removed.
+        * WebKitSite/coding/images/contribute_add_attachment.png: Removed.
+        * WebKitSite/coding/images/contribute_mark_review.png: Removed.
+        * WebKitSite/coding/images/dom-element-attach-large.png: Removed.
+        * WebKitSite/coding/images/dom-element-attach-small.png: Removed.
+        * WebKitSite/coding/images/dom-element-attach.graffle: Removed.
+        * WebKitSite/coding/lgpl-license.html: Removed.
+        * WebKitSite/coding/major-objects.html: Removed.
+        * WebKitSite/coding/scripts.html: Removed.
+        * WebKitSite/coding/technical-articles.html: Removed.
+        * WebKitSite/contact.html: Removed.
+        * WebKitSite/css: Removed.
+        * WebKitSite/css/blue.css: Removed.
+        * WebKitSite/css/gray.css: Removed.
+        * WebKitSite/css/green.css: Removed.
+        * WebKitSite/css/ie.css: Removed.
+        * WebKitSite/css/main.css: Removed.
+        * WebKit