Changeset 143440 in webkit


Ignore:
Timestamp:
Feb 20, 2013 1:44:37 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Web Inspector: highlight undefined word in JavaScript
https://bugs.webkit.org/show_bug.cgi?id=109585

Patch by Andrey Lushnikov <lushnikov@chromium.org> on 2013-02-20
Reviewed by Vsevolod Vlasov.

Source/WebCore:

Test enhancement: inspector/syntax-highlight-javascript.html

Add global object value properties to tokenizer and add a css style
class to highlight "undefined" with gray color.

  • inspector/front-end/SourceJavaScriptTokenizer.js:

(WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):

  • inspector/front-end/SourceJavaScriptTokenizer.re2js:
  • inspector/front-end/inspectorSyntaxHighlight.css:

(.webkit-javascript-undef):

LayoutTests:

Enhance layout test to verify highlighting of global object value properties.

  • inspector/syntax-highlight-javascript-expected.txt:
  • inspector/syntax-highlight-javascript.html:
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r143439 r143440  
     12013-02-20  Andrey Lushnikov  <lushnikov@chromium.org>
     2
     3        Web Inspector: highlight undefined word in JavaScript
     4        https://bugs.webkit.org/show_bug.cgi?id=109585
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        Enhance layout test to verify highlighting of global object value properties.
     9
     10        * inspector/syntax-highlight-javascript-expected.txt:
     11        * inspector/syntax-highlight-javascript.html:
     12
    1132013-02-20  Mike West  <mkwst@chromium.org>
    214
  • trunk/LayoutTests/inspector/syntax-highlight-javascript-expected.txt

    r141987 r143440  
    1818{0: true}: webkit-block-start,webkit-javascript-number,*,webkit-whitespace,webkit-javascript-keyword,webkit-block-end
    1919var toString;: webkit-javascript-keyword,webkit-whitespace,webkit-javascript-ident,*
     20var foo = undefined;: webkit-javascript-keyword,webkit-whitespace,webkit-javascript-ident,webkit-whitespace,*,webkit-whitespace,webkit-javascript-undef,*
     21var foo = Infinity;: webkit-javascript-keyword,webkit-whitespace,webkit-javascript-ident,webkit-whitespace,*,webkit-whitespace,webkit-javascript-inf,*
     22var foo = NaN;: webkit-javascript-keyword,webkit-whitespace,webkit-javascript-ident,webkit-whitespace,*,webkit-whitespace,webkit-javascript-nan,*
    2023
  • trunk/LayoutTests/inspector/syntax-highlight-javascript.html

    r86554 r143440  
    2525    dumpSyntaxHighlightJS("{0: true}");
    2626    dumpSyntaxHighlightJS("var toString;");
     27    dumpSyntaxHighlightJS("var foo = undefined;");
     28    dumpSyntaxHighlightJS("var foo = Infinity;");
     29    dumpSyntaxHighlightJS("var foo = NaN;");
    2730
    2831    InspectorTest.completeTest();
  • trunk/Source/WebCore/ChangeLog

    r143439 r143440  
     12013-02-20  Andrey Lushnikov  <lushnikov@chromium.org>
     2
     3        Web Inspector: highlight undefined word in JavaScript
     4        https://bugs.webkit.org/show_bug.cgi?id=109585
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        Test enhancement: inspector/syntax-highlight-javascript.html
     9
     10        Add global object value properties to tokenizer and add a css style
     11        class to highlight "undefined" with gray color.
     12
     13        * inspector/front-end/SourceJavaScriptTokenizer.js:
     14        (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
     15        * inspector/front-end/SourceJavaScriptTokenizer.re2js:
     16        * inspector/front-end/inspectorSyntaxHighlight.css:
     17        (.webkit-javascript-undef):
     18
    1192013-02-20  Mike West  <mkwst@chromium.org>
    220
  • trunk/Source/WebCore/inspector/front-end/SourceJavaScriptTokenizer.js

    r141987 r143440  
    1 /* Generated by re2c 0.13.5 on Wed Feb  6 13:24:52 2013 */
     1/* Generated by re2c 0.13.5 on Tue Feb 19 16:16:47 2013 */
    22/*
    33 * Copyright (C) 2009 Google Inc. All rights reserved.
     
    7878    ].keySet();
    7979
     80WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties = {
     81    "NaN": "javascript-nan",
     82    "undefined": "javascript-undef",
     83    "Infinity": "javascript-inf"
     84};
     85
    8086WebInspector.SourceJavaScriptTokenizer.prototype = {
    8187    createInitialCondition: function()
     
    279285            {
    280286                    var token = this._line.substring(cursorOnEnter, cursor);
    281                     if (WebInspector.SourceJavaScriptTokenizer.Keywords[token] === true && token !== "__proto__")
     287                    if (WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties.hasOwnProperty(token))
     288                        this.tokenType = WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties[token];
     289                    else if (WebInspector.SourceJavaScriptTokenizer.Keywords[token] === true && token !== "__proto__")
    282290                        this.tokenType = "javascript-keyword";
    283291                    else
     
    12371245            {
    12381246                    var token = this._line.substring(cursorOnEnter, cursor);
    1239                     if (WebInspector.SourceJavaScriptTokenizer.Keywords[token] === true && token !== "__proto__")
     1247                    if (WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties.hasOwnProperty(token))
     1248                        this.tokenType = WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties[token];
     1249                    else if (WebInspector.SourceJavaScriptTokenizer.Keywords[token] === true && token !== "__proto__")
    12401250                        this.tokenType = "javascript-keyword";
    12411251                    else
  • trunk/Source/WebCore/inspector/front-end/SourceJavaScriptTokenizer.re2js

    r141987 r143440  
    7777    ].keySet();
    7878
     79WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties = {
     80    "NaN": "javascript-nan",
     81    "undefined": "javascript-undef",
     82    "Infinity": "javascript-inf"
     83};
     84
    7985WebInspector.SourceJavaScriptTokenizer.prototype = {
    8086    createInitialCondition: function()
     
    174180                {
    175181                    var token = this._line.substring(cursorOnEnter, cursor);
    176                     if (WebInspector.SourceJavaScriptTokenizer.Keywords[token] === true && token !== "__proto__")
     182                    if (WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties.hasOwnProperty(token))
     183                        this.tokenType = WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties[token];
     184                    else if (WebInspector.SourceJavaScriptTokenizer.Keywords[token] === true && token !== "__proto__")
    177185                        this.tokenType = "javascript-keyword";
    178186                    else
  • trunk/Source/WebCore/inspector/front-end/inspectorSyntaxHighlight.css

    r142447 r143440  
    4949.webkit-css-bang-keyword {
    5050    color: rgb(200, 0, 180);
     51}
     52
     53.webkit-javascript-undef {
     54    color: rgb(123, 123, 123);
    5155}
    5256
Note: See TracChangeset for help on using the changeset viewer.