
class _SafariRemoteNotification {
	toString() {
		return "[object SafariRemoteNotification]"
	}
};

if (window.SafariRemoteNotification === undefined || window.safari == undefined) {
	safari = {};
	safari.pushNotification = new _SafariRemoteNotification();
}

class AudioContextBuffer {
	getChannelData(n) {
		console.log(arguments.callee.name);
		return [0,0];
	}
	constructor() {
		console.log(arguments.callee.name);
		this.numberOfChannels = 2;
	}
}

class _AudioContextGain {
	setValueAtTime(x1, x2) {
		console.log(arguments.callee.name);
	};
	connect(dest) {
		console.log(arguments.callee.name);
	};
	disconnect() {
		console.log(arguments.callee.name);
	};
	constructor(){
		console.log(arguments.callee.name);
		this.gain = this;
	}
};

if (window.AudioContextGain === undefined) {
	AudioContextGain = _AudioContextGain;
	window.AudioContextGain = _AudioContextGain;
}

class _AudioContextCompressor {
	connect(x1) {
		console.log(arguments.callee.name);
	}
		
	constructor() {
		console.log(arguments.callee.name);
		
		this.threshold = new AudioParam();
		this.knee = new AudioParam();
		this.ratio = new AudioParam();
		this.reduction = new AudioParam();
		this.attack = new AudioParam();
		this.release = new AudioParam();
	}
};

if (window.AudioContextCompressor === undefined) {
	AudioContextCompressor = _AudioContextCompressor;
	window.AudioContextCompressor = _AudioContextCompressor;
}

document.requestFullscreen = function() {
	console.log(arguments.callee.name);
};
document.exitFullscreen = function() {
	console.log(arguments.callee.name);
};
document.fullscreenElement = document.createElement("script");
document.fullscreenEnabled = function() {
	console.log(arguments.callee.name);
};
document.fullscreenchange = function() {
	console.log(arguments.callee.name);
};
document.fullscreenerror = function() {
	console.log(arguments.callee.name);
};

class __MediaDevices {
	
	get devicechange() {
		return this.__devicechange;
	}
	set devicechange(newChange) {
		this.__devicechange = newChange;
		newChange(null);
	}
	
}

if (navigator.mediaDevices == undefined) {
	navigator.mediaDevices = new __MediaDevices();
}
