Use GetOperatorString when writing GLSL unary built-in calls

GetOperatorString is now used when writing GLSL for built-in calls
that fall under TIntermUnary. Component-wise not TOperator enum is
renamed for consistency.

This also cleans up some unnecessary creation of string objects when
writing built-in functions.

BUG=angleproject:1682
TEST=angle_unittests, angle_end2end_tests, WebGL conformance tests

Change-Id: I89b2ef222bf5af479d4977417f320789b58ace85
Reviewed-on: https://chromium-review.googlesource.com/424552
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/EmulatePrecision.cpp b/src/compiler/translator/EmulatePrecision.cpp
index ec95ead..780728b 100644
--- a/src/compiler/translator/EmulatePrecision.cpp
+++ b/src/compiler/translator/EmulatePrecision.cpp
@@ -676,12 +676,12 @@
     switch (node->getOp())
     {
         case EOpNegative:
-        case EOpVectorLogicalNot:
         case EOpLogicalNot:
         case EOpPostIncrement:
         case EOpPostDecrement:
         case EOpPreIncrement:
         case EOpPreDecrement:
+        case EOpLogicalNotComponentWise:
             break;
         default:
             if (canRoundFloat(node->getType()) && visit == PreVisit)