• Clement Ho @ClemMakesApps ·
    Author Contributor

    Checklist styling is broken on gitlab.com for RTL https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16514 We should make sure we fix this in csslab

  • Clement Ho @ClemMakesApps ·
    Author Contributor
    // vim: ft=javascript
    
    var myFloat = 0.123;
    var myOctal = 0x123;
    var myRegex = /asdf/;
    var myComplicatedRegex = /.[.](?=x\h\[[)])[^.{}abc]{foo}{3,}x{2,3}/
    var myObject = { a: 1, b: 2 }
    
    var test = 123
    
    switch(test) {
    case 123:
      console.log(123)
      break
    default:
      console.log('default')
      break
    }
    
    switch(1) {
      case { foo: 1 }.foo:
        console.log('oh my fucking god')
        break
      case { bar: 2 }.bar ? baz: zot:
    
      case { zot: 3 }.zot ? { quux : 4 } .quux: 5:
        console.log('ahahahahahaha')
    
    }
    
    var ternary = 0 ? 1 : {object_key : 2 ? variable : 3 };
    var ternary2 = a ? { object_key : c } + variable : e;
    var ternary3 = a ? {
      key1 : var1,
      key2: var2 ? function() {
        label1: // break label, not an object key!
        while(true) {
          break label1;
        }
    
        label2: // also a break label
        while (true) {
          break label2;
        }
      } + var3: var4, // ternary, not object key
      key3: 'foo'
    } : 2
    
    var a = {
      num: 0,
      func: function() {},
      str: '',
      bool: true
    }
    
    var obj =
      {
        // comment
        key: val
      }
    
    /*!
     * multiline comment
     */
    
    var quotedKeys = {
      "one": 1,
      "two": 2,
      "three": 3,
    };
    
    var doc = {
      "first": {
        "key": "value",
        "func" : function() {
          label:
          while (true) break label;
    
          return foo ? "bar" : { baz: zot }
    
        }
    
      },
      "hello": "world"
    };
    
    // not an object is OK
    var doc = {
      "first": "value",
      "hello": "world"
    };
    
    // not quoted is OK
    var doc = {
      first: {
        "key": "value"
      },
      "hello": "world"
    };
    Blag = {};
    jQuery.noConflict();
    
    if (cond)
    {
      label1:
      while (cond) break label1;
    }
    
    Blag.ReadMore = (function($) {
      function getFold(button) {
        return $(button).siblings('.fold');
      }
    
      function expand(e) {
        e.preventDefault();
    
        var self = $(this);
    
        getFold(self).show();
        self.html('« less');
      }
    
      function contract(e) {
        e.preventDefault();
    
        var self = $(this);
    
        getFold(self).hide();
        self.html('more »')
      }
    
      function init() {
        $('a.read-more').toggle(expand, contract);
      }
    
      $(document).ready(init);
    })(jQuery);
    
    // evil regexes, from pygments
    
    /regexp/.test(foo) || x = [/regexp/,/regexp/, /regexp/, // comment
    // comment
    /regexp/];
    if (/regexp/.test(string))
    {/regexp/.test(string);};
    x =/regexp/;
    x = /regexp/;
    if (0</regexp/.exec(string) || 1>/regexp/.exec(string))
    x = { u:/regexp/, v: /regexp/ };
    foo();/regexp/.test(string); /regexp/.test(string);
    if (!/regexp/) foobar();
    x = u %/regexp/.exec(string) */regexp/.exec(string) / /regexp/.exec(string);
    x = u?/regexp/.exec(string) : v +/regexp/.exec(string) -/regexp/.exec(string);
    a = u^/regexp/.exec(string) &/regexp/.exec(string) |/regexp/.exec(string) +~/regexp/.exec(string);
    x = /regexp/ /* a comment */ ;
    x = /[reg/exp]/;
    x = 4/2/i;
    x = (a == b) ?/* this is a comment */ c : d;
    /// a comment //
    a = /regex//2/1; //syntactically correct, returns NaN
    
    // bad regexen - should have an error token at the last char and recover
    // on the next line
    var a = /foo
    var b = /[foo
    var c = /valid-regex/
    
    var template = "{{current}} of beer on the wall";
    var stanza = template.replace(/{{current}}/g, "99 bottles");
    
    /* original examples */
    
    // regex
    
    blah(/abc/);
    x = /abc/;
    x = /abc/.match;
    
    // math
    
    blah(1/2); //comment
    x = 1 / 2 / 3;
    x = 1/1/.1;
    
    x=/1/; // regex
    x=1/a/g; // division
    x=a/a/g; // division
    
    // real-world
    
    var x = 1/(1+Math.sqrt(sum)); // convert to number between 1-0
    return Math.round((num / den) * 100)/100;
    
    // generator
    function* range(from, to)
    {
      to++;
      while (from > to) {
        yield from++;
      }
    }
    
    // string interpolation
    `this is ${"sparta".toUpperCase()}`;
    
    // nasty string interpolation
    `this\n \` \${2} $\` is\n ${"sparta".toUpperCase() + function() { return 4; } + "h"}`;
    `hello ${"${re}" + `curs${1}on`}`;
    
    `$`;
    `$${1 + 2 + 3}`;
    
    `${
      'multiline template'
    }`;
    `${
      1 + 2
    }`;
    
    @(function(thing) { return thing; })
    class Person {
      @deprecate
      facepalm() {}
    
      @deprecate('We stopped facepalming')
      facepalmHard() {}
    
      @deprecate('We stopped facepalming', { url: 'http://knowyourmeme.com/memes/facepalm' })
      facepalmHarder() {}
    }
    
    // ES6 module
    import * as foo from 'foo'
    import { bar as baz } from 'bar'
    export * from 'baz'
    export function hoge() {}
    export class fuga extends baz {
      constructor () {
        super()
      }
      async doit (stuff) {
        await stuff()
        this.dont(stuff)
      }
      dont (stuff) {
        return arguments.length
      }
    }
    eval('false')
    global.foo = {
      * [Symbol.iterator] () { return }
    }
    for (const x of global.foo) {}
    
    // ES6 numbers
    
    var myBin   = 0b10;
    var myOct   = 0o67;
    Edited by Clement Ho
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment