<commit_before>(function (factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :
		typeof define === 'function' && define['amd'] ? define(factory()) :
			(window['stylisByte'] = factory())
}(function () {

	'use strict'

	var maps = {}
	var heap = []
	var byte = []
	var index = 0
	var stack = []

	var RULE_START = 0
	var RULE_END = 1
	var SELECTOR = 3
	var PROPERTY = 10
	var VALUE = 11

	return function (context, content, selectors, parents, line, column, length) {
		var colon, name, value, cache, block

		switch (context) {
			case 1: {
				name = content.substring(0, colon = content.indexOf(':')).trim()
				value = content.substring(colon+1).trim()

				if ((cache = maps[name]) === void 0) {
					stack.push(PROPERTY, index)
					heap[maps[name] = index++] = name
				} else {
					stack.push(PROPERTY, cache)
				}

				if ((cache = maps[value]) === void 0) {
					stack.push(VALUE, index)
					heap[maps[value] = index++] = value
				} else {
					stack.push(VALUE, cache)
				}

				break
			}
			case 2: {
				value = selectors.join(',')

				if ((cache = maps[value]) === void 0) {
					block = [RULE_START, index].concat(stack).concat([RULE_END])
					heap[maps[value] = index++] = value
				} else {
					block = [RULE_START, cache].concat(stack).concat([RULE_END])
				}

				byte.push.apply(byte, block)

				break
			}
			case -2: {	
				return {
					heap: heap,
					byte: byte
				}
			}
		}
	}
}))<commit_msg>plugin byte, refresh stack after selector block<commit_after>(function (factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :
		typeof define === 'function' && define['amd'] ? define(factory()) :
			(window['stylisByte'] = factory())
}(function () {

	'use strict'

	var maps = {}
	var heap = []
	var byte = []
	var index = 0
	var stack = []

	var RULE_START = 0
	var RULE_END = 1
	var SELECTOR = 3
	var PROPERTY = 10
	var VALUE = 11

	return function (context, content, selectors, parents, line, column, length) {
		var colon, name, value, cache, block

		switch (context) {
			case 1: {
				name = content.substring(0, colon = content.indexOf(':')).trim()
				value = content.substring(colon+1).trim()

				if ((cache = maps[name]) === void 0) {
					stack.push(PROPERTY, index)
					heap[maps[name] = index++] = name
				} else {
					stack.push(PROPERTY, cache)
				}

				if ((cache = maps[value]) === void 0) {
					stack.push(VALUE, index)
					heap[maps[value] = index++] = value
				} else {
					stack.push(VALUE, cache)
				}

				break
			}
			case 2: {
				value = selectors.join(',')

				if ((cache = maps[value]) === void 0) {
					block = [RULE_START, index].concat(stack).concat([RULE_END])
					heap[maps[value] = index++] = value
				} else {
					block = [RULE_START, cache].concat(stack).concat([RULE_END])
				}

				byte.push.apply(byte, block)
				stack = []
				
				break
			}
			case -2: {	
				return {
					heap: heap,
					byte: byte
				}
			}
		}
	}
}))
{'fraction_non_alphanumeric': 0.17167381974248927, 'fraction_numerical': 0.010564542753383956, 'mean_word_length': 2.7780548628428927, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6312215', 'n_tokens_mistral': 1300, 'n_tokens_neox': 1023, 'n_words': 261}