Skip to content

Commit

Permalink
Add missing #__PURE__ annotations (#1613)
Browse files Browse the repository at this point in the history
* Add missing #__PURE__ annotations

* Update nine-mugs-care.md
  • Loading branch information
Andarist committed Nov 7, 2019
1 parent 9f2e6ac commit a085003
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 49 deletions.
7 changes: 7 additions & 0 deletions .changeset/nine-mugs-care.md
@@ -0,0 +1,7 @@
---
'@emotion/core': patch
'@emotion/is-prop-valid': patch
'@emotion/serialize': patch
---

Add missing `#__PURE__` annotations
94 changes: 47 additions & 47 deletions packages/core/src/class-names.js
Expand Up @@ -78,57 +78,57 @@ type Props = {
}) => React.Node
}

export const ClassNames: React.AbstractComponent<Props> = withEmotionCache(
(props, cache) => {
let rules = ''
let serializedHashes = ''
let hasRendered = false
export const ClassNames: React.AbstractComponent<
Props
> = /* #__PURE__ */ withEmotionCache((props, cache) => {
let rules = ''
let serializedHashes = ''
let hasRendered = false

let css = (...args: Array<any>) => {
if (hasRendered && process.env.NODE_ENV !== 'production') {
throw new Error('css can only be used during render')
}
let serialized = serializeStyles(args, cache.registered)
if (isBrowser) {
insertStyles(cache, serialized, false)
} else {
let res = insertStyles(cache, serialized, false)
if (res !== undefined) {
rules += res
}
}
if (!isBrowser) {
serializedHashes += ` ${serialized.name}`
}
return `${cache.key}-${serialized.name}`
let css = (...args: Array<any>) => {
if (hasRendered && process.env.NODE_ENV !== 'production') {
throw new Error('css can only be used during render')
}
let cx = (...args: Array<ClassNameArg>) => {
if (hasRendered && process.env.NODE_ENV !== 'production') {
throw new Error('cx can only be used during render')
let serialized = serializeStyles(args, cache.registered)
if (isBrowser) {
insertStyles(cache, serialized, false)
} else {
let res = insertStyles(cache, serialized, false)
if (res !== undefined) {
rules += res
}
return merge(cache.registered, css, classnames(args))
}
let content = {
css,
cx,
theme: useContext(ThemeContext)
if (!isBrowser) {
serializedHashes += ` ${serialized.name}`
}
let ele = props.children(content)
hasRendered = true
if (!isBrowser && rules.length !== 0) {
return (
<React.Fragment>
<style
{...{
[`data-emotion-${cache.key}`]: serializedHashes.substring(1),
dangerouslySetInnerHTML: { __html: rules },
nonce: cache.sheet.nonce
}}
/>
{ele}
</React.Fragment>
)
return `${cache.key}-${serialized.name}`
}
let cx = (...args: Array<ClassNameArg>) => {
if (hasRendered && process.env.NODE_ENV !== 'production') {
throw new Error('cx can only be used during render')
}
return ele
return merge(cache.registered, css, classnames(args))
}
let content = {
css,
cx,
theme: useContext(ThemeContext)
}
let ele = props.children(content)
hasRendered = true
if (!isBrowser && rules.length !== 0) {
return (
<React.Fragment>
<style
{...{
[`data-emotion-${cache.key}`]: serializedHashes.substring(1),
dangerouslySetInnerHTML: { __html: rules },
nonce: cache.sheet.nonce
}}
/>
{ele}
</React.Fragment>
)
}
)
return ele
})
4 changes: 3 additions & 1 deletion packages/is-prop-valid/src/index.js
Expand Up @@ -6,10 +6,12 @@ declare var codegen: { require: string => RegExp }
const reactPropsRegex = codegen.require('./props')

// https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
export default memoize(
const isPropValid = /* #__PURE__ */ memoize(
prop =>
reactPropsRegex.test(prop) ||
(prop.charCodeAt(0) === 111 /* o */ &&
prop.charCodeAt(1) === 110 /* n */ &&
prop.charCodeAt(2) < 91) /* Z+1 */
)

export default isPropValid
2 changes: 1 addition & 1 deletion packages/serialize/src/index.js
Expand Up @@ -22,7 +22,7 @@ let animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g
const isCustomProperty = (property: string) => property.charCodeAt(1) === 45
const isProcessableValue = value => value != null && typeof value !== 'boolean'

const processStyleName = memoize(
const processStyleName = /* #__PURE__ */ memoize(
(styleName: string) =>
isCustomProperty(styleName)
? styleName
Expand Down

0 comments on commit a085003

Please sign in to comment.