Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. var MESSAGE =
  2. 'Using the delete operator on a property will cause the shape of ' +
  3. 'the object to change. This will lead to JS engine to de-optimize ' +
  4. 'read and writes to this object.';
  5.  
  6. // For now this rule is very pessimistic to limit false positives. It only
  7. // covers case of form: delete this.<identifier>;
  8. module.exports = function rule(context) {
  9. return {
  10. UnaryExpression: function(node) {
  11. if (node.operator !== 'delete') {
  12. return;
  13. }
  14. var deleteArg = node.argument;
  15. if (deleteArg.type !== 'MemberExpression') {
  16. return;
  17. }
  18. var obj = deleteArg.object;
  19. var property = deleteArg.property;
  20. if (obj.type !== 'ThisExpression') {
  21. return;
  22. }
  23. if (property.type !== 'Identifier') {
  24. return;
  25. }
  26. context.report(node, MESSAGE);
  27. },
  28. };
  29. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement