/**
 * Minified by jsDelivr using Terser v5.37.0.
 * Original file: /npm/babel-helper-replace-supers@6.24.1/lib/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";exports.__esModule=!0;var _classCallCheck2=require("babel-runtime/helpers/classCallCheck"),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_symbol=require("babel-runtime/core-js/symbol"),_symbol2=_interopRequireDefault(_symbol),_babelHelperOptimiseCallExpression=require("babel-helper-optimise-call-expression"),_babelHelperOptimiseCallExpression2=_interopRequireDefault(_babelHelperOptimiseCallExpression),_babelMessages=require("babel-messages"),messages=_interopRequireWildcard(_babelMessages),_babelTypes=require("babel-types"),t=_interopRequireWildcard(_babelTypes);function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var HARDCORE_THIS_REF=(0,_symbol2.default)();function isIllegalBareSuper(e,r){return!!t.isSuper(e)&&(!t.isMemberExpression(r,{computed:!1})&&!t.isCallExpression(r,{callee:e}))}function isMemberExpressionSuper(e){return t.isMemberExpression(e)&&t.isSuper(e.object)}function getPrototypeOfExpression(e,r){var s=r?e:t.memberExpression(e,t.identifier("prototype"));return t.logicalExpression("||",t.memberExpression(s,t.identifier("__proto__")),t.callExpression(t.memberExpression(t.identifier("Object"),t.identifier("getPrototypeOf")),[s]))}var visitor={Function:function(e){e.inShadow("this")||e.skip()},ReturnStatement:function(e,t){e.inShadow("this")||t.returns.push(e)},ThisExpression:function(e,t){e.node[HARDCORE_THIS_REF]||t.thises.push(e)},enter:function(e,t){var r=t.specHandle;t.isLoose&&(r=t.looseHandle);var s=e.isCallExpression()&&e.get("callee").isSuper(),i=r.call(t,e);i&&(t.hasSuper=!0),s&&t.bareSupers.push(e),!0===i&&e.requeue(),!0!==i&&i&&(Array.isArray(i)?e.replaceWithMultiple(i):e.replaceWith(i))}},ReplaceSupers=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,_classCallCheck3.default)(this,e),this.forceSuperMemoisation=t.forceSuperMemoisation,this.methodPath=t.methodPath,this.methodNode=t.methodNode,this.superRef=t.superRef,this.isStatic=t.isStatic,this.hasSuper=!1,this.inClass=r,this.isLoose=t.isLoose,this.scope=this.methodPath.scope,this.file=t.file,this.opts=t,this.bareSupers=[],this.returns=[],this.thises=[]}return e.prototype.getObjectRef=function(){return this.opts.objectRef||this.opts.getObjectRef()},e.prototype.setSuperProperty=function(e,r,s){return t.callExpression(this.file.addHelper("set"),[getPrototypeOfExpression(this.getObjectRef(),this.isStatic),s?e:t.stringLiteral(e.name),r,t.thisExpression()])},e.prototype.getSuperProperty=function(e,r){return t.callExpression(this.file.addHelper("get"),[getPrototypeOfExpression(this.getObjectRef(),this.isStatic),r?e:t.stringLiteral(e.name),t.thisExpression()])},e.prototype.replace=function(){this.methodPath.traverse(visitor,this)},e.prototype.getLooseSuperProperty=function(e,r){var s=this.methodNode,i=this.superRef||t.identifier("Function");return r.property===e||t.isCallExpression(r,{callee:e})?void 0:t.isMemberExpression(r)&&!s.static?t.memberExpression(i,t.identifier("prototype")):i},e.prototype.looseHandle=function(e){var r=e.node;if(e.isSuper())return this.getLooseSuperProperty(r,e.parent);if(e.isCallExpression()){var s=r.callee;if(!t.isMemberExpression(s))return;if(!t.isSuper(s.object))return;return t.appendToMemberExpression(s,t.identifier("call")),r.arguments.unshift(t.thisExpression()),!0}},e.prototype.specHandleAssignmentExpression=function(e,r,s){return"="===s.operator?this.setSuperProperty(s.left.property,s.right,s.left.computed):(e=e||r.scope.generateUidIdentifier("ref"),[t.variableDeclaration("var",[t.variableDeclarator(e,s.left)]),t.expressionStatement(t.assignmentExpression("=",s.left,t.binaryExpression(s.operator[0],e,s.right)))])},e.prototype.specHandle=function(e){var r=void 0,s=void 0,i=void 0,o=e.parent,n=e.node;if(isIllegalBareSuper(n,o))throw e.buildCodeFrameError(messages.get("classesIllegalBareSuper"));if(t.isCallExpression(n)){var p=n.callee;if(t.isSuper(p))return;isMemberExpressionSuper(p)&&(r=p.property,s=p.computed,i=n.arguments)}else if(t.isMemberExpression(n)&&t.isSuper(n.object))r=n.property,s=n.computed;else{if(t.isUpdateExpression(n)&&isMemberExpressionSuper(n.argument)){var a=t.binaryExpression(n.operator[0],n.argument,t.numericLiteral(1));if(n.prefix)return this.specHandleAssignmentExpression(null,e,a);var l=e.scope.generateUidIdentifier("ref");return this.specHandleAssignmentExpression(l,e,a).concat(t.expressionStatement(l))}if(t.isAssignmentExpression(n)&&isMemberExpressionSuper(n.left))return this.specHandleAssignmentExpression(null,e,n)}if(r){var u=this.getSuperProperty(r,s);return i?this.optimiseCall(u,i):u}},e.prototype.optimiseCall=function(e,r){var s=t.thisExpression();return s[HARDCORE_THIS_REF]=!0,(0,_babelHelperOptimiseCallExpression2.default)(e,s,r)},e}();exports.default=ReplaceSupers,module.exports=exports.default;
//# sourceMappingURL=/sm/4aac838d783dc27803774f579587d144c3359c7fba068fa250d31a5f58960ab8.map