Skip to content

Instantly share code, notes, and snippets.

HE Shi-Jun hax

Block or report user

Report or block hax

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@hax
hax / readonly.js
Created Dec 4, 2018
readonly collections
View readonly.js
void function () {
'use strict'
const targetSymbol = Symbol()
function createSafeMethod(method) {
return new Proxy(method, {
apply(target, thisArg, argArray) {
return Reflect.apply(target, thisArg[targetSymbol], argArray)
}
@hax
hax / safe_json_encode.php
Last active Sep 4, 2018
PHP safe json encode
View safe_json_encode.php
<?php
function safe_json_encode($data) {
// We might have been tolerant to some common cases such as convert
// INF/NAN as 0 by using JSON_PARTIAL_OUTPUT_ON_ERROR option, but
// sadly `json_last_error()` only get the last error means it may
// override worse errors such as malfored utf-8 which we can't ignore!
// Poor H P !!
$result = @json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
View node6-stdout-patch.js
// See https://github.com/nodejs/node/issues/6456
import {platform} from 'os'
import {satisfies} from 'semver'
if (platform() === 'darwin' && satisfies(process.version, '>=6.0.0 <6.2.1')) {
for (const s of [process.stdout, process.stderr]) {
if (s && s.isTTY && s._handle && typeof s._handle.setBlocking === 'function') {
s._handle.setBlocking(true)
}
@hax
hax / index.js
Created Dec 7, 2016
log with calling location info in Node.js
View index.js
const {main} = require('./main')
main()
@hax
hax / gist:3482308
Created Aug 26, 2012
How to create a naked Object in old Browsers (eg. IE 6,7,8) which not support Object.create(null) or {__proto__: null}
View gist:3482308
function nakedObject() {
var iframe = document.createElement('iframe')
iframe.width = iframe.height = 0
iframe.style.display = 'none'
document.appendChild(iframe)
iframe.src = 'javascript:'
var proto = iframe.contentWindow.Object.prototype
iframe.parentNode.removeChild(iframe)
iframe = null
@hax
hax / test-block-scope-performance.js
Created Apr 30, 2016
block scope optimization test
View test-block-scope-performance.js
'use strict'
const Benchmark = require('benchmark')
function MASK() {
return 100
}
function MAX() {
@hax
hax / hi-bot.js
Created Jan 5, 2016
detect robot
View hi-bot.js
void function () {
if (!window.tracker) {
return;
}
var events = ['scroll', 'click', 'mousemove', 'keydown', 'mousedown'];
for (var i = 0; i < events.length; i++) {
addHandler(document, events[i], detect);
}
function detect(event) {
for (var i = 0; i < events.length; i++) {
@hax
hax / gist:3982309
Created Oct 30, 2012
modulelint 0.0.2 bug
View gist:3982309
D:\working\hax\mmclass [master]> modulelint -i .
C:\Users\Administrator\AppData\Roaming\npm\node_modules\modulelint\lib\checklist
\bom.js:22
var blackListReg = new RegExp(blackList.join("|"));
^
SyntaxError: Invalid regular expression: /\doc\|\.git\|\.svn\|\node_modules\/: \
at end of pattern
at new RegExp (unknown source)
at Object.<anonymous> (C:\Users\Administrator\AppData\Roaming\npm\node_modul
@hax
hax / show_more_groups_for_my_weibo
Created Sep 20, 2011
A bookmarklet to show more group links for the Sina Weibo v4 (Sep, 2011)
View show_more_groups_for_my_weibo
javascript:void function(){STK.sizzle('[node-type="feedGroupLayer"]')[0].style.display='block';STK.sizzle('[node-type="feedGroupLayer"] a[href]')[0].focus()}()
You can’t perform that action at this time.