"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (ast, strictCode, env, realm) { var exprRef = env.evaluate(ast.test, strictCode); var exprValue = _singletons.Environment.GetConditionValue(realm, exprRef); if (exprValue instanceof _index.ConcreteValue) { if (_singletons.To.ToBoolean(realm, exprValue)) { return env.evaluate(ast.consequent, strictCode); } else { return env.evaluate(ast.alternate, strictCode); } } (0, _invariant2.default)(exprValue instanceof _index.AbstractValue); if (!exprValue.mightNotBeTrue()) return env.evaluate(ast.consequent, strictCode); if (!exprValue.mightNotBeFalse()) return env.evaluate(ast.alternate, strictCode); return (0, _IfStatement.evaluateWithAbstractConditional)(exprValue, ast.consequent, ast.alternate, strictCode, env, realm); }; var _index = require("../values/index.js"); var _IfStatement = require("./IfStatement.js"); var _singletons = require("../singletons.js"); var _invariant = require("../invariant.js"); var _invariant2 = _interopRequireDefault(_invariant); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } //# sourceMappingURL=ConditionalExpression.js.map