diff --git a/microscript/ILibDuktape_Polyfills.c b/microscript/ILibDuktape_Polyfills.c index 38f3943..1e660ea 100644 --- a/microscript/ILibDuktape_Polyfills.c +++ b/microscript/ILibDuktape_Polyfills.c @@ -2071,7 +2071,7 @@ void ILibDuktape_Polyfills_JS_Init(duk_context *ctx) free(_toaster); // notifybar-desktop, refer to modules/notifybar-desktop.js - duk_peval_string_noresult(ctx, "addModule('notifybar-desktop', Buffer.from('LyoKQ29weXJpZ2h0IDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKi8NCg0KdmFyIHB0cnNpemUgPSByZXF1aXJlKCdfR2VuZXJpY01hcnNoYWwnKS5Qb2ludGVyU2l6ZTsNCg0KZnVuY3Rpb24gd2luZG93c19ub3RpZnliYXJfY2hlY2sodGl0bGUpDQp7DQogICAgaWYocmVxdWlyZSgndXNlci1zZXNzaW9ucycpLmdldFByb2Nlc3NPd25lck5hbWUocHJvY2Vzcy5waWQpLnRzaWQgPT0gMCkNCiAgICB7DQogICAgICAgIHJldHVybiAod2luZG93c19ub3RpZnliYXJfc3lzdGVtKHRpdGxlKSk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgIHJldHVybiAod2luZG93c19ub3RpZnliYXJfbG9jYWwodGl0bGUpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiB3aW5kb3dzX25vdGlmeWJhcl9zeXN0ZW0odGl0bGUpDQp7DQogICAgdmFyIHJldCA9IHt9Ow0KDQogICAgdmFyIHNjcmlwdCA9IEJ1ZmZlci5mcm9tKCJyZXF1aXJlKCdub3RpZnliYXItZGVza3RvcCcpKCciICsgdGl0bGUgKyAiJykub24oJ2Nsb3NlJywgZnVuY3Rpb24oKXtwcm9jZXNzLmV4aXQoKTt9KTsiKS50b1N0cmluZygnYmFzZTY0Jyk7DQoNCiAgICByZXF1aXJlKCdldmVudHMnKS5FdmVudEVtaXR0ZXIuY2FsbChyZXQsIHRydWUpLmNyZWF0ZUV2ZW50KCdjbG9zZScpOw0KDQogICAgY29uc29sZS5sb2coJ3N3aXRjaGluZycpOw0KICAgIHJldC5jaGlsZCA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKS5leGVjRmlsZShwcm9jZXNzLmV4ZWNQYXRoLCBbcHJvY2Vzcy5leGVjUGF0aC5zcGxpdCgnXFwnKS5wb3AoKSwgJy1iNjRleGVjJywgc2NyaXB0XSwgeyB0eXBlOiAxIH0pOw0KICAgIHJldC5jaGlsZC5wYXJlbnQgPSByZXQ7DQogICAgcmV0LmNoaWxkLnN0ZG91dC5vbignZGF0YScsIGZ1bmN0aW9uIChjKSB7IH0pOw0KICAgIHJldC5jaGlsZC5zdGRlcnIub24oJ2RhdGEnLCBmdW5jdGlvbiAoYykgeyB9KTsNCiAgICByZXQuY2hpbGQub24oJ2V4aXQnLCBmdW5jdGlvbiAoY29kZSkgeyB0aGlzLnBhcmVudC5lbWl0KCdjbG9zZScsIGNvZGUpOyB9KTsNCg0KICAgIHJldHVybiAocmV0KTsNCn0NCg0KZnVuY3Rpb24gd2luZG93c19ub3RpZnliYXJfbG9jYWwodGl0bGUpDQp7DQogICAgdmFyIE1lc3NhZ2VQdW1wOw0KICAgIHZhciByZXQ7DQoNCiAgICBNZXNzYWdlUHVtcCA9IHJlcXVpcmUoJ3dpbi1tZXNzYWdlLXB1bXAnKTsNCiAgICByZXQgPSB7IF9PYmplY3RJRDogJ25vdGlmeWJhci1kZXNrdG9wLldpbmRvd3MnLCB0aXRsZTogdGl0bGUsIF9wdW1wczogW10sIF9wcm9taXNlOiByZXF1aXJlKCdtb25pdG9yLWluZm8nKS5nZXRJbmZvKCkgfTsNCg0KICAgIHJldC5fcHJvbWlzZS5ub3RpZnliYXIgPSByZXQ7DQogICAgcmVxdWlyZSgnZXZlbnRzJykuRXZlbnRFbWl0dGVyLmNhbGwocmV0LCB0cnVlKQogICAgLmNyZWF0ZUV2ZW50KCdjbG9zZScpOw0KDQogICAgcmV0Ll9wcm9taXNlLnRoZW4oZnVuY3Rpb24gKG0pDQogICAgew0KICAgICAgICB2YXIgb2Zmc2V0Ow0KICAgICAgICB2YXIgYmFyV2lkdGgsIG1vbldpZHRoLCBvZmZzZXQsIGJhckhlaWdodCwgbW9uSGVpZ2h0Ow0KDQogICAgICAgIGZvciAodmFyIGkgaW4gbSkNCiAgICAgICAgew0KICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnTW9uaXRvcjogJyArIGkgKyAnID0gV2lkdGhbJyArIChtW2ldLnJpZ2h0IC0gbVtpXS5sZWZ0KSArICddJyk7DQogICAgICAgICAgICBtb25XaWR0aCA9IChtW2ldLnJpZ2h0IC0gbVtpXS5sZWZ0KTsNCiAgICAgICAgICAgIG1vbkhlaWdodCA9IChtW2ldLmJvdHRvbSAtIG1baV0udG9wKTsNCiAgICAgICAgICAgIGJhcldpZHRoID0gTWF0aC5mbG9vcihtb25XaWR0aCAqIDAuMzApOw0KICAgICAgICAgICAgYmFySGVpZ2h0ID0gTWF0aC5mbG9vcihtb25IZWlnaHQgKiAwLjAzNSk7DQogICAgICAgICAgICBvZmZzZXQgPSBNYXRoLmZsb29yKG1vbldpZHRoICogMC41MCkgLSBNYXRoLmZsb29yKGJhcldpZHRoICogMC41MCk7DQogICAgICAgICAgICBzdGFydCA9IG1baV0ubGVmdCArIG9mZnNldDsNCiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJyAgICcgKyBzdGFydCArICcsICcgKyBiYXJXaWR0aCArICcsICcgKyBiYXJIZWlnaHQpOw0KDQogICAgICAgICAgICB2YXIgb3B0aW9ucyA9DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB3aW5kb3c6DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHdpbnN0eWxlczogTWVzc2FnZVB1bXAuV2luZG93U3R5bGVzLldTX1ZJU0lCTEUgfCBNZXNzYWdlUHVtcC5XaW5kb3dTdHlsZXMuV1NfQk9SREVSIHwgTWVzc2FnZVB1bXAuV2luZG93U3R5bGVzLldTX0NBUFRJT04gfCBNZXNzYWdlUHVtcC5XaW5kb3dTdHlsZXMuV1NfU1lTTUVOVSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHN0YXJ0LCB3aWR0aDogYmFyV2lkdGgsIGhlaWdodDogYmFySGVpZ2h0LCB0aXRsZTogdGhpcy5ub3RpZnliYXIudGl0bGUNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICANCiAgICAgICAgICAgIHRoaXMubm90aWZ5YmFyLl9wdW1wcy5wdXNoKG5ldyBNZXNzYWdlUHVtcChvcHRpb25zKSk7DQogICAgICAgICAgICB0aGlzLm5vdGlmeWJhci5fcHVtcHMucGVlaygpLm5vdGlmeWJhciA9IHRoaXMubm90aWZ5YmFyOw0KICAgICAgICAgICAgdGhpcy5ub3RpZnliYXIuX3B1bXBzLnBlZWsoKS5vbignaHduZCcsIGZ1bmN0aW9uIChoKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRoaXMuX0hBTkRMRSA9IGg7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRoaXMubm90aWZ5YmFyLl9wdW1wcy5wZWVrKCkub24oJ2V4aXQnLCBmdW5jdGlvbiAoaCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmb3IodmFyIGkgaW4gdGhpcy5ub3RpZnliYXIuX3B1bXBzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnliYXIuX3B1bXBzW2ldLnJlbW92ZUFsbExpc3RlbmVycygnZXhpdCcpOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeWJhci5fcHVtcHNbaV0uY2xvc2UoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdGhpcy5ub3RpZnliYXIuZW1pdCgnY2xvc2UnKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGhpcy5ub3RpZnliYXIuX3B1bXBzLnBlZWsoKS5vbignbWVzc2FnZScsIGZ1bmN0aW9uIG9uV2luZG93c01lc3NhZ2UobXNnKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChtc2cubWVzc2FnZSA9PSAxMzMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJXTV9OQ1BBSU5UIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtc2cubWVzc2FnZSA9PSA3MCkgICAvLyBXZSBhcmUgaW50ZXJjZXB0aW5nIFdNX1dJTkRPV1BPU0NIQU5HSU5HIHRvIERJU0FCTEUgbW92aW5nIHRoZSB3aW5kb3cNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9IQU5ETEUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmbGFncyA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHB0cnNpemUpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IG1zZy5scGFyYW1fcmF3LkRlcmVmKDI0LCA0KS50b0J1ZmZlcigpLnJlYWRVSW50MzJMRSgpIHwgMHgwMDAyOyAvLyBTZXQgU1dQX05PTU9WRQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cubHBhcmFtX3Jhdy5EZXJlZigyNCwgNCkudG9CdWZmZXIoKS53cml0ZVVJbnQzMkxFKGZsYWdzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA4Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IG1zZy5scGFyYW1fcmF3LkRlcmVmKDMyLCA0KS50b0J1ZmZlcigpLnJlYWRVSW50MzJMRSgpIHwgMHgwMDAyICAvLyBTZXQgU1dQX05PTU9WRQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cubHBhcmFtX3Jhdy5EZXJlZigzMiwgNCkudG9CdWZmZXIoKS53cml0ZVVJbnQzMkxFKGZsYWdzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgIH0pOw0KDQogICAgcmV0dXJuIChyZXQpOw0KfQ0KDQoNCg0KDQoNCg0KDQpzd2l0Y2gocHJvY2Vzcy5wbGF0Zm9ybSkNCnsNCiAgICBjYXNlICd3aW4zMic6DQogICAgICAgIG1vZHVsZS5leHBvcnRzID0gd2luZG93c19ub3RpZnliYXJfY2hlY2s7DQogICAgICAgIGJyZWFrOw0KICAgIGNhc2UgJ2xpbnV4JzoNCiAgICBjYXNlICdmcmVlYnNkJzoNCiAgICAgICAgYnJlYWs7DQp9DQoNCg0K', 'base64').toString());"); + duk_peval_string_noresult(ctx, "addModule('notifybar-desktop', Buffer.from('LyoKQ29weXJpZ2h0IDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKi8NCg0KdmFyIHB0cnNpemUgPSByZXF1aXJlKCdfR2VuZXJpY01hcnNoYWwnKS5Qb2ludGVyU2l6ZTsNCg0KZnVuY3Rpb24gd2luZG93c19ub3RpZnliYXJfY2hlY2sodGl0bGUpDQp7DQogICAgaWYocmVxdWlyZSgndXNlci1zZXNzaW9ucycpLmdldFByb2Nlc3NPd25lck5hbWUocHJvY2Vzcy5waWQpLnRzaWQgPT0gMCkNCiAgICB7DQogICAgICAgIHJldHVybiAod2luZG93c19ub3RpZnliYXJfc3lzdGVtKHRpdGxlKSk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAgIHJldHVybiAod2luZG93c19ub3RpZnliYXJfbG9jYWwodGl0bGUpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiB3aW5kb3dzX25vdGlmeWJhcl9zeXN0ZW0odGl0bGUpDQp7DQogICAgdmFyIHJldCA9IHt9Ow0KDQogICAgdmFyIHNjcmlwdCA9IEJ1ZmZlci5mcm9tKCJyZXF1aXJlKCdub3RpZnliYXItZGVza3RvcCcpKCciICsgdGl0bGUgKyAiJykub24oJ2Nsb3NlJywgZnVuY3Rpb24oKXtwcm9jZXNzLmV4aXQoKTt9KTsiKS50b1N0cmluZygnYmFzZTY0Jyk7DQoNCiAgICByZXF1aXJlKCdldmVudHMnKS5FdmVudEVtaXR0ZXIuY2FsbChyZXQsIHRydWUpDQogICAgICAgIC5jcmVhdGVFdmVudCgnY2xvc2UnKQ0KICAgICAgICAuYWRkTWV0aG9kKCdjbG9zZScsIGZ1bmN0aW9uIGNsb3NlKCkgeyB0aGlzLmNoaWxkLmtpbGwoKTsgfSk7DQoNCiAgICBjb25zb2xlLmxvZygnc3dpdGNoaW5nJyk7DQogICAgcmV0LmNoaWxkID0gcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWNGaWxlKHByb2Nlc3MuZXhlY1BhdGgsIFtwcm9jZXNzLmV4ZWNQYXRoLnNwbGl0KCdcXCcpLnBvcCgpLCAnLWI2NGV4ZWMnLCBzY3JpcHRdLCB7IHR5cGU6IDEgfSk7DQogICAgcmV0LmNoaWxkLnBhcmVudCA9IHJldDsNCiAgICByZXQuY2hpbGQuc3Rkb3V0Lm9uKCdkYXRhJywgZnVuY3Rpb24gKGMpIHsgfSk7DQogICAgcmV0LmNoaWxkLnN0ZGVyci5vbignZGF0YScsIGZ1bmN0aW9uIChjKSB7IH0pOw0KICAgIHJldC5jaGlsZC5vbignZXhpdCcsIGZ1bmN0aW9uIChjb2RlKSB7IHRoaXMucGFyZW50LmVtaXQoJ2Nsb3NlJywgY29kZSk7IH0pOw0KDQogICAgcmV0dXJuIChyZXQpOw0KfQ0KDQpmdW5jdGlvbiB3aW5kb3dzX25vdGlmeWJhcl9sb2NhbCh0aXRsZSkNCnsNCiAgICB2YXIgTWVzc2FnZVB1bXA7DQogICAgdmFyIHJldDsNCg0KICAgIE1lc3NhZ2VQdW1wID0gcmVxdWlyZSgnd2luLW1lc3NhZ2UtcHVtcCcpOw0KICAgIHJldCA9IHsgX09iamVjdElEOiAnbm90aWZ5YmFyLWRlc2t0b3AuV2luZG93cycsIHRpdGxlOiB0aXRsZSwgX3B1bXBzOiBbXSwgX3Byb21pc2U6IHJlcXVpcmUoJ21vbml0b3ItaW5mbycpLmdldEluZm8oKSB9Ow0KDQogICAgcmV0Ll9wcm9taXNlLm5vdGlmeWJhciA9IHJldDsNCiAgICByZXF1aXJlKCdldmVudHMnKS5FdmVudEVtaXR0ZXIuY2FsbChyZXQsIHRydWUpCiAgICAgICAgLmNyZWF0ZUV2ZW50KCdjbG9zZScpDQogICAgICAgIC5hZGRNZXRob2QoJ2Nsb3NlJywgZnVuY3Rpb24gY2xvc2UoKQ0KICAgICAgICB7DQogICAgICAgICAgICBmb3IgKHZhciBpIGluIHRoaXMuX3B1bXBzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRoaXMuX3B1bXBzW2ldLnJlbW92ZUFsbExpc3RlbmVycygnZXhpdCcpOw0KICAgICAgICAgICAgICAgIHRoaXMuX3B1bXBzW2ldLmNsb3NlKCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KDQogICAgcmV0Ll9wcm9taXNlLnRoZW4oZnVuY3Rpb24gKG0pDQogICAgew0KICAgICAgICB2YXIgb2Zmc2V0Ow0KICAgICAgICB2YXIgYmFyV2lkdGgsIG1vbldpZHRoLCBvZmZzZXQsIGJhckhlaWdodCwgbW9uSGVpZ2h0Ow0KDQogICAgICAgIGZvciAodmFyIGkgaW4gbSkNCiAgICAgICAgew0KICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnTW9uaXRvcjogJyArIGkgKyAnID0gV2lkdGhbJyArIChtW2ldLnJpZ2h0IC0gbVtpXS5sZWZ0KSArICddJyk7DQogICAgICAgICAgICBtb25XaWR0aCA9IChtW2ldLnJpZ2h0IC0gbVtpXS5sZWZ0KTsNCiAgICAgICAgICAgIG1vbkhlaWdodCA9IChtW2ldLmJvdHRvbSAtIG1baV0udG9wKTsNCiAgICAgICAgICAgIGJhcldpZHRoID0gTWF0aC5mbG9vcihtb25XaWR0aCAqIDAuMzApOw0KICAgICAgICAgICAgYmFySGVpZ2h0ID0gTWF0aC5mbG9vcihtb25IZWlnaHQgKiAwLjAzNSk7DQogICAgICAgICAgICBvZmZzZXQgPSBNYXRoLmZsb29yKG1vbldpZHRoICogMC41MCkgLSBNYXRoLmZsb29yKGJhcldpZHRoICogMC41MCk7DQogICAgICAgICAgICBzdGFydCA9IG1baV0ubGVmdCArIG9mZnNldDsNCiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJyAgICcgKyBzdGFydCArICcsICcgKyBiYXJXaWR0aCArICcsICcgKyBiYXJIZWlnaHQpOw0KDQogICAgICAgICAgICB2YXIgb3B0aW9ucyA9DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB3aW5kb3c6DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHdpbnN0eWxlczogTWVzc2FnZVB1bXAuV2luZG93U3R5bGVzLldTX1ZJU0lCTEUgfCBNZXNzYWdlUHVtcC5XaW5kb3dTdHlsZXMuV1NfQk9SREVSIHwgTWVzc2FnZVB1bXAuV2luZG93U3R5bGVzLldTX0NBUFRJT04gfCBNZXNzYWdlUHVtcC5XaW5kb3dTdHlsZXMuV1NfU1lTTUVOVSwNCiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHN0YXJ0LCB3aWR0aDogYmFyV2lkdGgsIGhlaWdodDogYmFySGVpZ2h0LCB0aXRsZTogdGhpcy5ub3RpZnliYXIudGl0bGUNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICANCiAgICAgICAgICAgIHRoaXMubm90aWZ5YmFyLl9wdW1wcy5wdXNoKG5ldyBNZXNzYWdlUHVtcChvcHRpb25zKSk7DQogICAgICAgICAgICB0aGlzLm5vdGlmeWJhci5fcHVtcHMucGVlaygpLm5vdGlmeWJhciA9IHRoaXMubm90aWZ5YmFyOw0KICAgICAgICAgICAgdGhpcy5ub3RpZnliYXIuX3B1bXBzLnBlZWsoKS5vbignaHduZCcsIGZ1bmN0aW9uIChoKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHRoaXMuX0hBTkRMRSA9IGg7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRoaXMubm90aWZ5YmFyLl9wdW1wcy5wZWVrKCkub24oJ2V4aXQnLCBmdW5jdGlvbiAoaCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBmb3IodmFyIGkgaW4gdGhpcy5ub3RpZnliYXIuX3B1bXBzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnliYXIuX3B1bXBzW2ldLnJlbW92ZUFsbExpc3RlbmVycygnZXhpdCcpOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeWJhci5fcHVtcHNbaV0uY2xvc2UoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdGhpcy5ub3RpZnliYXIuZW1pdCgnY2xvc2UnKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGhpcy5ub3RpZnliYXIuX3B1bXBzLnBlZWsoKS5vbignbWVzc2FnZScsIGZ1bmN0aW9uIG9uV2luZG93c01lc3NhZ2UobXNnKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChtc2cubWVzc2FnZSA9PSAxMzMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJXTV9OQ1BBSU5UIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtc2cubWVzc2FnZSA9PSA3MCkgICAvLyBXZSBhcmUgaW50ZXJjZXB0aW5nIFdNX1dJTkRPV1BPU0NIQU5HSU5HIHRvIERJU0FCTEUgbW92aW5nIHRoZSB3aW5kb3cNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9IQU5ETEUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmbGFncyA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHB0cnNpemUpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IG1zZy5scGFyYW1fcmF3LkRlcmVmKDI0LCA0KS50b0J1ZmZlcigpLnJlYWRVSW50MzJMRSgpIHwgMHgwMDAyOyAvLyBTZXQgU1dQX05PTU9WRQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cubHBhcmFtX3Jhdy5EZXJlZigyNCwgNCkudG9CdWZmZXIoKS53cml0ZVVJbnQzMkxFKGZsYWdzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA4Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IG1zZy5scGFyYW1fcmF3LkRlcmVmKDMyLCA0KS50b0J1ZmZlcigpLnJlYWRVSW50MzJMRSgpIHwgMHgwMDAyICAvLyBTZXQgU1dQX05PTU9WRQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cubHBhcmFtX3Jhdy5EZXJlZigzMiwgNCkudG9CdWZmZXIoKS53cml0ZVVJbnQzMkxFKGZsYWdzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgIH0pOw0KDQogICAgcmV0dXJuIChyZXQpOw0KfQ0KDQoNCg0KDQoNCg0KDQpzd2l0Y2gocHJvY2Vzcy5wbGF0Zm9ybSkNCnsNCiAgICBjYXNlICd3aW4zMic6DQogICAgICAgIG1vZHVsZS5leHBvcnRzID0gd2luZG93c19ub3RpZnliYXJfY2hlY2s7DQogICAgICAgIGJyZWFrOw0KICAgIGNhc2UgJ2xpbnV4JzoNCiAgICBjYXNlICdmcmVlYnNkJzoNCiAgICAgICAgYnJlYWs7DQp9DQoNCg0K', 'base64').toString());"); #ifdef _POSIX @@ -2376,6 +2376,7 @@ void ILibDuktape_Polyfills_Init(duk_context *ctx) // Global Polyfills duk_push_global_object(ctx); // [g] + ILibDuktape_WriteID(ctx, "Global"); ILibDuktape_Polyfills_String(ctx); ILibDuktape_Polyfills_Buffer(ctx); diff --git a/modules/notifybar-desktop.js b/modules/notifybar-desktop.js index d07d2fd..f7e5314 100644 --- a/modules/notifybar-desktop.js +++ b/modules/notifybar-desktop.js @@ -33,7 +33,9 @@ function windows_notifybar_system(title) var script = Buffer.from("require('notifybar-desktop')('" + title + "').on('close', function(){process.exit();});").toString('base64'); - require('events').EventEmitter.call(ret, true).createEvent('close'); + require('events').EventEmitter.call(ret, true) + .createEvent('close') + .addMethod('close', function close() { this.child.kill(); }); console.log('switching'); ret.child = require('child_process').execFile(process.execPath, [process.execPath.split('\\').pop(), '-b64exec', script], { type: 1 }); @@ -55,7 +57,15 @@ function windows_notifybar_local(title) ret._promise.notifybar = ret; require('events').EventEmitter.call(ret, true) - .createEvent('close'); + .createEvent('close') + .addMethod('close', function close() + { + for (var i in this._pumps) + { + this._pumps[i].removeAllListeners('exit'); + this._pumps[i].close(); + } + }); ret._promise.then(function (m) {