Skip to content

Commit e8e551d

Browse files
committed
Add changes to scripting environment and incorporate bugfix in compiled version
1 parent 536bc52 commit e8e551d

40 files changed

+1260
-685
lines changed

dist/CommentCoreLibrary.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1213,7 +1213,7 @@ var CommentManager = (function() {
12131213
try {
12141214
this._listeners[event][i](data);
12151215
} catch (e) {
1216-
console.err(e.stack);
1216+
console.error(e.stack);
12171217
}
12181218
}
12191219
}

dist/CommentCoreLibrary.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/scripting/Host.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,9 @@ var CCLScripting = function(workerUrl){
230230
this.resetWorker = function(){
231231
try{
232232
worker.terminate();
233-
}catch(e){}
233+
} catch(e) {
234+
235+
}
234236
worker = scripter.getWorker();
235237
if(!worker){
236238
throw new Error("SANDBOX: Worker pool exhausted.");

dist/scripting/api/Display.js

Lines changed: 247 additions & 91 deletions
Large diffs are not rendered by default.

dist/scripting/api/Player.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,18 @@ var Player;
181181
__trace('Your environment does not support player triggers.', 'warn');
182182
return;
183183
}
184+
__trace('Comment trigger: not implemented', 'warn');
184185
}
185186
Player.commentTrigger = commentTrigger;
186187
function keyTrigger(callback, timeout) {
188+
if (!Runtime.hasObject('__player')) {
189+
__trace('Your environment does not support key triggers.', 'warn');
190+
return;
191+
}
192+
var player = Runtime.getObject('__player');
193+
player.addEventListener('keydown', function (key) {
194+
callback(key.keyCode);
195+
});
187196
}
188197
Player.keyTrigger = keyTrigger;
189198
function setMask(mask) {
@@ -194,7 +203,7 @@ var Player;
194203
return '[player Player]';
195204
}
196205
Player.toString = toString;
197-
__schannel("Update:DimensionUpdate", function (payload) {
206+
__schannel('Update:DimensionUpdate', function (payload) {
198207
_width = payload["stageWidth"];
199208
_height = payload["stageHeight"];
200209
if (payload.hasOwnProperty("videoWidth") &&

dist/scripting/api/Runtime.js

Lines changed: 112 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,83 @@
11
var Runtime;
2+
(function (Runtime) {
3+
var NotCrypto;
4+
(function (NotCrypto) {
5+
var _rngState = [
6+
Math.floor(Date.now() / 1024) % 1024,
7+
Date.now() % 1024
8+
];
9+
var Rc4 = (function () {
10+
function Rc4(key) {
11+
this._s = [];
12+
for (var i = 0; i < 256; i++) {
13+
this._s[i] = i;
14+
}
15+
var j = 0;
16+
for (var i = 0; i < 256; i++) {
17+
j = j + this._s[i] + key[i % key.length] % 256;
18+
var m = this._s[i];
19+
this._s[i] = this._s[j];
20+
this._s[j] = m;
21+
}
22+
}
23+
return Rc4;
24+
}());
25+
function random(bits) {
26+
if (bits === void 0) { bits = 16; }
27+
if (bits > 32) {
28+
throw new Error('NotCrypto.random expects 32 bits or less');
29+
}
30+
if (Math && Math.random) {
31+
var value = 0;
32+
for (var i = 0; i < bits; i++) {
33+
value = (value << 1) + (Math.random() < 0.5 ? 0 : 1);
34+
}
35+
return value;
36+
}
37+
else {
38+
return Runtime.NotCrypto.fallbackRandom(Date.now() % 1024, bits);
39+
}
40+
}
41+
NotCrypto.random = random;
42+
function xorshift128p() {
43+
var s0 = _rngState[1], s1 = _rngState[0];
44+
_rngState[0] = s0;
45+
s1 ^= s1 << 23;
46+
s1 ^= s1 >> 17;
47+
s1 ^= s0;
48+
s1 ^= s0 >> 26;
49+
_rngState[1] = s1;
50+
}
51+
function fallbackRandom(seed, bits) {
52+
if (bits === void 0) { bits = 16; }
53+
if (bits > 32) {
54+
throw new Error('NotCrypto.fallbackRandom expects 32 bits or less');
55+
}
56+
for (var i = 0; i < seed; i++) {
57+
xorshift128p();
58+
}
59+
var mask = 0;
60+
for (var i = 0; i < bits; i++) {
61+
mask = (mask << 1) + 1;
62+
}
63+
return (_rngState[0] + _rngState[1]) & mask;
64+
}
65+
NotCrypto.fallbackRandom = fallbackRandom;
66+
function toHex(value, length) {
67+
if (length === void 0) { length = 0; }
68+
if (length <= 0) {
69+
return value.toString(16);
70+
}
71+
var base = value.toString(16);
72+
while (base.length < length) {
73+
base = '0' + base;
74+
}
75+
return base;
76+
}
77+
NotCrypto.toHex = toHex;
78+
})(NotCrypto = Runtime.NotCrypto || (Runtime.NotCrypto = {}));
79+
})(Runtime || (Runtime = {}));
80+
var Runtime;
281
(function (Runtime) {
382
var RuntimeTimer = (function () {
483
function RuntimeTimer(type, dur, key, callback) {
@@ -414,6 +493,9 @@ var Runtime;
414493
var MetaObject = (function () {
415494
function MetaObject(name) {
416495
this._listeners = {};
496+
if (name.slice(0, 2) !== '__') {
497+
throw new Error('MetaObject names must start with two underscores.');
498+
}
417499
this._name = name;
418500
}
419501
MetaObject.prototype.addEventListener = function (event, listener, useCapture, priority) {
@@ -491,55 +573,66 @@ var Runtime;
491573
Runtime.getObject = getObject;
492574
function registerObject(object) {
493575
if (!object.getId) {
494-
__trace("Attempted to register unnamed object", "warn");
576+
__trace('Cannot register object without getId method.', 'warn');
495577
return;
496578
}
497579
if (!Runtime.hasObject(object.getId())) {
498580
_registeredObjects[object.getId()] = object;
499-
__pchannel("Runtime:RegisterObject", {
500-
"id": object.getId(),
501-
"data": object.serialize()
581+
__pchannel('Runtime:RegisterObject', {
582+
'id': object.getId(),
583+
'data': object.serialize()
502584
});
503585
__schannel("object::(" + object.getId() + ")", function (payload) {
504-
if (payload.hasOwnProperty("type") &&
505-
payload.type === "event") {
586+
if (payload.hasOwnProperty('type') &&
587+
payload.type === 'event') {
506588
_dispatchEvent(object.getId(), payload.event, payload.data);
507589
}
508590
});
509591
objCount++;
510592
return;
511593
}
512594
else {
513-
__trace('Attempted to re-register object or id collision', 'warn');
595+
__trace('Attempted to re-register object or id collision @ ' +
596+
object.getId(), 'warn');
514597
return;
515598
}
516599
}
517600
Runtime.registerObject = registerObject;
518-
function deregisterObject(objectId) {
601+
function deregisterObject(object) {
602+
var objectId = object.getId();
603+
deregisterObjectById(objectId);
604+
}
605+
Runtime.deregisterObject = deregisterObject;
606+
function deregisterObjectById(objectId) {
519607
if (Runtime.hasObject(objectId)) {
520-
if (objectId.substr(0, 2) === "__") {
521-
__trace("Runtime.deregisterObject cannot de-register a MetaObject", "warn");
608+
if (objectId.substr(0, 2) === '__') {
609+
__trace('Runtime.deregisterObject cannot de-register a MetaObject', 'warn');
522610
return;
523611
}
524-
__pchannel("Runtime:DeregisterObject", {
525-
"id": objectId
612+
__pchannel('Runtime:DeregisterObject', {
613+
'id': objectId
526614
});
527615
if (typeof _registeredObjects[objectId].unload === "function") {
528616
_registeredObjects[objectId].unload();
529617
}
530618
_registeredObjects[objectId] = null;
531619
delete _registeredObjects[objectId];
532-
objCount--;
533620
}
534621
}
535-
Runtime.deregisterObject = deregisterObject;
622+
function _getId(type, container) {
623+
if (type === void 0) { type = 'obj'; }
624+
if (container === void 0) { container = 'rt'; }
625+
var randomSeed = Math.random();
626+
var randomSegment = '';
627+
return;
628+
}
536629
function generateId(type) {
537630
if (type === void 0) { type = "obj"; }
538-
var id = type + ":" + (new Date()).getTime() + "|" +
539-
Math.round(Math.random() * 4096) + ":" + objCount;
631+
var id = [type, ':', Date.now(), '|',
632+
Runtime.NotCrypto.random(16), ':', objCount].join();
540633
while (Runtime.hasObject(id)) {
541-
id = type + ":" + (new Date()).getTime() + "|" +
542-
Math.round(Math.random() * 4096) + ":" + objCount;
634+
id = type + ":" + Date.now() + "|" +
635+
Runtime.NotCrypto.random(16) + ":" + objCount;
543636
}
544637
return id;
545638
}
@@ -548,7 +641,7 @@ var Runtime;
548641
function reset() {
549642
for (var i in _registeredObjects) {
550643
if (i.substr(0, 2) !== "__") {
551-
Runtime.deregisterObject(i);
644+
deregisterObjectById(i);
552645
}
553646
}
554647
}

dist/scripting/api/Tween.js

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ var Tween;
3636
return c / 2 * (t * t * t * t * t + 2) + b;
3737
}
3838
Tween.quintic = quintic;
39-
function circuar(t, b, c, d) {
39+
function circular(t, b, c, d) {
4040
t /= d / 2;
4141
if (t < 1)
4242
return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
4343
t -= 2;
4444
return c / 2 * (Math.sqrt(1 - t * t) + 1) + b;
4545
}
46-
Tween.circuar = circuar;
46+
Tween.circular = circular;
4747
function sine(t, b, c, d) {
4848
return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
4949
}
@@ -61,7 +61,7 @@ var Tween;
6161
linear: Tween.linear,
6262
back: null,
6363
bounce: null,
64-
circular: Tween.circuar,
64+
circular: Tween.circular,
6565
cubic: Tween.cubic,
6666
elastic: null,
6767
exponential: Tween.exponential,
@@ -84,7 +84,7 @@ var Tween;
8484
case "exponential":
8585
return Tween.exponential;
8686
case "circular":
87-
return Tween.circuar;
87+
return Tween.circular;
8888
case "quadratic":
8989
return Tween.quadratic;
9090
case "cubic":
@@ -248,19 +248,6 @@ var Tween;
248248
}
249249
};
250250
}
251-
function choose(n, k) {
252-
if (n < 0 || k < 0) {
253-
throw new Error('Cannot compute n-choose-k with negative inputs.');
254-
}
255-
if (k > n / 2) {
256-
return choose(n, n - k);
257-
}
258-
var value = 1;
259-
for (var i = 1; i <= k; i++) {
260-
value *= (n + 1 - i) / i;
261-
}
262-
return value;
263-
}
264251
function tween(object, dest, src, duration, easing) {
265252
if (dest === void 0) { dest = {}; }
266253
if (src === void 0) { src = {}; }

dist/scripting/api/Utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ var Utils;
6262
}
6363
Utils.hue = hue;
6464
function formatTimes(time) {
65-
return Math.floor(time / 60) + ":" + (time % 60 > 9 ? time % 60 + "" : "0" + (time % 60));
65+
return Math.floor(time / 60) + ":" + (time % 60 > 9 ? "" : "0") + time % 60;
6666
}
6767
Utils.formatTimes = formatTimes;
6868
function distance(x1, y1, x2, y2) {

0 commit comments

Comments
 (0)