Inspired by dannyfritz/commit-message-emoji
See also gitmoji.
Commit type | Emoji |
---|---|
Initial commit | π :tada: |
Version tag | π :bookmark: |
New feature | β¨ :sparkles: |
Bugfix | π :bug: |
//wrap a fn that returns a function into a decorator | |
function makeFnWrapDecorator(fnWrapper: Function) { | |
return function decoratorWrapper(...args) { | |
return function decorator(target, propertyKey: string, descriptor: PropertyDescriptor) { | |
const fn = descriptor.value; | |
let wrappedFn = fnWrapper.apply(null, [fn, ...args]); | |
return { | |
configurable: true, | |
get() { | |
return wrappedFn; |
package main | |
import ( | |
"bufio" | |
"fmt" | |
"net" | |
"net/http" | |
"net/url" | |
"crypto/tls" |
package main | |
import ( | |
"context" | |
"flag" | |
"fmt" | |
"io" | |
"net" | |
"net/http" | |
"os" |
package main | |
import ( | |
"fmt" | |
"os" | |
"text/template" | |
) | |
type Person struct { | |
Name string |
function get(obj, path, def) { | |
var fullPath = path | |
.replace(/\[/g, '.') | |
.replace(/]/g, '') | |
.split('.') | |
.filter(Boolean); | |
return fullPath.every(everyFunc) ? obj : def; | |
function everyFunc(step) { |
<?php | |
namespace App\ActiveRecord; | |
class PostRepository | |
{ | |
private $cache; | |
public function __construct(Cache $cache) | |
{ | |
// Any set() / get() cache implementation. |
func main() { | |
str := "abc foo:bar def baz:qux ghi" | |
re := regexp.MustCompile("([a-z]+):([a-z]+)") | |
result := ReplaceAllStringSubmatchFunc(re, str, func(groups []string) string { | |
return groups[1] + "." + groups[2] | |
}) | |
fmt.Printf("'%s'\n", result) | |
} |
Inspired by dannyfritz/commit-message-emoji
See also gitmoji.
Commit type | Emoji |
---|---|
Initial commit | π :tada: |
Version tag | π :bookmark: |
New feature | β¨ :sparkles: |
Bugfix | π :bug: |
function logClass(target: any) { | |
// save a reference to the original constructor | |
var original = target; | |
// a utility function to generate instances of a class | |
function construct(constructor, args) { | |
var c : any = function () { | |
return constructor.apply(this, args); | |
} |
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft
, elem.offsetTop
, elem.offsetWidth
, elem.offsetHeight
, elem.offsetParent