Sfoglia il codice sorgente

LibJS: Implement console.countReset()

I chose to also make it print "<counter_name>: 0\n" when a counter gets
reset, similarly to how firefox behaves.
Emanuele Torre 5 anni fa
parent
commit
46b79eaad9

+ 19 - 0
Libraries/LibJS/Runtime/ConsoleObject.cpp

@@ -56,6 +56,7 @@ ConsoleObject::ConsoleObject()
     put_native_function("error", error);
     put_native_function("trace", trace);
     put_native_function("count", count);
+    put_native_function("countReset", count_reset);
 }
 
 ConsoleObject::~ConsoleObject()
@@ -133,4 +134,22 @@ Value ConsoleObject::count(Interpreter& interpreter)
     return js_undefined();
 }
 
+Value ConsoleObject::count_reset(Interpreter& interpreter)
+{
+    String counter_name;
+    if (!interpreter.argument_count())
+        counter_name = "default";
+    else
+        counter_name = interpreter.argument(0).to_string();
+
+    auto& counters = interpreter.console_counters();
+
+    if (counters.contains(counter_name)) {
+        counters.remove(counter_name);
+        printf("%s: 0\n", counter_name.characters());
+    }
+
+    return js_undefined();
+}
+
 }

+ 1 - 0
Libraries/LibJS/Runtime/ConsoleObject.h

@@ -45,6 +45,7 @@ private:
     static Value error(Interpreter&);
     static Value trace(Interpreter&);
     static Value count(Interpreter&);
+    static Value count_reset(Interpreter&);
 };
 
 }