// Code generated by "stringer -type jsCtx"; DO NOT EDIT.

package template

import "strconv"

func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[jsCtxRegexp-0]
	_ = x[jsCtxDivOp-1]
	_ = x[jsCtxUnknown-2]
}

const _jsCtx_name = "jsCtxRegexpjsCtxDivOpjsCtxUnknown"

var _jsCtx_index = [...]uint8{0, 11, 21, 33}

func (i jsCtx) String() string {
	idx := int(i) - 0
	if i < 0 || idx >= len(_jsCtx_index)-1 {
		return "jsCtx(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _jsCtx_name[_jsCtx_index[idx]:_jsCtx_index[idx+1]]
}
