efront 4.3.5 → 4.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -420,19 +420,6 @@ var snapExpressFoot = function (o) {
420
420
  }
421
421
  return o;
422
422
  };
423
- var mustBeYield = function (o) {
424
- if (!o.next) return;
425
- var mustyield = false;
426
- if (o.next.type === STRAP && !/^(?:instanceof|in|of|from|as)$/.test(o.next.text)
427
- || o.next.type === STAMP && /[!~]/.test(o.next.text)
428
- || o.next.type === EXPRESS && !/^[\.\[]/.test(o.next.text)
429
- || o.next.type & (VALUE | QUOTED | SCOPED)
430
- ) {
431
- mustyield = true;
432
- }
433
- return mustyield;
434
-
435
- }
436
423
  var createScoped = function (parsed, wash) {
437
424
  var used = Object.create(null); var vars = Object.create(null), lets = vars;
438
425
  var scoped = [], funcbody = scoped, argscope = scoped, thisscope = scoped;
@@ -1332,14 +1319,40 @@ var canbeTemp = function (body, strip = false) {
1332
1319
  if (!o) return false;
1333
1320
  return o.type === EXPRESS && (strip || !/[\.\[]/.test(o.text)) || o.type === VALUE || o.type === QUOTED && !o.length;
1334
1321
  };
1335
-
1322
+ var pickArgument = function (o) {
1323
+ var res = [];
1324
+ var t = o && o.prev, p = o;
1325
+ while (t && (t.type !== STAMP || !/^[,;]$/.test(t.text))) {
1326
+ if (p.isprop) {
1327
+ p = t.prev;
1328
+ if (!p || !p.isprop) break;
1329
+ }
1330
+ res.push(t);
1331
+ p = t;
1332
+ t = t.prev;
1333
+ }
1334
+ while (o && (o.type !== STAMP || !/^[,;]$/.test(o.text))) {
1335
+ res.push(o);
1336
+ var n = o;
1337
+ o = o.next;
1338
+ if (o && o.isprop) {
1339
+ if (!n.isprop) break;
1340
+ }
1341
+ }
1342
+ return res;
1343
+ };
1336
1344
  var pickSentence = function (o) {
1337
1345
  if (!o) return [];
1338
1346
  if (o && o.type & (SPACE | COMMENT) && o.prev) o = o.prev;
1339
1347
  if (o && o.type === STAMP && o.prev) o = o.prev;
1340
1348
  if (o.type === STRAP && /^(in|instanceof|as|of)$/.test(o.text) && o.prev) o = o.prev;
1341
1349
  var h = snapSentenceHead(o);
1342
- var e = skipAssignment(h);
1350
+ var e = h;
1351
+ do {
1352
+ e = skipAssignment(e);
1353
+ if (!e || e.type !== STAMP || e.text !== ',') break;
1354
+ e = e.next;
1355
+ } while (e);
1343
1356
  var q = o.queue;
1344
1357
  if (q) {
1345
1358
  var qh = q.indexOf(h);
@@ -1375,6 +1388,7 @@ module.exports = {
1375
1388
  createScoped,
1376
1389
  createExpressList,
1377
1390
  snapSentenceHead,
1391
+ pickArgument,
1378
1392
  pickSentence,
1379
1393
  snapExpressHead,
1380
1394
  snapExpressFoot,
@@ -34,3 +34,6 @@ testPickSentence(`a+b\r\n++c`, 5, "++c")
34
34
  testPickSentence(`a+b++\r\nc`, 5, "c")
35
35
  testPickSentence(`a+b++\r\nc`, 5, "c")
36
36
  testPickSentence(`a+b++\r\n+c`, 6, "a + b++\r\n+ c")
37
+ assert(common.createString(common.pickArgument(scanner2(`a={a:1,c:d}`)[2][4])), 'c: d')
38
+ assert(common.createString(common.pickArgument(scanner2(`a=class{a=1\r\nc=d}`)[3][4])), 'c = d')
39
+ assert(common.createString(common.pickArgument(scanner2(`(a=1,c=d)`)[0][4])), 'c = d')
@@ -1361,7 +1361,7 @@ var patchMark = '';
1361
1361
  module.exports = function (body, newname, ret) {
1362
1362
  strip = body.strip;
1363
1363
  var patchMark_ = patchMark;
1364
- patchMark = body.patchMark;
1364
+ if (body.patchMark) patchMark = body.patchMark;
1365
1365
  if (ret) ret = isString(ret) ? ret : newname();
1366
1366
  var ret0 = ret_;
1367
1367
  var ret1 = null;
@@ -64,8 +64,8 @@ var filterKey = function (event) {
64
64
  else if (keyCode > 95 && keyCode < 106) {
65
65
  char = keyCode - 96;
66
66
  }
67
- else if (keyCode > 46 && keyCode < 57) {
68
- char = keyCode - 47;
67
+ else if (keyCode > 47 && keyCode < 58) {
68
+ char = keyCode - 48;
69
69
  }
70
70
  else {
71
71
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "4.3.5",
3
+ "version": "4.3.6",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {