瀏覽代碼

LibWeb: Add basic support for boolean IDL attributes :^)

Andreas Kling 4 年之前
父節點
當前提交
5782099106
共有 1 個文件被更改,包括 4 次插入0 次删除
  1. 4 0
      Libraries/LibWeb/CodeGenerators/WrapperGenerator.cpp

+ 4 - 0
Libraries/LibWeb/CodeGenerators/WrapperGenerator.cpp

@@ -541,6 +541,8 @@ void generate_implementation(const IDL::Interface& interface)
             out() << "    auto " << cpp_name << " = " << js_name << js_suffix << ".to_double(interpreter);";
             out() << "    auto " << cpp_name << " = " << js_name << js_suffix << ".to_double(interpreter);";
             out() << "    if (interpreter.exception())";
             out() << "    if (interpreter.exception())";
             generate_return();
             generate_return();
+        } else if (parameter.type.name == "boolean") {
+            out() << "    auto " << cpp_name << " = " << js_name << js_suffix << ".to_boolean();";
         } else {
         } else {
             dbg() << "Unimplemented JS-to-C++ conversion: " << parameter.type.name;
             dbg() << "Unimplemented JS-to-C++ conversion: " << parameter.type.name;
             ASSERT_NOT_REACHED();
             ASSERT_NOT_REACHED();
@@ -589,6 +591,8 @@ void generate_implementation(const IDL::Interface& interface)
             out() << "    return JS::Value(retval);";
             out() << "    return JS::Value(retval);";
         } else if (return_type.name == "Uint8ClampedArray") {
         } else if (return_type.name == "Uint8ClampedArray") {
             out() << "    return retval;";
             out() << "    return retval;";
+        } else  if (return_type.name == "boolean") {
+            out() << "    return JS::Value(retval);";
         } else {
         } else {
             out() << "    return wrap(global_object, const_cast<" << return_type.name << "&>(*retval));";
             out() << "    return wrap(global_object, const_cast<" << return_type.name << "&>(*retval));";
         }
         }