Best JavaScript code snippet using playwright-internal
narcissus-exec.js
Source:narcissus-exec.js  
...186    this.propertyName = propertyName;187    this.node = node;188}189Reference.prototype.toString = function () { return this.node.getSource(); }190function getValue(v) {191    if (v instanceof Reference) {192        if (!v.base) {193            throw new ReferenceError(v.propertyName + " is not defined",194                                     v.node.filename(), v.node.lineno);195        }196        return v.base[v.propertyName];197    }198    return v;199}200function putValue(v, w, vn) {201    if (v instanceof Reference)202        return (v.base || global)[v.propertyName] = w;203    throw new ReferenceError("Invalid assignment left-hand side",204                             vn.filename(), vn.lineno);205}206function isPrimitive(v) {207    var t = typeof v;208    return (t == "object") ? v === null : t != "function";209}210function isObject(v) {211    var t = typeof v;212    return (t == "object") ? v !== null : t == "function";213}214// If r instanceof Reference, v == getValue(r); else v === r.  If passed, rn215// is the node whose execute result was r.216function toObject(v, r, rn) {217    switch (typeof v) {218      case "boolean":219        return new global.Boolean(v);220      case "number":221        return new global.Number(v);222      case "string":223        return new global.String(v);224      case "function":225        return v;226      case "object":227        if (v !== null)228            return v;229    }230    var message = r + " (type " + (typeof v) + ") has no properties";231    throw rn ? new TypeError(message, rn.filename(), rn.lineno)232             : new TypeError(message);233}234function execute(n, x) {235    if (!this.new_block)236        new_block = new Array();237    //alert (n)238    var a, f, i, j, r, s, t, u, v;239    switch (n.type) {240      case FUNCTION:241        if (n.functionForm != DECLARED_FORM) {242            if (!n.name || n.functionForm == STATEMENT_FORM) {243                v = new FunctionObject(n, x.scope);244                if (n.functionForm == STATEMENT_FORM)245                    x.scope.object[n.name] = v;246            } else {247                t = new Object;248                x.scope = {object: t, parent: x.scope};249                try {250                    v = new FunctionObject(n, x.scope);251                    t[n.name] = v;252                } finally {253                    x.scope = x.scope.parent;254                }255            }256        }257        break;258      case SCRIPT:      259        t = x.scope.object;260        a = n.funDecls;261        for (i = 0, j = a.length; i < j; i++) {262            s = a[i].name;263            f = new FunctionObject(a[i], x.scope);264            t[s] = f;265        }266        a = n.varDecls;267        for (i = 0, j = a.length; i < j; i++) {268            u = a[i];269            s = u.name;270            if (u.readOnly && hasDirectProperty(t, s)) {271                throw new TypeError("Redeclaration of const " + s,272                                    u.filename(), u.lineno);273            }274            if (u.readOnly || !hasDirectProperty(t, s)) {275                t[s] = null;276            }277        }278        // FALL THROUGH279      case BLOCK:        280        for (i = 0, j = n.$length; i < j; i++)  {  281            //jrh282            //execute(n[i], x);      283            //new_block.unshift([n[i], x]);            284            new_block.push([n[i], x]);         285        }286        new_block.reverse();        287        agenda = agenda.concat(new_block);   288        //agenda = new_block.concat(agenda)289        // end jrh290        break;291      case IF:292        if (getValue(execute(n.condition, x)))293            execute(n.thenPart, x);294        else if (n.elsePart)295            execute(n.elsePart, x);296        break;297      case SWITCH:298        s = getValue(execute(n.discriminant, x));299        a = n.cases;300        var matchDefault = false;301      switch_loop:302        for (i = 0, j = a.length; ; i++) {303            if (i == j) {304                if (n.defaultIndex >= 0) {305                    i = n.defaultIndex - 1; // no case matched, do default306                    matchDefault = true;307                    continue;308                }309                break;                      // no default, exit switch_loop310            }311            t = a[i];                       // next case (might be default!)312            if (t.type == CASE) {313                u = getValue(execute(t.caseLabel, x));314            } else {315                if (!matchDefault)          // not defaulting, skip for now316                    continue;317                u = s;                      // force match to do default318            }319            if (u === s) {320                for (;;) {                  // this loop exits switch_loop321                    if (t.statements.length) {322                        try {323                            execute(t.statements, x);324                        } catch (e) {325                            if (!(e == BREAK && x.target == n)) { throw e }326                            break switch_loop;327                        }328                    }329                    if (++i == j)330                        break switch_loop;331                    t = a[i];332                }333                // NOT REACHED334            }335        }336        break;337      case FOR:338        // jrh339        // added "skip_setup" so initialization doesn't get called340        // on every call..341        if (!skip_setup)342            n.setup && getValue(execute(n.setup, x));343        // FALL THROUGH344      case WHILE:345        // jrh       346        //while (!n.condition || getValue(execute(n.condition, x))) {347        if (!n.condition || getValue(execute(n.condition, x))) {348            try {349                // jrh 350                //execute(n.body, x);351                new_block.push([n.body, x]);352                agenda.push([n.body, x])353                //agenda.unshift([n.body, x])354                // end jrh355            } catch (e) {356                if (e == BREAK && x.target == n) {357                    break;358                } else if (e == CONTINUE && x.target == n) {359                    // jrh360                    // 'continue' is invalid inside an 'if' clause361                    // I don't know what commenting this out will break!362                    //continue;363                    // end jrh364                    365                } else {366                    throw e;367                }368            }    369            n.update && getValue(execute(n.update, x));370            // jrh371            new_block.unshift([n, x])372            agenda.splice(agenda.length-1,0,[n, x])373            //agenda.splice(1,0,[n, x])374            skip_setup = 1375            // end jrh376        } else {377            skip_setup = 0378        }379        380        break;381      case FOR_IN:382        u = n.varDecl;383        if (u)384            execute(u, x);385        r = n.iterator;386        s = execute(n.object, x);387        v = getValue(s);388        // ECMA deviation to track extant browser JS implementation behavior.389        t = (v == null && !x.ecmaStrictMode) ? v : toObject(v, s, n.object);390        a = [];391        for (i in t)392            a.push(i);393        for (i = 0, j = a.length; i < j; i++) {394            putValue(execute(r, x), a[i], r);395            try {396                execute(n.body, x);397            } catch (e) {398                if (e == BREAK && x.target == n) {399                    break;400                } else if (e == CONTINUE && x.target == n) {401                    continue;402                } else {403                    throw e;404                }405            }406        }407        break;408      case DO:409        do {410            try {411                execute(n.body, x);412            } catch (e) {413                if (e == BREAK && x.target == n) {414                    break;415                } else if (e == CONTINUE && x.target == n) {416                    continue;417                } else {418                    throw e;419                }420            }421        } while (getValue(execute(n.condition, x)));422        break;423      case BREAK:424      case CONTINUE:425        x.target = n.target;426        throw n.type;427      case TRY:428        try {429            execute(n.tryBlock, x);430        } catch (e) {431            if (!(e == THROW && (j = n.catchClauses.length))) {432                throw e;433            }434            e = x.result;435            x.result = undefined;436            for (i = 0; ; i++) {437                if (i == j) {438                    x.result = e;439                    throw THROW;440                }441                t = n.catchClauses[i];442                x.scope = {object: {}, parent: x.scope};443                x.scope.object[t.varName] = e;444                try {445                    if (t.guard && !getValue(execute(t.guard, x)))446                        continue;447                    execute(t.block, x);448                    break;449                } finally {450                    x.scope = x.scope.parent;451                }452            }453        } finally {454            if (n.finallyBlock)455                execute(n.finallyBlock, x);456        }457        break;458      case THROW:459        x.result = getValue(execute(n.exception, x));460        throw THROW;461      case RETURN:462        x.result = getValue(execute(n.value, x));463        throw RETURN;464      case WITH:465        r = execute(n.object, x);466        t = toObject(getValue(r), r, n.object);467        x.scope = {object: t, parent: x.scope};468        try {469            execute(n.body, x);470        } finally {471            x.scope = x.scope.parent;472        }473        break;474      case VAR:475      case CONST:476        for (i = 0, j = n.$length; i < j; i++) {477            u = n[i].initializer;478            if (!u)479                continue;480            t = n[i].name;481            for (s = x.scope; s; s = s.parent) {482                if (hasDirectProperty(s.object, t))483                    break;484            }485            u = getValue(execute(u, x));486            if (n.type == CONST)487                s.object[t] = u;488            else489                s.object[t] = u;490        }491        break;492      case DEBUGGER:493        throw "NYI: " + tokens[n.type];494      case REQUIRE:495        var req = new XMLHttpRequest();496        req.open('GET', n.filename, 'false');497      case SEMICOLON:498        if (n.expression)499            // print debugging statements500                     501            var the_start = n.start502            var the_end = n.end503            var the_statement = parse_result.tokenizer.source.slice(the_start,the_end)504            //global.debug.document.body.innerHTML += ('<pre>>>> <b>' + the_statement + '</b></pre>')505            LOG.info('>>>' + the_statement)506            x.result = getValue(execute(n.expression, x));   507            //if (x.result)508            //global.debug.document.body.innerHTML += ( '<pre>>>> ' + x.result + '</pre>')509            510        break;511      case LABEL:512        try {513            execute(n.statement, x);514        } catch (e) {515            if (!(e == BREAK && x.target == n)) { throw e }516        }517        break;518      case COMMA:519        for (i = 0, j = n.$length; i < j; i++)520            v = getValue(execute(n[i], x));521        break;522      case ASSIGN:523        r = execute(n[0], x);524        t = n[0].assignOp;525        if (t)526            u = getValue(r);527        v = getValue(execute(n[1], x));528        if (t) {529            switch (t) {530              case BITWISE_OR:  v = u | v; break;531              case BITWISE_XOR: v = u ^ v; break;532              case BITWISE_AND: v = u & v; break;533              case LSH:         v = u << v; break;534              case RSH:         v = u >> v; break;535              case URSH:        v = u >>> v; break;536              case PLUS:        v = u + v; break;537              case MINUS:       v = u - v; break;538              case MUL:         v = u * v; break;539              case DIV:         v = u / v; break;540              case MOD:         v = u % v; break;541            }542        }543        putValue(r, v, n[0]);544        break;545      case CONDITIONAL:546        v = getValue(execute(n[0], x)) ? getValue(execute(n[1], x))547                                       : getValue(execute(n[2], x));548        break;549      case OR:550        v = getValue(execute(n[0], x)) || getValue(execute(n[1], x));551        break;552      case AND:553        v = getValue(execute(n[0], x)) && getValue(execute(n[1], x));554        break;555      case BITWISE_OR:556        v = getValue(execute(n[0], x)) | getValue(execute(n[1], x));557        break;558      case BITWISE_XOR:559        v = getValue(execute(n[0], x)) ^ getValue(execute(n[1], x));560        break;561      case BITWISE_AND:562        v = getValue(execute(n[0], x)) & getValue(execute(n[1], x));563        break;564      case EQ:565        v = getValue(execute(n[0], x)) == getValue(execute(n[1], x));566        break;567      case NE:568        v = getValue(execute(n[0], x)) != getValue(execute(n[1], x));569        break;570      case STRICT_EQ:571        v = getValue(execute(n[0], x)) === getValue(execute(n[1], x));572        break;573      case STRICT_NE:574        v = getValue(execute(n[0], x)) !== getValue(execute(n[1], x));575        break;576      case LT:577        v = getValue(execute(n[0], x)) < getValue(execute(n[1], x));578        break;579      case LE:580        v = getValue(execute(n[0], x)) <= getValue(execute(n[1], x));581        break;582      case GE:583        v = getValue(execute(n[0], x)) >= getValue(execute(n[1], x));584        break;585      case GT:586        v = getValue(execute(n[0], x)) > getValue(execute(n[1], x));587        break;588      case IN:589        v = getValue(execute(n[0], x)) in getValue(execute(n[1], x));590        break;591      case INSTANCEOF:592        t = getValue(execute(n[0], x));593        u = getValue(execute(n[1], x));594        if (isObject(u) && typeof u.__hasInstance__ == "function")595            v = u.__hasInstance__(t);596        else597            v = t instanceof u;598        break;599      case LSH:600        v = getValue(execute(n[0], x)) << getValue(execute(n[1], x));601        break;602      case RSH:603        v = getValue(execute(n[0], x)) >> getValue(execute(n[1], x));604        break;605      case URSH:606        v = getValue(execute(n[0], x)) >>> getValue(execute(n[1], x));607        break;608      case PLUS:609        v = getValue(execute(n[0], x)) + getValue(execute(n[1], x));610        break;611      case MINUS:612        v = getValue(execute(n[0], x)) - getValue(execute(n[1], x));613        break;614      case MUL:615        v = getValue(execute(n[0], x)) * getValue(execute(n[1], x));616        break;617      case DIV:618        v = getValue(execute(n[0], x)) / getValue(execute(n[1], x));619        break;620      case MOD:621        v = getValue(execute(n[0], x)) % getValue(execute(n[1], x));622        break;623      case DELETE:624        t = execute(n[0], x);625        v = !(t instanceof Reference) || delete t.base[t.propertyName];626        break;627      case VOID:628        getValue(execute(n[0], x));629        break;630      case TYPEOF:631        t = execute(n[0], x);632        if (t instanceof Reference)633            t = t.base ? t.base[t.propertyName] : undefined;634        v = typeof t;635        break;636      case NOT:637        v = !getValue(execute(n[0], x));638        break;639      case BITWISE_NOT:640        v = ~getValue(execute(n[0], x));641        break;642      case UNARY_PLUS:643        v = +getValue(execute(n[0], x));644        break;645      case UNARY_MINUS:646        v = -getValue(execute(n[0], x));647        break;648      case INCREMENT:649      case DECREMENT:650        t = execute(n[0], x);651        u = Number(getValue(t));652        if (n.postfix)653            v = u;654        putValue(t, (n.type == INCREMENT) ? ++u : --u, n[0]);655        if (!n.postfix)656            v = u;657        break;658      case DOT:659        r = execute(n[0], x);660        t = getValue(r);661        u = n[1].value;662        v = new Reference(toObject(t, r, n[0]), u, n);663        break;664      case INDEX:665        r = execute(n[0], x);666        t = getValue(r);667        u = getValue(execute(n[1], x));668        v = new Reference(toObject(t, r, n[0]), String(u), n);669        break;670      case LIST:671        // Curse ECMA for specifying that arguments is not an Array object!672        v = {};673        for (i = 0, j = n.$length; i < j; i++) {674            u = getValue(execute(n[i], x));675            v[i] = u;676        }677        v.length = i;678        break;679      case CALL:680        r = execute(n[0], x);681        a = execute(n[1], x);682        f = getValue(r);683        if (isPrimitive(f) || typeof f.__call__ != "function") {684            throw new TypeError(r + " is not callable",685                                n[0].filename(), n[0].lineno);686        }687        t = (r instanceof Reference) ? r.base : null;688        if (t instanceof Activation)689            t = null;690        v = f.__call__(t, a, x);691        break;692      case NEW:693      case NEW_WITH_ARGS:694        r = execute(n[0], x);695        f = getValue(r);696        if (n.type == NEW) {697            a = {};698            a.length = 0;699        } else {700            a = execute(n[1], x);701        }702        if (isPrimitive(f) || typeof f.__construct__ != "function") {703            throw new TypeError(r + " is not a constructor",704                                n[0].filename(), n[0].lineno);705        }706        v = f.__construct__(a, x);707        break;708      case ARRAY_INIT:709        v = [];710        for (i = 0, j = n.$length; i < j; i++) {711            if (n[i])712                v[i] = getValue(execute(n[i], x));713        }714        v.length = j;715        break;716      case OBJECT_INIT:717        v = {};718        for (i = 0, j = n.$length; i < j; i++) {719            t = n[i];720            if (t.type == PROPERTY_INIT) {721                v[t[0].value] = getValue(execute(t[1], x));722            } else {723                f = new FunctionObject(t, x.scope);724                /*725                u = (t.type == GETTER) ? '__defineGetter__'726                                       : '__defineSetter__';727                v[u](t.name, thunk(f, x));728                */729            }730        }731        break;732      case NULL:733        v = null;734        break;735      case THIS:...sharer.js
Source:sharer.js  
...63     * @description Main share event. Will pop a window or redirect to a link64     * based on the data-sharer attribute.65     */66        share: function () {67            var sharer = this.getValue('sharer').toLowerCase(),68                sharers = {69                    facebook: {70                        shareUrl: 'https://www.facebook.com/sharer/sharer.php',71                        params: {72                            u: this.getValue('url'),73                            hashtag: this.getValue('hashtag')74                        }75                    },76                    linkedin: {77                        shareUrl: 'https://www.linkedin.com/shareArticle',78                        params: {79                            url: this.getValue('url'),80                            mini: true81                        }82                    },83                    twitter: {84                        shareUrl: 'https://twitter.com/intent/tweet/',85                        params: {86                            text: this.getValue('title'),87                            url: this.getValue('url'),88                            hashtags: this.getValue('hashtags'),89                            via: this.getValue('via')90                        }91                    },92                    email: {93                        shareUrl: 'mailto:' + this.getValue('to') || '',94                        params: {95                            subject: this.getValue('subject'),96                            body: this.getValue('title') + '\n' + this.getValue('url')97                        },98                        isLink: true99                    },100                    whatsapp: {101                        shareUrl: this.getValue('web') !== null ? 'https://api.whatsapp.com/send' : 'whatsapp://send',102                        params: {103                            text: this.getValue('title') + ' ' + this.getValue('url')104                        },105                        isLink: true106                    },107                    telegram: {108                        shareUrl: this.getValue('web') !== null ? 'https://telegram.me/share' : 'tg://msg_url',109                        params: {110                            text: this.getValue('title'),111                            url: this.getValue('url'),112                            to: this.getValue('to')113                        },114                        isLink: true115                    },116                    viber: {117                        shareUrl: 'viber://forward',118                        params: {119                            text: this.getValue('title') + ' ' + this.getValue('url')120                        },121                        isLink: true122                    },123                    line: {124                        shareUrl:125                            'http://line.me/R/msg/text/?' + encodeURIComponent(this.getValue('title') + ' ' + this.getValue('url')),126                        isLink: true127                    },128                    pinterest: {129                        shareUrl: 'https://www.pinterest.com/pin/create/button/',130                        params: {131                            url: this.getValue('url'),132                            media: this.getValue('image'),133                            description: this.getValue('description')134                        }135                    },136                    tumblr: {137                        shareUrl: 'http://tumblr.com/widgets/share/tool',138                        params: {139                            canonicalUrl: this.getValue('url'),140                            content: this.getValue('url'),141                            posttype: 'link',142                            title: this.getValue('title'),143                            caption: this.getValue('caption'),144                            tags: this.getValue('tags')145                        }146                    },147                    hackernews: {148                        shareUrl: 'https://news.ycombinator.com/submitlink',149                        params: {150                            u: this.getValue('url'),151                            t: this.getValue('title')152                        }153                    },154                    reddit: {155                        shareUrl: 'https://www.reddit.com/submit',156                        params: { url: this.getValue('url') }157                    },158                    vk: {159                        shareUrl: 'http://vk.com/share.php',160                        params: {161                            url: this.getValue('url'),162                            title: this.getValue('title'),163                            description: this.getValue('caption'),164                            image: this.getValue('image')165                        }166                    },167                    xing: {168                        shareUrl: 'https://www.xing.com/app/user',169                        params: {170                            op: 'share',171                            url: this.getValue('url'),172                            title: this.getValue('title')173                        }174                    },175                    buffer: {176                        shareUrl: 'https://buffer.com/add',177                        params: {178                            url: this.getValue('url'),179                            title: this.getValue('title'),180                            via: this.getValue('via'),181                            picture: this.getValue('picture')182                        }183                    },184                    instapaper: {185                        shareUrl: 'http://www.instapaper.com/edit',186                        params: {187                            url: this.getValue('url'),188                            title: this.getValue('title'),189                            description: this.getValue('description')190                        }191                    },192                    pocket: {193                        shareUrl: 'https://getpocket.com/save',194                        params: {195                            url: this.getValue('url')196                        }197                    },198                    digg: {199                        shareUrl: 'http://www.digg.com/submit',200                        params: {201                            url: this.getValue('url')202                        }203                    },204                    stumbleupon: {205                        // Usage deprecated, leaving for backwards compatibility.206                        shareUrl: 'http://www.stumbleupon.com/submit',207                        params: {208                            url: this.getValue('url'),209                            title: this.getValue('title')210                        }211                    },212                    mashable: {213                        shareUrl: 'https://mashable.com/submit',214                        params: {215                            url: this.getValue('url'),216                            title: this.getValue('title')217                        }218                    },219                    mix: {220                        shareUrl: 'https://mix.com/add',221                        params: {222                            url: this.getValue('url')223                        }224                    },225                    flipboard: {226                        shareUrl: 'https://share.flipboard.com/bookmarklet/popout',227                        params: {228                            v: 2,229                            title: this.getValue('title'),230                            url: this.getValue('url'),231                            t: Date.now()232                        }233                    },234                    weibo: {235                        shareUrl: 'http://service.weibo.com/share/share.php',236                        params: {237                            url: this.getValue('url'),238                            title: this.getValue('title'),239                            pic: this.getValue('image'),240                            appkey: this.getValue('appkey'),241                            ralateUid: this.getValue('ralateuid'),242                            language: 'zh_cn'243                        }244                    },245                    renren: {246                        shareUrl: 'http://share.renren.com/share/buttonshare',247                        params: {248                            link: this.getValue('url')249                        }250                    },251                    myspace: {252                        shareUrl: 'https://myspace.com/post',253                        params: {254                            u: this.getValue('url'),255                            t: this.getValue('title'),256                            c: this.getValue('description')257                        }258                    },259                    blogger: {260                        shareUrl: 'https://www.blogger.com/blog-this.g',261                        params: {262                            u: this.getValue('url'),263                            n: this.getValue('title'),264                            t: this.getValue('description')265                        }266                    },267                    baidu: {268                        shareUrl: 'http://cang.baidu.com/do/add',269                        params: {270                            it: this.getValue('title'),271                            iu: this.getValue('url')272                        }273                    },274                    douban: {275                        shareUrl: 'https://www.douban.com/share/service',276                        params: {277                            name: this.getValue('title'),278                            href: this.getValue('url'),279                            image: this.getValue('image')280                        }281                    },282                    okru: {283                        shareUrl: 'https://connect.ok.ru/dk',284                        params: {285                            'st.cmd': 'WidgetSharePreview',286                            'st.shareUrl': this.getValue('url'),287                            title: this.getValue('title')288                        }289                    },290                    mailru: {291                        shareUrl: 'http://connect.mail.ru/share',292                        params: {293                            share_url: this.getValue('url'),294                            linkname: this.getValue('title'),295                            linknote: this.getValue('description'),296                            type: 'page'297                        }298                    },299                    evernote: {300                        shareUrl: 'http://www.evernote.com/clip.action',301                        params: {302                            url: this.getValue('url'),303                            title: this.getValue('title')304                        }305                    },306                    skype: {307                        shareUrl: 'https://web.skype.com/share',308                        params: {309                            url: this.getValue('url'),310                            title: this.getValue('title')311                        }312                    },313                    quora: {314                        shareUrl: 'https://www.quora.com/share',315                        params: {316                            url: this.getValue('url'),317                            title: this.getValue('title')318                        }319                    },320                    delicious: {321                        shareUrl: 'https://del.icio.us/post',322                        params: {323                            url: this.getValue('url'),324                            title: this.getValue('title')325                        }326                    },327                    sms: {328                        shareUrl: 'sms://',329                        params: {330                            body: this.getValue('body')331                        }332                    },333                    trello: {334                        shareUrl: 'https://trello.com/add-card',335                        params: {336                            url: this.getValue('url'),337                            name: this.getValue('title'),338                            desc: this.getValue('description'),339                            mode: 'popup'340                        }341                    },342                    messenger: {343                        shareUrl: 'fb-messenger://share',344                        params: {345                            link: this.getValue('url')346                        }347                    },348                    odnoklassniki: {349                        shareUrl: 'https://connect.ok.ru/dk',350                        params: {351                            st: {352                                cmd: 'WidgetSharePreview',353                                deprecated: 1,354                                shareUrl: this.getValue('url')355                            }356                        }357                    },358                    meneame: {359                        shareUrl: 'https://www.meneame.net/submit',360                        params: {361                            url: this.getValue('url')362                        }363                    },364                    diaspora: {365                        shareUrl: 'https://share.diasporafoundation.org',366                        params: {367                            title: this.getValue('title'),368                            url: this.getValue('url')369                        }370                    },371                    googlebookmarks: {372                        shareUrl: 'https://www.google.com/bookmarks/mark',373                        params: {374                            op: 'edit',375                            bkmk: this.getValue('url'),376                            title: this.getValue('title')377                        }378                    },379                    qzone: {380                        shareUrl: 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey',381                        params: {382                            url: this.getValue('url')383                        }384                    },385                    refind: {386                        shareUrl: 'https://refind.com',387                        params: {388                            url: this.getValue('url')389                        }390                    },391                    surfingbird: {392                        shareUrl: 'https://surfingbird.ru/share',393                        params: {394                            url: this.getValue('url'),395                            title: this.getValue('title'),396                            description: this.getValue('description')397                        }398                    },399                    yahoomail: {400                        shareUrl: 'http://compose.mail.yahoo.com',401                        params: {402                            to: this.getValue('to'),403                            subject: this.getValue('subject'),404                            body: this.getValue('body')405                        }406                    },407                    wordpress: {408                        shareUrl: 'https://wordpress.com/wp-admin/press-this.php',409                        params: {410                            u: this.getValue('url'),411                            t: this.getValue('title'),412                            s: this.getValue('title')413                        }414                    },415                    amazon: {416                        shareUrl: 'https://www.amazon.com/gp/wishlist/static-add',417                        params: {418                            u: this.getValue('url'),419                            t: this.getValue('title')420                        }421                    },422                    pinboard: {423                        shareUrl: 'https://pinboard.in/add',424                        params: {425                            url: this.getValue('url'),426                            title: this.getValue('title'),427                            description: this.getValue('description')428                        }429                    },430                    threema: {431                        shareUrl: 'threema://compose',432                        params: {433                            text: this.getValue('text'),434                            id: this.getValue('id')435                        }436                    },437                    kakaostory: {438                        shareUrl: 'https://story.kakao.com/share',439                        params: {440                            url: this.getValue('url')441                        }442                    }443                },444                s = sharers[sharer];445            // custom popups sizes446            if (s) {447                s.width = this.getValue('width');448                s.height = this.getValue('height');449            }450            return s !== undefined ? this.urlSharer(s) : false;451        },452        /**453     * @event urlSharer454     * @param {Object} sharer455     */456        urlSharer: function (sharer) {457            var p = sharer.params || {},458                keys = Object.keys(p),459                i,460                str = keys.length > 0 ? '?' : '';461            for (i = 0; i < keys.length; i++) {462                if (str !== '?') {...document_test.js
Source:document_test.js  
...49        var doc = new Document(["12", "34"]);50        var deltas = [];51        doc.on("change", function(e) { deltas.push(e.data); });52        doc.insert({row: 0, column: 1}, "juhu");53        assert.equal(doc.getValue(), ["1juhu2", "34"].join("\n"));54        var d = deltas.concat();55        doc.revertDeltas(d);56        assert.equal(doc.getValue(), ["12", "34"].join("\n"));57        doc.applyDeltas(d);58        assert.equal(doc.getValue(), ["1juhu2", "34"].join("\n"));59    },60    "test: insert new line" : function() {61        var doc = new Document(["12", "34"]);62        var deltas = [];63        doc.on("change", function(e) { deltas.push(e.data); });64        doc.insertNewLine({row: 0, column: 1});65        assert.equal(doc.getValue(), ["1", "2", "34"].join("\n"));66        var d = deltas.concat();67        doc.revertDeltas(d);68        assert.equal(doc.getValue(), ["12", "34"].join("\n"));69        doc.applyDeltas(d);70        assert.equal(doc.getValue(), ["1", "2", "34"].join("\n"));71    },72    "test: insert lines at the beginning" : function() {73        var doc = new Document(["12", "34"]);74        var deltas = [];75        doc.on("change", function(e) { deltas.push(e.data); });76        doc.insertLines(0, ["aa", "bb"]);77        assert.equal(doc.getValue(), ["aa", "bb", "12", "34"].join("\n"));78        var d = deltas.concat();79        doc.revertDeltas(d);80        assert.equal(doc.getValue(), ["12", "34"].join("\n"));81        doc.applyDeltas(d);82        assert.equal(doc.getValue(), ["aa", "bb", "12", "34"].join("\n"));83    },84    "test: insert lines at the end" : function() {85        var doc = new Document(["12", "34"]);86        var deltas = [];87        doc.on("change", function(e) { deltas.push(e.data); });88        doc.insertLines(2, ["aa", "bb"]);89        assert.equal(doc.getValue(), ["12", "34", "aa", "bb"].join("\n"));90    },91    "test: insert lines in the middle" : function() {92        var doc = new Document(["12", "34"]);93        var deltas = [];94        doc.on("change", function(e) { deltas.push(e.data); });95        doc.insertLines(1, ["aa", "bb"]);96        assert.equal(doc.getValue(), ["12", "aa", "bb", "34"].join("\n"));97        var d = deltas.concat();98        doc.revertDeltas(d);99        assert.equal(doc.getValue(), ["12", "34"].join("\n"));100        doc.applyDeltas(d);101        assert.equal(doc.getValue(), ["12", "aa", "bb", "34"].join("\n"));102    },103    "test: insert multi line string at the start" : function() {104        var doc = new Document(["12", "34"]);105        var deltas = [];106        doc.on("change", function(e) { deltas.push(e.data); });107        doc.insert({row: 0, column: 0}, "aa\nbb\ncc");108        assert.equal(doc.getValue(), ["aa", "bb", "cc12", "34"].join("\n"));109        var d = deltas.concat();110        doc.revertDeltas(d);111        assert.equal(doc.getValue(), ["12", "34"].join("\n"));112        doc.applyDeltas(d);113        assert.equal(doc.getValue(), ["aa", "bb", "cc12", "34"].join("\n"));114    },115    "test: insert multi line string at the end" : function() {116        var doc = new Document(["12", "34"]);117        var deltas = [];118        doc.on("change", function(e) { deltas.push(e.data); });119        doc.insert({row: 2, column: 0}, "aa\nbb\ncc");120        assert.equal(doc.getValue(), ["12", "34aa", "bb", "cc"].join("\n"));121        var d = deltas.concat();122        doc.revertDeltas(d);123        assert.equal(doc.getValue(), ["12", "34"].join("\n"));124        doc.applyDeltas(d);125        assert.equal(doc.getValue(), ["12", "34aa", "bb", "cc"].join("\n"));126    },127    "test: insert multi line string in the middle" : function() {128        var doc = new Document(["12", "34"]);129        var deltas = [];130        doc.on("change", function(e) { deltas.push(e.data); });131        doc.insert({row: 0, column: 1}, "aa\nbb\ncc");132        assert.equal(doc.getValue(), ["1aa", "bb", "cc2", "34"].join("\n"));133        var d = deltas.concat();134        doc.revertDeltas(d);135        assert.equal(doc.getValue(), ["12", "34"].join("\n"));136        doc.applyDeltas(d);137        assert.equal(doc.getValue(), ["1aa", "bb", "cc2", "34"].join("\n"));138    },139    "test: delete in line" : function() {140        var doc = new Document(["1234", "5678"]);141        var deltas = [];142        doc.on("change", function(e) { deltas.push(e.data); });143        doc.remove(new Range(0, 1, 0, 3));144        assert.equal(doc.getValue(), ["14", "5678"].join("\n"));145        var d = deltas.concat();146        doc.revertDeltas(d);147        assert.equal(doc.getValue(), ["1234", "5678"].join("\n"));148        doc.applyDeltas(d);149        assert.equal(doc.getValue(), ["14", "5678"].join("\n"));150    },151    "test: delete new line" : function() {152        var doc = new Document(["1234", "5678"]);153        var deltas = [];154        doc.on("change", function(e) { deltas.push(e.data); });155        doc.remove(new Range(0, 4, 1, 0));156        assert.equal(doc.getValue(), ["12345678"].join("\n"));157        var d = deltas.concat();158        doc.revertDeltas(d);159        assert.equal(doc.getValue(), ["1234", "5678"].join("\n"));160        doc.applyDeltas(d);161        assert.equal(doc.getValue(), ["12345678"].join("\n"));162    },163    "test: delete multi line range line" : function() {164        var doc = new Document(["1234", "5678", "abcd"]);165        var deltas = [];166        doc.on("change", function(e) { deltas.push(e.data); });167        doc.remove(new Range(0, 2, 2, 2));168        assert.equal(doc.getValue(), ["12cd"].join("\n"));169        var d = deltas.concat();170        doc.revertDeltas(d);171        assert.equal(doc.getValue(), ["1234", "5678", "abcd"].join("\n"));172        doc.applyDeltas(d);173        assert.equal(doc.getValue(), ["12cd"].join("\n"));174    },175    "test: delete full lines" : function() {176        var doc = new Document(["1234", "5678", "abcd"]);177        var deltas = [];178        doc.on("change", function(e) { deltas.push(e.data); });179        doc.remove(new Range(1, 0, 3, 0));180        assert.equal(doc.getValue(), ["1234", ""].join("\n"));181    },182    "test: remove lines should return the removed lines" : function() {183        var doc = new Document(["1234", "5678", "abcd"]);184        var removed = doc.removeLines(1, 2);185        assert.equal(removed.join("\n"), ["5678", "abcd"].join("\n"));186    },187    "test: should handle unix style new lines" : function() {188        var doc = new Document(["1", "2", "3"]);189        assert.equal(doc.getValue(), ["1", "2", "3"].join("\n"));190    },191    "test: should handle windows style new lines" : function() {192        var doc = new Document(["1", "2", "3"].join("\r\n"));193        doc.setNewLineMode("unix");194        assert.equal(doc.getValue(), ["1", "2", "3"].join("\n"));195    },196    "test: set new line mode to 'windows' should use '\\r\\n' as new lines": function() {197        var doc = new Document(["1", "2", "3"].join("\n"));198        doc.setNewLineMode("windows");199        assert.equal(doc.getValue(), ["1", "2", "3"].join("\r\n"));200    },201    "test: set new line mode to 'unix' should use '\\n' as new lines": function() {202        var doc = new Document(["1", "2", "3"].join("\r\n"));203        doc.setNewLineMode("unix");204        assert.equal(doc.getValue(), ["1", "2", "3"].join("\n"));205    },206    "test: set new line mode to 'auto' should detect the incoming nl type": function() {207        var doc = new Document(["1", "2", "3"].join("\n"));208        doc.setNewLineMode("auto");209        assert.equal(doc.getValue(), ["1", "2", "3"].join("\n"));210        var doc = new Document(["1", "2", "3"].join("\r\n"));211        doc.setNewLineMode("auto");212        assert.equal(doc.getValue(), ["1", "2", "3"].join("\r\n"));213        doc.replace(new Range(0, 0, 2, 1), ["4", "5", "6"].join("\n"));214        assert.equal(["4", "5", "6"].join("\n"), doc.getValue());215    },216    "test: set value": function() {217        var doc = new Document("1");218        assert.equal("1", doc.getValue());219        doc.setValue(doc.getValue());220        assert.equal("1", doc.getValue());221        var doc = new Document("1\n2");222        assert.equal("1\n2", doc.getValue());223        doc.setValue(doc.getValue());224        assert.equal("1\n2", doc.getValue());225    },226    "test: empty document has to contain one line": function() {227        var doc = new Document("");228        assert.equal(doc.$lines.length, 1);229    }230};231});232if (typeof module !== "undefined" && module === require.main) {233    require("asyncjs").test.testcase(module.exports).exec()...Current.js
Source:Current.js  
...16    constructor(obj) {17        super(obj);18        if (obj === undefined || obj === null) return;19        this.lastUpdatedEpoch =20          this.constructor.getValue(obj.lastUpdatedEpoch21     || obj.last_updated_epoch);22        this.lastUpdated = this.constructor.getValue(obj.lastUpdated || obj.last_updated);23        this.tempC = this.constructor.getValue(obj.tempC || obj.temp_c);24        this.tempF = this.constructor.getValue(obj.tempF || obj.temp_f);25        this.isDay = this.constructor.getValue(obj.isDay || obj.is_day);26        this.condition = this.constructor.getValue(obj.condition);27        this.windMph = this.constructor.getValue(obj.windMph || obj.wind_mph);28        this.windKph = this.constructor.getValue(obj.windKph || obj.wind_kph);29        this.windDegree = this.constructor.getValue(obj.windDegree || obj.wind_degree);30        this.windDir = this.constructor.getValue(obj.windDir || obj.wind_dir);31        this.pressureMb = this.constructor.getValue(obj.pressureMb || obj.pressure_mb);32        this.pressureIn = this.constructor.getValue(obj.pressureIn || obj.pressure_in);33        this.precipMm = this.constructor.getValue(obj.precipMm || obj.precip_mm);34        this.precipIn = this.constructor.getValue(obj.precipIn || obj.precip_in);35        this.humidity = this.constructor.getValue(obj.humidity);36        this.cloud = this.constructor.getValue(obj.cloud);37        this.feelslikeC = this.constructor.getValue(obj.feelslikeC || obj.feelslike_c);38        this.feelslikeF = this.constructor.getValue(obj.feelslikeF || obj.feelslike_f);39        this.visKm = this.constructor.getValue(obj.visKm || obj.vis_km);40        this.visMiles = this.constructor.getValue(obj.visMiles || obj.vis_miles);41        this.uv = this.constructor.getValue(obj.uv);42        this.gustMph = this.constructor.getValue(obj.gustMph || obj.gust_mph);43        this.gustKph = this.constructor.getValue(obj.gustKph || obj.gust_kph);44    }45    /**46     * Function containing information about the fields of this model47     * @return   {array}   Array of objects containing information about the fields48     */49    static mappingInfo() {50        return super.mappingInfo().concat([51            { name: 'lastUpdatedEpoch', realName: 'last_updated_epoch' },52            { name: 'lastUpdated', realName: 'last_updated' },53            { name: 'tempC', realName: 'temp_c' },54            { name: 'tempF', realName: 'temp_f' },55            { name: 'isDay', realName: 'is_day' },56            { name: 'condition', realName: 'condition', type: 'Condition' },57            { name: 'windMph', realName: 'wind_mph' },...Hour.js
Source:Hour.js  
...15     */16    constructor(obj) {17        super(obj);18        if (obj === undefined || obj === null) return;19        this.timeEpoch = this.constructor.getValue(obj.timeEpoch || obj.time_epoch);20        this.time = this.constructor.getValue(obj.time);21        this.tempC = this.constructor.getValue(obj.tempC || obj.temp_c);22        this.tempF = this.constructor.getValue(obj.tempF || obj.temp_f);23        this.isDay = this.constructor.getValue(obj.isDay || obj.is_day);24        this.condition = this.constructor.getValue(obj.condition);25        this.windMph = this.constructor.getValue(obj.windMph || obj.wind_mph);26        this.windKph = this.constructor.getValue(obj.windKph || obj.wind_kph);27        this.windDegree = this.constructor.getValue(obj.windDegree || obj.wind_degree);28        this.windDir = this.constructor.getValue(obj.windDir || obj.wind_dir);29        this.pressureMb = this.constructor.getValue(obj.pressureMb || obj.pressure_mb);30        this.pressureIn = this.constructor.getValue(obj.pressureIn || obj.pressure_in);31        this.precipMm = this.constructor.getValue(obj.precipMm || obj.precip_mm);32        this.precipIn = this.constructor.getValue(obj.precipIn || obj.precip_in);33        this.humidity = this.constructor.getValue(obj.humidity);34        this.cloud = this.constructor.getValue(obj.cloud);35        this.feelslikeC = this.constructor.getValue(obj.feelslikeC || obj.feelslike_c);36        this.feelslikeF = this.constructor.getValue(obj.feelslikeF || obj.feelslike_f);37        this.visKm = this.constructor.getValue(obj.visKm || obj.vis_km);38        this.visMiles = this.constructor.getValue(obj.visMiles || obj.vis_miles);39        this.uv = this.constructor.getValue(obj.uv);40        this.gustMph = this.constructor.getValue(obj.gustMph || obj.gust_mph);41        this.gustKph = this.constructor.getValue(obj.gustKph || obj.gust_kph);42    }43    /**44     * Function containing information about the fields of this model45     * @return   {array}   Array of objects containing information about the fields46     */47    static mappingInfo() {48        return super.mappingInfo().concat([49            { name: 'timeEpoch', realName: 'time_epoch' },50            { name: 'time', realName: 'time' },51            { name: 'tempC', realName: 'temp_c' },52            { name: 'tempF', realName: 'temp_f' },53            { name: 'isDay', realName: 'is_day' },54            { name: 'condition', realName: 'condition', type: 'Condition' },55            { name: 'windMph', realName: 'wind_mph' },...Day.js
Source:Day.js  
...15     */16    constructor(obj) {17        super(obj);18        if (obj === undefined || obj === null) return;19        this.maxtempC = this.constructor.getValue(obj.maxtempC || obj.maxtemp_c);20        this.maxtempF = this.constructor.getValue(obj.maxtempF || obj.maxtemp_f);21        this.mintempC = this.constructor.getValue(obj.mintempC || obj.mintemp_c);22        this.mintempF = this.constructor.getValue(obj.mintempF || obj.mintemp_f);23        this.avgtempC = this.constructor.getValue(obj.avgtempC || obj.avgtemp_c);24        this.avgtempF = this.constructor.getValue(obj.avgtempF || obj.avgtemp_f);25        this.maxwindMph = this.constructor.getValue(obj.maxwindMph || obj.maxwind_mph);26        this.maxwindKph = this.constructor.getValue(obj.maxwindKph || obj.maxwind_kph);27        this.totalprecipMm = this.constructor.getValue(obj.totalprecipMm || obj.totalprecip_mm);28        this.totalprecipIn = this.constructor.getValue(obj.totalprecipIn || obj.totalprecip_in);29        this.avgvisKm = this.constructor.getValue(obj.avgvisKm || obj.avgvis_km);30        this.avgvisMiles = this.constructor.getValue(obj.avgvisMiles || obj.avgvis_miles);31        this.avghumidity = this.constructor.getValue(obj.avghumidity);32        this.condition = this.constructor.getValue(obj.condition);33        this.uv = this.constructor.getValue(obj.uv);34    }35    /**36     * Function containing information about the fields of this model37     * @return   {array}   Array of objects containing information about the fields38     */39    static mappingInfo() {40        return super.mappingInfo().concat([41            { name: 'maxtempC', realName: 'maxtemp_c' },42            { name: 'maxtempF', realName: 'maxtemp_f' },43            { name: 'mintempC', realName: 'mintemp_c' },44            { name: 'mintempF', realName: 'mintemp_f' },45            { name: 'avgtempC', realName: 'avgtemp_c' },46            { name: 'avgtempF', realName: 'avgtemp_f' },47            { name: 'maxwindMph', realName: 'maxwind_mph' },...IpJsonResponse.js
Source:IpJsonResponse.js  
...15     */16    constructor(obj) {17        super(obj);18        if (obj === undefined || obj === null) return;19        this.ip = this.constructor.getValue(obj.ip);20        this.type = this.constructor.getValue(obj.type);21        this.continentCode = this.constructor.getValue(obj.continentCode || obj.continent_code);22        this.continentName = this.constructor.getValue(obj.continentName || obj.continent_name);23        this.countryCode = this.constructor.getValue(obj.countryCode || obj.country_code);24        this.countryName = this.constructor.getValue(obj.countryName || obj.country_name);25        this.isEu = this.constructor.getValue(obj.isEu || obj.is_eu);26        this.geonameId = this.constructor.getValue(obj.geonameId || obj.geoname_id);27        this.city = this.constructor.getValue(obj.city);28        this.region = this.constructor.getValue(obj.region);29        this.lat = this.constructor.getValue(obj.lat);30        this.lon = this.constructor.getValue(obj.lon);31        this.tzId = this.constructor.getValue(obj.tzId || obj.tz_id);32        this.localtimeEpoch = this.constructor.getValue(obj.localtimeEpoch || obj.localtime_epoch);33        this.localtime = this.constructor.getValue(obj.localtime);34    }35    /**36     * Function containing information about the fields of this model37     * @return   {array}   Array of objects containing information about the fields38     */39    static mappingInfo() {40        return super.mappingInfo().concat([41            { name: 'ip', realName: 'ip' },42            { name: 'type', realName: 'type' },43            { name: 'continentCode', realName: 'continent_code' },44            { name: 'continentName', realName: 'continent_name' },45            { name: 'countryCode', realName: 'country_code' },46            { name: 'countryName', realName: 'country_name' },47            { name: 'isEu', realName: 'is_eu' },...legend.js
Source:legend.js  
...6        { value: 3, color: "#ffff01", label: { text: "Average" } },7        { value: 6, color: "#13ab11", label: { text: "Good" } },8        { value: 10, color: "#005ba2", label: { text: "Excellent" } }9    ];10    function getValue() {11        return Math.floor((Math.random() * 10) + 1);12    }13    var rows = ["Peter Scott", "Maria Anders", "John Camino", "Philips Cramer", "Robert King", "Simon Crowther", ];14    var itemsSource = [];15    for (var i = 0; i < rows.length; i++) {16        itemsSource.push({17            EmpName: rows[i],18            Jan: getValue(), Feb: getValue(), Mar: getValue(), Apr: getValue(), May: getValue(), Jun: getValue(),19            Jul: getValue(), Aug: getValue(), Sep: getValue(), Oct: getValue(), Nov: getValue(), Dec: getValue(),20        });21    }22    return{23        colorMappingCollection : colorMappingCollection,24        itemSource : itemsSource,25        itemsMapping: {26            headerMapping: { "propertyName": "EmpName", "displayName": "Employee Name", columnStyle: { width: 110, textAlign: "right" } },27            columnMapping: [28            { "propertyName": "Jan", "displayName": "Jan" },29            { "propertyName": "Feb", "displayName": "Feb" },30            { "propertyName": "Mar", "displayName": "Mar" },31            { "propertyName": "Apr", "displayName": "Apr" },32            { "propertyName": "May", "displayName": "May" },33            { "propertyName": "Jun", "displayName": "Jun" },...Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch();4  const context = await browser.newContext();5  const page = await context.newPage();6  await page.fill('#tsf > div:nth-child(2) > div > div.RNNXgb > div > div.a4bIc > input', 'Playwright');7  await page.click('#tsf > div:nth-child(2) > div > div.FPdoLc.VlcLAe > center > input[type="submit"]:nth-child(1)');8  const value = await page.$eval('#result-stats', (el) => el.textContent);9  console.log(value);10  await browser.close();11})();12About 4,230,000,000 results (0.70 seconds)Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch({ headless: false });4  const page = await browser.newPage();5  await page.click('text=Docs');6  await page.click('text=API');7  await page.click('text=class: Page');8  await page.click('text=method: click');9  await page.screenshot({ path: `click.png` });10  await browser.close();11})();Using AI Code Generation
1const { getValue } = require('@playwright/test/lib/server/frames');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  const frame = page.mainFrame();8  const value = await getValue(frame, 'document.location.href');9  console.log(value);10  await browser.close();11})();Using AI Code Generation
1const { getValue } = require('playwright/lib/internal/evaluators/JavaScriptEvaluators');2const result = await getValue(page, 'window.location.href');3console.log(result);4const { setValue } = require('playwright/lib/internal/evaluators/JavaScriptEvaluators');5console.log(page.url());6const { runScript } = require('playwright/lib/internal/evaluators/JavaScriptEvaluators');7const result = await runScript(page, 'window.location.href');8console.log(result);9const { runScript } = require('playwright/lib/internal/evaluators/JavaScriptEvaluators');10const result = await runScript(page, 'window.location.href');11console.log(result);12const { runScript } = require('playwright/lib/internal/evaluators/JavaScriptEvaluators');13const result = await runScript(page, 'window.location.href');14console.log(result);15const { runScript } = require('playwright/lib/internal/evaluators/JavaScriptEvaluators');16const result = await runScript(page, 'window.location.href');17console.log(result);18const { runScript } = require('playwright/lib/internal/evaluators/JavaScriptEvaluators');19const result = await runScript(page, 'window.location.href');20console.log(result);21const { runScript } = require('playwright/lib/internal/evaluators/JavaScriptEvaluators');LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
