Best Python code snippet using lisa_python
initializable.js
Source:initializable.js  
1import _chai from 'isotropic-dev-dependencies/lib/chai.js';2import _domain from 'domain'; // eslint-disable-line isotropic/node/no-deprecated-api -- TODO: Find a way to implement this test without a domain.3import _Error from 'isotropic-error';4import _Initializable from '../js/initializable.js';5import _later from 'isotropic-later';6import _make from 'isotropic-make';7import _mocha from 'isotropic-dev-dependencies/lib/mocha.js';8_mocha.describe('_Initializable', function () {9    this.timeout(377);10    _mocha.it('should construct initializable objects', () => {11        _chai.expect(_Initializable).to.be.a('function');12        const initializable = new _Initializable();13        _chai.expect(initializable).to.be.an.instanceOf(_Initializable);14        _chai.expect(initializable).to.have.property('initialized', true);15        initializable.destroy();16        _chai.expect(initializable.initialized).to.be.undefined;17    });18    _mocha.it('should be an initializable object factory', () => {19        _chai.expect(_Initializable).to.be.a('function');20        const initializable = _Initializable();21        _chai.expect(initializable).to.be.an.instanceOf(_Initializable);22        _chai.expect(initializable).to.have.property('initialized', true);23        initializable.destroy();24        _chai.expect(initializable.initialized).to.be.undefined;25    });26    _mocha.it('should pass initialization arguments', () => {27        let initializeExecuted = false;28        const CustomInitializable = _make(_Initializable, {29            _initialize (...args) {30                _chai.expect(args).to.deep.equal([31                    'a',32                    'b',33                    'c'34                ]);35                initializeExecuted = true;36            }37        });38        CustomInitializable('a', 'b', 'c');39        _chai.expect(initializeExecuted).to.be.true;40    });41    _mocha.it('should allow construction without initialization', () => {42        const initializable = _Initializable({43            initialize: false44        });45        _chai.expect(initializable).to.have.property('initialized', false);46        initializable.destroy('never initialized');47        _chai.expect(initializable.initialized).to.be.undefined;48    });49    _mocha.it('should allow observation of initialization', () => {50        const initializable = _Initializable({51                initialize: false52            }),53            subscriptionsExecuted = [];54        _chai.expect(initializable).to.have.property('initialized', false);55        initializable._initialize = function (...args) {56            _chai.expect(args).to.deep.equal([57                'a',58                'b',59                'c'60            ]);61            subscriptionsExecuted.push('defaultInitialize');62        };63        initializable._initializeComplete = function (...args) {64            _chai.expect(args).to.deep.equal([65                'a',66                'b',67                'c'68            ]);69            subscriptionsExecuted.push('defaultInitializeComplete');70            Reflect.apply(_Initializable.prototype._initializeComplete, this, args);71        };72        initializable.after('initialize', () => {73            _chai.expect(initializable).to.have.property('initialized', true);74            subscriptionsExecuted.push('afterInitialize');75        });76        initializable.on('initialize', () => {77            _chai.expect(initializable).to.have.property('initialized', false);78            subscriptionsExecuted.push('onInitialize');79        });80        initializable.on('initializeComplete', () => {81            _chai.expect(initializable).to.have.property('initialized', true);82            subscriptionsExecuted.push('onInitializeComplete');83        });84        initializable.initialize('a', 'b', 'c');85        _chai.expect(initializable).to.have.property('initialized', true);86        _chai.expect(subscriptionsExecuted).to.deep.equal([87            'onInitialize',88            'defaultInitialize',89            'onInitializeComplete',90            'defaultInitializeComplete',91            'afterInitialize'92        ]);93    });94    _mocha.it('should call every inherited _initialize method', () => {95        let z;96        const initializeExecuted = [],97            A = _make({98                _initialize () {99                    _chai.expect(this).to.equal(z);100                    initializeExecuted.push('A');101                }102            }),103            B = _make({104                _initialize () {105                    _chai.expect(this).to.equal(z);106                    initializeExecuted.push('B');107                }108            }),109            C = _make({110                _initialize () {111                    _chai.expect(this).to.equal(z);112                    initializeExecuted.push('C');113                }114            }),115            X = _make(_Initializable, [116                A117            ], {118                _initialize () {119                    _chai.expect(this).to.equal(z);120                    initializeExecuted.push('X');121                }122            }),123            Y = _make(X, [124                B125            ], {126                _initialize () {127                    _chai.expect(this).to.equal(z);128                    initializeExecuted.push('Y');129                }130            }),131            Z = _make(Y, [132                C133            ], {134                _initialize () {135                    _chai.expect(this).to.equal(z);136                    initializeExecuted.push('Z');137                }138            });139        z = Z({140            initialize: false141        });142        z._initialize = () => {143            initializeExecuted.push('z');144        };145        z.initialize();146        _chai.expect(initializeExecuted).to.deep.equal([147            'A',148            'X',149            'B',150            'Y',151            'C',152            'Z',153            'z'154        ]);155    });156    _mocha.it('should initialize mixins in definition order', () => {157        let e;158        const initializeExecuted = [],159            A = _make({160                _initialize () {161                    _chai.expect(this).to.equal(e);162                    initializeExecuted.push('A');163                }164            }),165            B = _make({166                _initialize () {167                    _chai.expect(this).to.equal(e);168                    initializeExecuted.push('B');169                }170            }),171            C = _make({172                _initialize () {173                    _chai.expect(this).to.equal(e);174                    initializeExecuted.push('C');175                }176            }),177            D = _make({178                _initialize () {179                    _chai.expect(this).to.equal(e);180                    initializeExecuted.push('D');181                }182            }),183            E = _make(_Initializable, [184                A,185                B,186                C,187                D188            ], {189                _initialize () {190                    _chai.expect(this).to.equal(e);191                    initializeExecuted.push('E');192                }193            });194        e = E({195            initialize: false196        });197        e._initialize = () => {198            initializeExecuted.push('e');199        };200        e.initialize();201        _chai.expect(initializeExecuted).to.deep.equal([202            'A',203            'B',204            'C',205            'D',206            'E',207            'e'208        ]);209    });210    _mocha.it('should not call inherited _initialize methods on _doNotInitialize objects', () => {211        const initializeExecuted = [],212            A = _make({213                _initialize () {214                    initializeExecuted.push('A');215                }216            }),217            B = _make({218                _initialize () {219                    initializeExecuted.push('B');220                }221            }),222            C = _make({223                _initialize () {224                    initializeExecuted.push('C');225                }226            }),227            X = _make(_Initializable, [228                A229            ], {230                _doNotInitialize: A,231                _initialize () {232                    initializeExecuted.push('X');233                }234            }),235            Y = _make(X, [236                B237            ], {238                _initialize () {239                    initializeExecuted.push('Y');240                }241            }),242            Z = _make(Y, [243                C244            ], {245                _doNotInitialize: B,246                _initialize () {247                    initializeExecuted.push('Z');248                }249            }),250            z = Z({251                initialize: false252            });253        z._doNotInitialize = z;254        z._initialize = () => {255            initializeExecuted.push('z');256        };257        z.initialize();258        _chai.expect(initializeExecuted).to.deep.equal([259            'X',260            'Y',261            'C',262            'Z'263        ]);264    });265    _mocha.it('should not call inherited _initialize methods on objects in a _doNotInitialize array', () => {266        const initializeExecuted = [],267            A = _make({268                _initialize () {269                    initializeExecuted.push('A');270                }271            }),272            B = _make({273                _initialize () {274                    initializeExecuted.push('B');275                }276            }),277            C = _make({278                _initialize () {279                    initializeExecuted.push('C');280                }281            }),282            X = _make(_Initializable, [283                A284            ], {285                _doNotInitialize: [286                    A287                ],288                _initialize () {289                    initializeExecuted.push('X');290                }291            }),292            Y = _make(X, [293                B294            ], {295                _initialize () {296                    initializeExecuted.push('Y');297                }298            }),299            Z = _make(Y, [300                C301            ], {302                _doNotInitialize: [303                    B,304                    C305                ],306                _initialize () {307                    initializeExecuted.push('Z');308                }309            }),310            z = Z({311                initialize: false312            });313        z._doNotInitialize = [314            z315        ];316        z._initialize = () => {317            initializeExecuted.push('z');318        };319        z.initialize();320        _chai.expect(initializeExecuted).to.deep.equal([321            'X',322            'Y',323            'Z'324        ]);325    });326    _mocha.it('should not call inherited _initialize methods on objects in a _doNotInitialize set', () => {327        const initializeExecuted = [],328            A = _make({329                _initialize () {330                    initializeExecuted.push('A');331                }332            }),333            B = _make({334                _initialize () {335                    initializeExecuted.push('B');336                }337            }),338            C = _make({339                _initialize () {340                    initializeExecuted.push('C');341                }342            }),343            X = _make(_Initializable, [344                A345            ], {346                _doNotInitialize: new Set([347                    A348                ]),349                _initialize () {350                    initializeExecuted.push('X');351                }352            }),353            Y = _make(X, [354                B355            ], {356                _initialize () {357                    initializeExecuted.push('Y');358                }359            }),360            Z = _make(Y, [361                C362            ], {363                _doNotInitialize: new Set([364                    B,365                    C366                ]),367                _initialize () {368                    initializeExecuted.push('Z');369                }370            }),371            z = Z({372                initialize: false373            });374        z._doNotInitialize = new Set([375            z376        ]);377        z._initialize = () => {378            initializeExecuted.push('z');379        };380        z.initialize();381        _chai.expect(initializeExecuted).to.deep.equal([382            'X',383            'Y',384            'Z'385        ]);386    });387    _mocha.it('should await async inherited _initialize methods', callbackFunction => {388        const initializeExecuted = [],389            A = _make({390                async _initialize () {391                    await new Promise(resolve => {392                        _later(34, resolve);393                    });394                    initializeExecuted.push('A');395                }396            }),397            B = _make({398                async _initialize () {399                    await new Promise(resolve => {400                        _later(21, resolve);401                    });402                    initializeExecuted.push('B');403                }404            }),405            C = _make({406                async _initialize () {407                    await new Promise(resolve => {408                        _later(13, resolve);409                    });410                    initializeExecuted.push('C');411                }412            }),413            X = _make(_Initializable, [414                A415            ], {416                _initialize () {417                    initializeExecuted.push('X');418                }419            }),420            Y = _make(X, [421                B422            ], {423                _initialize () {424                    initializeExecuted.push('Y');425                }426            }),427            Z = _make(Y, [428                C429            ], {430                _initialize () {431                    initializeExecuted.push('Z');432                }433            }),434            z = Z({435                initialize: false436            });437        z._initialize = async () => {438            initializeExecuted.push('z');439            await new Promise(resolve => {440                _later(2, resolve);441            });442        };443        z.on('initializeComplete', () => {444            _chai.expect(initializeExecuted).to.deep.equal([445                'A',446                'X',447                'B',448                'Y',449                'C',450                'Z',451                'z'452            ]);453            callbackFunction();454        });455        z.initialize();456    });457    _mocha.it('should handle initialization errors', callbackFunction => {458        let capturedError,459            subscriptionExecuted = false;460        const CustomInitializable = _make(_Initializable, {461                _initialize () {462                    throw _Error({463                        name: 'CustomInitializationError'464                    });465                }466            }),467            customInitializable = CustomInitializable(),468            domain = _domain.create();469        _chai.expect(customInitializable).to.have.property('initialized', false);470        customInitializable.on('initializeError', ({471            data: {472                error473            }474        }) => {475            _chai.expect(error).to.be.an.instanceOf(_Error);476            _chai.expect(error).to.have.property('name', 'CustomInitializationError');477            subscriptionExecuted = true;478            domain.enter();479        });480        domain.on('error', error => {481            capturedError = error;482            domain.exit();483        });484        _later(55, () => {485            _chai.expect(subscriptionExecuted).to.be.true;486            _chai.expect(capturedError).to.have.property('name', 'CustomInitializationError');487            callbackFunction();488        });489    });490    _mocha.it('should work with mixins', () => {491        const methodsExecuted = [],492            A = _make([493                _Initializable494            ], {495                _init (...args) {496                    return Reflect.apply(_Initializable.prototype._init, this, args);497                },498                _initialize () {499                    methodsExecuted.push('a');500                }501            }),502            B = _make([503                A504            ], {505                _init (...args) {506                    return Reflect.apply(_Initializable.prototype._init, this, args);507                }508            }),509            C = _make([510                B511            ], {512                _init (...args) {513                    return Reflect.apply(_Initializable.prototype._init, this, args);514                },515                _initialize () {516                    methodsExecuted.push('c');517                }518            }),519            c = C();520        _chai.expect(c).not.to.be.an.instanceOf(_Initializable);521        _chai.expect(c).to.have.property('initialized', true);522        _chai.expect(methodsExecuted).to.deep.equal([523            'a',524            'c'525        ]);526        c.destroy();527        _chai.expect(c.initialized).to.be.undefined;528    });...game.py
Source:game.py  
...47            globalEventBus.subscribe(EventHeartBeat, sendReward)48            if inits :49                for pkg in inits :50                    ftlog.info('init center logic of ->', pkg)51                    exec 'from %s import _initialize; _initialize(1)' % (pkg)52            53            hallnewnotify._initialize()54            globalEventBus.subscribe(EventHeartBeat, hallnewnotify.onEventHeartBeat)55            from hall.entity import hallsportlottery56            hallsportlottery._initialize()57            globalEventBus.subscribe(EventHeartBeat, hallsportlottery.onEventHeartBeat)58        from hall.entity.usercoupon import user_coupon_details59        user_coupon_details._initialize()60        if serverType == gdata.SRV_TYPE_UTIL :61            from hall.servers.util.account_handler import updateOnLineInfos62            globalEventBus.subscribe(EventHeartBeat, updateOnLineInfos)63            #å
å¼åè°64            TGHall.getEventBus().subscribe(ChargeNotifyEvent, self._ChargeNotifyEvent)65            # å¨çº¿ä¿¡æ¯åå§å, ONLIEå¤çå¿
é¡»å¨UTILæå¡66            from hall.entity import hallonline67            hallonline._initialize()68            hallnewnotify._initialize()69            globalEventBus.subscribe(EventHeartBeat, hallnewnotify.onEventHeartBeat)70        if serverType == gdata.SRV_TYPE_TABLE or  serverType == gdata.SRV_TYPE_ROOM :71            from hall.servers.room.room import reportRoomOnlineInfos72            globalEventBus.subscribe(EventHeartBeat, reportRoomOnlineInfos)73            from hall.entity import hallchatlog74            hallchatlog._initialize()75        # 注æ: å个模åé´æå
ååå§åç顺åº76        from hall.entity import hallitem, hallstore, hallvip, hallbenefits, \77            hallranking, hallshare, hallpromote, hallfree, hallgamelist, hallgamelist2, \78            halldailycheckin, hallmenulist, hallcoupon, hallmoduletip, \79            hallrename, hallads, hallflipcardluck, hallpopwnd, hallstartchip, \80            fivestarrate, match360kp, neituiguang, hallstocklimit, \81            hall_first_recharge, hallroulette, hallled, hall_exit_remind, hall_share2, \82            hall_yyb_gifts, hall_short_url, hall_red_packet_rain, hall_invite83        from hall.entity.hallactivity import activity84        from hall.entity.halltmpact import tmp_activity85        from hall.entity.hall_red_envelope import hall_red_envelope86        from hall.entity import hall_share387        # éå
·åå§å88        hallitem._initialize()89        # éè´åå§å90        hallstocklimit._initialize()91        # åååå§å92        hallstore._initialize()93        # VIPç³»ç»åå§å94        hallvip._initialize()95        # ææµéç³»ç»åå§å96        hallbenefits._initialize()97        # ç¨æ·åå§åºéåå§å98        hallstartchip._initialize()99        halldailycheckin._initialize()100        # æè¡æ¦101        hallranking._initialize(0)102        # æ´»å¨ç³»ç»åå§å103        activity._initialize()104        hallcoupon._initialize()105        hallshare._initialize()106        hallgamelist._initialize()107        hallgamelist2._initialize()108        hallmenulist._initialize()109        hallrename._initialize()110        hallmoduletip._initialize()111        hallads._initialize()112        hallflipcardluck._initialize()113        hallpopwnd._initialize()114        hallpromote._initialize()115        hallfree._initialize()116        fivestarrate._initialize()117        match360kp._initialize()118        neituiguang._initialize()119        from hall.entity import halltask120        halltask.initialize()121        # é»è®¤é
ç½®åå§å122        hallmoduledefault._initialize()123        halllocalnotification._initialize()124        #é¦å²ç¤¼å
é
ç½®125        hall_first_recharge._initialize()126        tmp_activity._initialize()127        #红å
模åé
ç½®åå§å128        hall_red_envelope._initialize()129        #é»ç³æ½å¥åå§å130        hallroulette._initialize()131        #ledé
ç½®åå§å132        hallled._initializeConfig()133        # éåºæé134        hall_exit_remind._initialize()135        # 䏿¹æ§å¶æ¨¡åå¼å
³136        hall_third_sdk_switch._initialize()137        # ååé
ç½®åå§å138        halldomains._initialize()139        # æä»¶å级模ååå§å140        hall_game_update._initialize()141        # ç»å½å¥å±æ¨¡ååå§å142        hall_login_reward._initialize()143        # éå
·è½¬æ¢æ¨¡ååå§å144        hall_item_exchange._initialize()145        # èªå»ºæ¡æ¿é´å·åå§å146        hall_friend_table._initialize()147        from hall.entity import hallalarm148        hallalarm.initialize()149        150        from hall.entity import hall_exmall151        hall_exmall._initialize()152        # æ¿å¡è´ä¹°æç¤ºä¿¡æ¯æ¨¡ååå§å153        from hall.entity import hall_fangka_buy_info154        hall_fangka_buy_info._initialize()155        156        hall_short_url._initialize()157        hall_share2._initialize()158        hall_share3._initialize()159        hall_yyb_gifts._initialize()160        hall_red_packet_rain._initialize()161        from hall.entity import hall1yuanduobao162        hall1yuanduobao._initialize()163        164        hall_invite._initialize()165        hall_statics._initialize()166        hall_joinfriendgame._initialize()167        hall_jiguang_jpush._initialize()168        hall_robot_user._initialize()169        # 红å
ä»»å¡åå§å170        from hall.entity import hall_red_packet_task, hall_red_packet_exchange, hall_red_packet_main171        hall_red_packet_task._initialize()172        hall_red_packet_exchange._initialize()173        hall_red_packet_main._initialize()174        175        # å¿«éå¼å§æ¨è模ååå§å176        from hall.entity import hall_quick_start_recommend177        hall_quick_start_recommend._initialize()178        179        # æä»¶éåºæ½ç模ååå§å180        from hall.entity import hall_exit_plugin_remind181        hall_exit_plugin_remind._initialize()182        183        # ç»å½ç´æ¥è¿å
¥æ¸¸ææ¨¡ååå§å184        from hall.entity import hall_enter_game_after_login185        hall_enter_game_after_login._initialize()186        187        # ç®åé请åè½åå§å188        from hall.entity import hall_simple_invite189        hall_simple_invite.initialize()190    def initGameAfter(self):191        from hall.entity.hallactivity import activity192        activity.initAfter()193    def getInitDataKeys(self):194        '''195        å徿¸¸ææ°æ®åå§åçåæ®µå表196        '''197        return self._account.getInitDataKeys()198    def getInitDataValues(self):199        '''...view-filters.spec.js
Source:view-filters.spec.js  
...4  function _currentHref() {5    return setLocationHrefSpy.args[setLocationHrefSpy.args.length-1][0];6  }7  beforeEach(function() {8    filters._initialize('');9    setLocationHrefSpy = sinon.spy();10    filters._setLocationHref = setLocationHrefSpy;11  });12  describe('#initialization', function() {13    it('should clear the filters on subsequent calls', function() {14      filters._initialize('?filters=country:Brazil');15      assert.deepEqual(['Brazil'], filters.get('country'));16      filters._initialize('');17      assert.equal(undefined, filters.get('country'));18    });19    it('should work with multiple filters', function() {20      var expectedFilters = {21        country: ['Brazil'],22        state: ['Paraiba']23      };24      filters._initialize('?filters=country:Brazil|state:Paraiba');25      assert.deepEqual(expectedFilters, filters.get());26    });27    it('should work with multiple values for the same filter', function() {28      var expectedFilters = {29        country: ['Brazil', 'Argentina'],30        state: ['Paraiba']31      };32      filters._initialize('?filters=country:Brazil|state:Paraiba|country:Argentina');33      assert.deepEqual(expectedFilters, filters.get());34    });35    it('should keep the order defined in the query string', function() {36      var expectedFiltersSorted = {37            country: ['Argentina', 'Brazil']38          },39          expectedFiltersReverse = {40            country: ['Brazil', 'Argentina']41          };42      filters._initialize('?filters=country:Argentina|country:Brazil');43      assert.deepEqual(expectedFiltersSorted, filters.get());44      filters._initialize('?filters=country:Brazil|country:Argentina');45      assert.deepEqual(expectedFiltersReverse, filters.get());46    });47    it('should work with a single numeric filter', function() {48      var expectedFilters = {49            year: ['2014']50          };51      filters._initialize('?filters=year:2014');52      assert.deepEqual(expectedFilters, filters.get());53    });54    it('should work with quoted filters', function() {55      var expectedFilters = {56            country: ['"Brazil"']57          };58      filters._initialize('?filters=country:"Brazil"');59      assert.deepEqual(expectedFilters, filters.get());60    });61    it('should work with filters with colons', function() {62      var expectedFilters = {63            time: ['11:00', '']64          };65      filters._initialize('?filters=time:11:00|time:');66      assert.deepEqual(expectedFilters, filters.get());67    });68  });69  describe('#get', function(){70    it('should return all filters if called without params', function(){71      var expectedFilters = {72        country: ['Brazil']73      };74      filters._initialize('?filters=country:Brazil');75      assert.deepEqual(expectedFilters, filters.get());76    });77    it('should return the requested filter field', function(){78      var countryFilter;79      filters._initialize('?filters=country:Brazil');80      countryFilter = filters.get('country');81      assert.equal(1, countryFilter.length);82      assert.equal('Brazil', countryFilter[0]);83    });84    it('should return an empty object if there\'re no filters', function(){85      filters._initialize('');86      assert.deepEqual({}, filters.get());87    });88    it('should return undefined if there\'s no filter with the requested field', function(){89      var cityFilter;90      filters._initialize('?filters=country:Brazil');91      cityFilter = filters.get('city');92      assert.equal(undefined, cityFilter);93    });94  });95  describe('#set', function(){96    it('should set the filters', function(){97      var expectedFilters = {98        country: 'Brazil'99      };100      filters.set('country', 'Brazil');101      assert.deepEqual(expectedFilters, filters.get());102    });103    it('should update the url', function(){104      var expectedSearch = '?filters=country%3ABrazil%7Ccountry%3AArgentina' +...test-wasi-initialize-validation.js
Source:test-wasi-initialize-validation.js  
...32      }33    );34  }35  {36    // Verify that a _initialize() export was passed.37    const wasi = new WASI({});38    const wasm = await WebAssembly.compile(bufferSource);39    const instance = await WebAssembly.instantiate(wasm);40    Object.defineProperty(instance, 'exports', {41      get() {42        return { _initialize: 5, memory: new Uint8Array() };43      },44    });45    assert.throws(46      () => { wasi.initialize(instance); },47      {48        code: 'ERR_INVALID_ARG_TYPE',49        message: /"instance\.exports\._initialize" property must be of type function/50      }51    );52  }53  {54    // Verify that a _start export was not passed.55    const wasi = new WASI({});56    const wasm = await WebAssembly.compile(bufferSource);57    const instance = await WebAssembly.instantiate(wasm);58    Object.defineProperty(instance, 'exports', {59      get() {60        return {61          _start() {},62          _initialize() {},63          memory: new Uint8Array(),64        };65      }66    });67    assert.throws(68      () => { wasi.initialize(instance); },69      {70        code: 'ERR_INVALID_ARG_TYPE',71        message: /"instance\.exports\._start" property must be undefined/72      }73    );74  }75  {76    // Verify that a memory export was passed.77    const wasi = new WASI({});78    const wasm = await WebAssembly.compile(bufferSource);79    const instance = await WebAssembly.instantiate(wasm);80    Object.defineProperty(instance, 'exports', {81      get() { return { _initialize() {} }; }82    });83    assert.throws(84      () => { wasi.initialize(instance); },85      {86        code: 'ERR_INVALID_ARG_TYPE',87        message: /"instance\.exports\.memory" property must be of type object/88      }89    );90  }91  {92    // Verify that a non-ArrayBuffer memory.buffer is rejected.93    const wasi = new WASI({});94    const wasm = await WebAssembly.compile(bufferSource);95    const instance = await WebAssembly.instantiate(wasm);96    Object.defineProperty(instance, 'exports', {97      get() {98        return {99          _initialize() {},100          memory: {},101        };102      }103    });104    // The error message is a little white lie because any object105    // with a .buffer property of type ArrayBuffer is accepted,106    // but 99% of the time a WebAssembly.Memory object is used.107    assert.throws(108      () => { wasi.initialize(instance); },109      {110        code: 'ERR_INVALID_ARG_TYPE',111        message: /"instance\.exports\.memory\.buffer" property must be an WebAssembly\.Memory/112      }113    );114  }115  {116    // Verify that an argument that duck-types as a WebAssembly.Instance117    // is accepted.118    const wasi = new WASI({});119    const wasm = await WebAssembly.compile(bufferSource);120    const instance = await WebAssembly.instantiate(wasm);121    Object.defineProperty(instance, 'exports', {122      get() {123        return {124          _initialize() {},125          memory: { buffer: new ArrayBuffer(0) },126        };127      }128    });129    wasi.initialize(instance);130  }131  {132    // Verify that a WebAssembly.Instance from another VM context is accepted.133    const wasi = new WASI({});134    const instance = await vm.runInNewContext(`135      (async () => {136        const wasm = await WebAssembly.compile(bufferSource);137        const instance = await WebAssembly.instantiate(wasm);138        Object.defineProperty(instance, 'exports', {139          get() {140            return {141              _initialize() {},142              memory: new WebAssembly.Memory({ initial: 1 })143            };144          }145        });146        return instance;147      })()148    `, { bufferSource });149    wasi.initialize(instance);150  }151  {152    // Verify that initialize() can only be called once.153    const wasi = new WASI({});154    const wasm = await WebAssembly.compile(bufferSource);155    const instance = await WebAssembly.instantiate(wasm);156    Object.defineProperty(instance, 'exports', {157      get() {158        return {159          _initialize() {},160          memory: new WebAssembly.Memory({ initial: 1 })161        };162      }163    });164    wasi.initialize(instance);165    assert.throws(166      () => { wasi.initialize(instance); },167      {168        code: 'ERR_WASI_ALREADY_STARTED',169        message: /^WASI instance has already started$/170      }171    );172  }173})().then(common.mustCall());Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
