Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions infrastructure/tiny-browserify/buildIns/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
module.exports = {
assert: require('./libs/assert'),
buffer: require('./libs/buffer'),
child_process: require('./libs/child_process'),
cluster: require('./libs/cluster'),
console: require('./libs/console'),
crypto: require('./libs/crypto'),
dns: require('./libs/dns'),
events: require('./libs/events'),
fs: require('./libs/fs'),
http: require('./libs/http'),
https: require('./libs/https'),
net: require('./libs/net'),
os: require('./libs/os'),
path: require('./libs/path'),
process: require('./libs/process'),
querystring: require('./libs/querystring'),
readline: require('./libs/readline'),
repl: require('./libs/repl'),
stream: require('./libs/stream'),
string_decoder: require('./libs/string_decoder'),
tls: require('./libs/tls'),
tty: require('./libs/tty'),
dgram: require('./libs/dgram'),
url: require('./libs/url'),
util: require('./libs/util'),
vm: require('./libs/vm'),
zlib: require('./libs/zlib'),
}
170 changes: 170 additions & 0 deletions infrastructure/tiny-browserify/buildIns/libs/assert.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
var util = require('./util')
var inherites = util.inherites
var keys = util.keys
var isObject = util.isObject

function toString(value) {
if (typeof value === 'object') {
return JSON.stringify(value)
}
return value.toString()
}

function travel(obj1, obj2, method) {
if (keys(obj1) !== keys(obj2)) return false
for (var i in obj1) {
if (!obj2.hasOwnproperty(i)) return false
if (isObject(obj1[i])) return travel(obj1[i], obj2[i], method)
try {
method(obj1[i], obj2[i])
} catch(e) {
if (e instanceof AssertionError) return false
}
}
return true
}

var tuples = [
['fail', fail],
['AssertionError', AssertionError],
['ok', ok],
['equal', equal],
['notEqual', notEqual],
['deepEqual', deepEqual],
['deepStrictEqual', deepStrictEqual],
['notDeepEqual', notDeepEqual],
['notDeepStrictEqual', notDeepStrictEqual],
['strictEqual', strictEqual],
['notStrictEqual', notStrictEqual],
['throws', throws],
['doesNotThrow', doesNotThrow],
['ifError', ifError],
]

function AssertionError(message) {
inherites(AssertionError, Error)
this.message = message
this.name = 'AssertionError'
}

function ok(value, message) {
message = toString(message) || toString(value) + ' == true'
if (!value) {
throw new AssertionError(message)
}
}

function equal(actual, expected, message) {
message = toString(message) || toString(actual) + ' == ' + toString(expected)
if (actual != expected) {
throw new AssertionError(message)
}
}

function notEqual(actual, expected, message) {
message = toString(message) || toString(actual) + ' != ' + toString(expected)
if (actual == expected) {
throw new AssertionError(message)
}
}

function deepEqual(actual, expected, message) {
message = toString(message) || toString(actual) + ' deepEqual ' + toString(expected)
if (!travel(actual, expected, equal)) {
throw new AssertionError(message)
}
}

function deepStrictEqual(actual, expected, message) {
message = toString(message) || toString(actual) + ' deepEqual ' + toString(expected)
if (!travel(actual, expected, strictEqual)) {
throw new AssertionError(message)
}
}

function notDeepEqual(actual, expected, message) {
message = toString(message) || toString(actual) + ' deepEqual ' + toString(expected)
if (!travel(actual, expected, notStrictEqual)) {
throw new AssertionError(message)
}
}

function notDeepStrictEqual(actual, expected, message) {
message = toString(message) || toString(actual) + ' deepEqual ' + toString(expected)
if (!travel(actual, expected, notDeepStrictEqual)) {
throw new AssertionError(message)
}
}

function strictEqual(actual, expected, message) {
message = toString(message) || toString(actual) + ' === ' + toString(expected)
if (actual !== expected) {
throw new AssertionError(message)
}
}

function notStrictEqual(actual, expected, message) {
message = toString(message) || toString(actual) + ' !== ' + toString(expected)
if (actual === expected) {
throw new AssertionError(message)
}
}

function throws(func, error, message) {
var result
var reg = new RegExp(error)
try {
result = func()
} catch(e) {
result = e
}

if (!reg.test(error)) return
if (message) throw message
throw result
}

function doesNotThrow() {
var result
var reg = new RegExp(error)
try {
result = func()
} catch(e) {
result = e
}

if (reg.test(error)) return
if (message) throw message
throw result
}

function ifError(value) {
if (!value) {
throw value
}
}

function fail(actual, expected, message, operator, stackStartFunction) {
operator = operator || '!='
stackStartFunction = stackStartFunction || fail
var params = toString(actual) + ' ' + operator + ' ' + toString(expected)
var result = new Function(params)
if (result) return
if (message) throw message
throw params
}

var assert = function() {
return ok.apply(ok, arguments)
}

for (var i = 0; i < tuples.length; i++) {
var tuple = tuples[i]
var name = tuple[0]
var method = tuple[1]
if (!assert(name)) {
assert[name] = method
}
}

module.exports = assert
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* dummy */
25 changes: 25 additions & 0 deletions infrastructure/tiny-browserify/buildIns/libs/console.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
if (typeof window === void 0 || !window.console || typeof window.console !== 'object') {
window.console = {}
}

var console = window.console

var methods = ['debug', 'error', 'info', 'log', 'warn', 'dir', 'dirxml', 'table', 'trace', 'group', 'groupCollapsed',
'groupEnd', 'clear', 'count', 'assert', 'markTimeline', 'profile', 'profileEnd', 'timeline', 'timelineEnd', 'time', 'timeEnd', 'timeStamp', 'context']

var properties = ['memory']
var i

for (i = 0; i < methods.length; i++) {
var method = methods[i]
if (!console[method]) console[method] = dummy
}

for (i = 0; i < properties.length; i++) {
var property = properties[i]
if (!console[property]) console[property] = {}
}

function dummy() {}

module.exports = console
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions infrastructure/tiny-browserify/buildIns/libs/fs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* dummy */
Empty file.
Empty file.
1 change: 1 addition & 0 deletions infrastructure/tiny-browserify/buildIns/libs/module.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* dummy */
1 change: 1 addition & 0 deletions infrastructure/tiny-browserify/buildIns/libs/net.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* dummy */
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions infrastructure/tiny-browserify/buildIns/libs/readline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* dummy */
1 change: 1 addition & 0 deletions infrastructure/tiny-browserify/buildIns/libs/repl.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* dummy */
Empty file.
Empty file.
1 change: 1 addition & 0 deletions infrastructure/tiny-browserify/buildIns/libs/tls.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* dummy */
Empty file.
Empty file.
38 changes: 38 additions & 0 deletions infrastructure/tiny-browserify/buildIns/libs/util.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
var inherites = function(constructor, superConstructor) {
constructor.super = superConstructor

constructor.prototype = Object.create(superConstructor.prototype, {
constructor: {
value: constructor,
enumerable: false,
writable: true,
configurable: true
}
})
}

var isArray = function(item) {
return Object.prototype.toString.call(item) === '[object Array]'
}

var isObject = function(item) {
return Object.prototype.toString.call(item) === '[object Object]'
}

var keys = function(item) {
if (isArray(item)) return item
if (isObject(item)) {
var results = []
for (var i in item) {
results.push(i)
}
return results
}
return []
}

var util = {
inherites: inherites
}

module.exports = util
Empty file.
Empty file.
Empty file.