Title: [205328] trunk/Source/_javascript_Core
Revision
205328
Author
[email protected]
Date
2016-09-01 18:01:29 -0700 (Thu, 01 Sep 2016)

Log Message

jsc: provide printErr()
https://bugs.webkit.org/show_bug.cgi?id=161513

Patch by JF Bastien <[email protected]> on 2016-09-01
Reviewed by Mark Lam.

* jsc.cpp:
(GlobalObject::finishCreation):
(printInternal): renamed from functionPrint, add error checking
(functionPrintStdOut): punt to printInternal
(functionPrintStdErr): punt to printInternal
(functionPrint): Deleted.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (205327 => 205328)


--- trunk/Source/_javascript_Core/ChangeLog	2016-09-01 23:43:39 UTC (rev 205327)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-09-02 01:01:29 UTC (rev 205328)
@@ -1,3 +1,17 @@
+2016-09-01  JF Bastien  <[email protected]>
+
+        jsc: provide printErr()
+        https://bugs.webkit.org/show_bug.cgi?id=161513
+
+        Reviewed by Mark Lam.
+
+        * jsc.cpp:
+        (GlobalObject::finishCreation):
+        (printInternal): renamed from functionPrint, add error checking
+        (functionPrintStdOut): punt to printInternal
+        (functionPrintStdErr): punt to printInternal
+        (functionPrint): Deleted.
+
 2016-09-01  Mark Lam  <[email protected]>
 
         Move some JSObject and JSArray inline functions to their respective Inlines.h files.

Modified: trunk/Source/_javascript_Core/jsc.cpp (205327 => 205328)


--- trunk/Source/_javascript_Core/jsc.cpp	2016-09-01 23:43:39 UTC (rev 205327)
+++ trunk/Source/_javascript_Core/jsc.cpp	2016-09-02 01:01:29 UTC (rev 205328)
@@ -578,7 +578,8 @@
 static EncodedJSValue JSC_HOST_CALL functionCreateSimpleObject(ExecState*);
 static EncodedJSValue JSC_HOST_CALL functionGetHiddenValue(ExecState*);
 static EncodedJSValue JSC_HOST_CALL functionSetHiddenValue(ExecState*);
-static EncodedJSValue JSC_HOST_CALL functionPrint(ExecState*);
+static EncodedJSValue JSC_HOST_CALL functionPrintStdOut(ExecState*);
+static EncodedJSValue JSC_HOST_CALL functionPrintStdErr(ExecState*);
 static EncodedJSValue JSC_HOST_CALL functionDebug(ExecState*);
 static EncodedJSValue JSC_HOST_CALL functionDescribe(ExecState*);
 static EncodedJSValue JSC_HOST_CALL functionDescribeArray(ExecState*);
@@ -779,7 +780,8 @@
         addFunction(vm, "debug", functionDebug, 1);
         addFunction(vm, "describe", functionDescribe, 1);
         addFunction(vm, "describeArray", functionDescribeArray, 1);
-        addFunction(vm, "print", functionPrint, 1);
+        addFunction(vm, "print", functionPrintStdOut, 1);
+        addFunction(vm, "printErr", functionPrintStdErr, 1);
         addFunction(vm, "quit", functionQuit, 0);
         addFunction(vm, "abort", functionAbort, 0);
         addFunction(vm, "gc", functionGCAndSweep, 0);
@@ -1152,7 +1154,7 @@
 }
 
 
-EncodedJSValue JSC_HOST_CALL functionPrint(ExecState* exec)
+static EncodedJSValue printInternal(ExecState* exec, FILE* out)
 {
     if (test262AsyncTest) {
         JSValue value = exec->argument(0);
@@ -1163,16 +1165,22 @@
 
     for (unsigned i = 0; i < exec->argumentCount(); ++i) {
         if (i)
-            putchar(' ');
+            if (EOF == fputc(' ', out))
+                goto fail;
 
-        printf("%s", exec->uncheckedArgument(i).toString(exec)->view(exec).get().utf8().data());
+        if (fprintf(out, "%s", exec->uncheckedArgument(i).toString(exec)->view(exec).get().utf8().data()) < 0)
+            goto fail;
     }
 
-    putchar('\n');
-    fflush(stdout);
+    fputc('\n', out);
+fail:
+    fflush(out);
     return JSValue::encode(jsUndefined());
 }
 
+EncodedJSValue JSC_HOST_CALL functionPrintStdOut(ExecState* exec) { return printInternal(exec, stdout); }
+EncodedJSValue JSC_HOST_CALL functionPrintStdErr(ExecState* exec) { return printInternal(exec, stderr); }
+
 #ifndef NDEBUG
 EncodedJSValue JSC_HOST_CALL functionDumpCallFrame(ExecState* exec)
 {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to