public void VisitNode(JSSwitchStatement ss) { var conditionType = ss.Condition.GetExpectedType(TypeSystem); if ( !ILBlockTranslator.IsIntegral(conditionType) && ILBlockTranslator.IsEnum(conditionType) ) { var cast = JSInvocationExpression.InvokeStatic( new JSFakeMethod("Number", TypeSystem.Int32, conditionType), new[] { ss.Condition }, true ); ss.ReplaceChild(ss.Condition, cast); } VisitChildren(ss); }
public void VisitNode(JSSwitchStatement ss) { var conditionType = ss.Condition.GetActualType(TypeSystem); if ( !TypeUtil.IsIntegral(conditionType) && IsEnumOrNullableEnum(conditionType) ) { var cast = JSInvocationExpression.InvokeMethod( JS.valueOf(TypeSystem.Int32), ss.Condition, null, true ); ss.ReplaceChild(ss.Condition, cast); } VisitChildren(ss); }