[wp-trac] [WordPress Trac] #42685: Complex javascript code breaks <pre> tags and Connection to server

WordPress Trac noreply at wordpress.org
Thu Nov 23 21:16:01 UTC 2017


#42685: Complex javascript code breaks <pre> tags and Connection to server
--------------------------+-----------------------------
 Reporter:  distante      |      Owner:
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  Editor        |    Version:  4.9
 Severity:  normal        |   Keywords:
  Focuses:                |
--------------------------+-----------------------------
 When using complex javascript code between <pre> tags, the connection to
 the server gets broken. Any attempt to save, previow or publish will end
 in a ERR_CONNECTION_RESET. Tested in a recently installed Wordpress 4.9

 Steps to reproduce
 1. Create a New Post
 2. Go to TEXT tab.
 3. Paste the next code:
 Code to use
 {{{
 var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments,
 P, generator) {
     return new (P || (P = Promise))(function (resolve, reject) {
         function fulfilled(value) { try { step(generator.next(value)); }
 catch (e) { reject(e); } }
         function rejected(value) { try { step(generator["throw"](value));
 } catch (e) { reject(e); } }
         function step(result) { result.done ? resolve(result.value) : new
 P(function (resolve) { resolve(result.value); }).then(fulfilled,
 rejected); }
         step((generator = generator.apply(thisArg, _arguments ||
 [])).next());
     });
 };
 var __generator = (this && this.__generator) || function (thisArg, body) {
     var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1];
 return t[1]; }, trys: [], ops: [] }, f, y, t, g;
     return g = { next: verb(0), "throw": verb(1), "return": verb(2) },
 typeof Symbol === "function" && (g[Symbol.iterator] = function() { return
 this; }), g;
     function verb(n) { return function (v) { return step([n, v]); }; }
     function step(op) {
         if (f) throw new TypeError("Generator is already executing.");
         while (_) try {
             if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw"
 : "next"]) && !(t = t.call(y, op[1])).done) return t;
             if (y = 0, t) op = [0, t.value];
             switch (op[0]) {
                 case 0: case 1: t = op; break;
                 case 4: _.label++; return { value: op[1], done: false };
                 case 5: _.label++; y = op[1]; op = [0]; continue;
                 case 7: op = _.ops.pop(); _.trys.pop(); continue;
                 default:
                     if (!(t = _.trys, t = t.length > 0 && t[t.length - 1])
 && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                     if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] <
 t[3]))) { _.label = op[1]; break; }
                     if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t
 = op; break; }
                     if (t && _.label < t[2]) { _.label = t[2];
 _.ops.push(op); break; }
                     if (t[2]) _.ops.pop();
                     _.trys.pop(); continue;
             }
             op = body.call(thisArg, _);
         } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
         if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void
 0, done: true };
     }
 };
 var _this = this;
 function supportsWebp() {
     return __awaiter(this, void 0, void 0, function () {
         var webpData, blob;
         return __generator(this, function (_a) {
             switch (_a.label) {
                 case 0:
                     if (!self.createImageBitmap)
                         return [2 /*return*/, false];
                     webpData =
 'data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=';
                     return [4 /*yield*/, fetch(webpData).then(function (r)
 { return r.blob(); })];
                 case 1:
                     blob = _a.sent();
                     return [2 /*return*/,
 createImageBitmap(blob).then(function () { return true; }, function () {
 return false; })];
             }
         });
     });
 }
 (function () { return __awaiter(_this, void 0, void 0, function () {
     return __generator(this, function (_a) {
         switch (_a.label) {
             case 0: return [4 /*yield*/, supportsWebp()];
             case 1:
                 if (_a.sent()) {
                     console.log('does support');
                 }
                 else {
                     console.log('does not support');
                 }
                 return [2 /*return*/];
         }
     });
 }); })();

 }}}
 4. Press Save, Preview or Draft.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/42685>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list