From 1bb1b701927ff6679f97da56451031e244726acf Mon Sep 17 00:00:00 2001 From: Danny Yoo Date: Tue, 5 Jul 2011 16:48:15 -0400 Subject: [PATCH] removing helpers.js --- js-assembler/get-runtime.rkt | 15 +++--- js-assembler/runtime-src/baselib.js | 26 +++++++++-- .../runtime-src/baselib_exceptions.js | 46 ++++++------------- .../runtime-src/baselib_readergraph.js | 2 +- js-assembler/runtime-src/runtime.js | 3 +- js-assembler/runtime-src/types.js | 2 - tests/more-tests/run-more-tests.rkt | 3 +- 7 files changed, 47 insertions(+), 50 deletions(-) diff --git a/js-assembler/get-runtime.rkt b/js-assembler/get-runtime.rkt index 698a2a6..139df0d 100644 --- a/js-assembler/get-runtime.rkt +++ b/js-assembler/get-runtime.rkt @@ -9,13 +9,8 @@ ;; HashTable at the toplevel ;; jsnums at the toplevel ;; -;; followed by: +;; followed by the base library ;; -;; plt.link -;; plt.helpers -;; plt.types -;; plt.primitives -;; plt.runtime @@ -58,7 +53,10 @@ (define-runtime-path link.js "runtime-src/link.js") ;; from js-vm -(define-runtime-path helpers.js "runtime-src/helpers.js") +;; Deprecated: +;; (define-runtime-path helpers.js "runtime-src/helpers.js") + + ;; from js-vm (define-runtime-path types.js "runtime-src/types.js") ;; These primitives were coded for the js-vm project, and we'll gradually @@ -79,6 +77,7 @@ jsnums.js baselib.js + baselib_unionfind.js baselib_equality.js baselib_format.js @@ -98,7 +97,7 @@ baselib_readergraph.js link.js - helpers.js +; helpers.js types.js ; js-vm-primitives.js runtime.js)) diff --git a/js-assembler/runtime-src/baselib.js b/js-assembler/runtime-src/baselib.js index 938a8b0..ff9b53b 100644 --- a/js-assembler/runtime-src/baselib.js +++ b/js-assembler/runtime-src/baselib.js @@ -1,4 +1,6 @@ -// Skeleton for basic library functions +// Basic library functions. This will include a few simple functions, +// but be augmented with several namespaces for the other libraries in +// the base library. if (! this['plt']) { this['plt'] = {}; } (function (plt) { var baselib = {}; @@ -6,9 +8,7 @@ if (! this['plt']) { this['plt'] = {}; } - - - // Inheritance. + // Simple object inheritance. var heir = function(parentPrototype) { var f = function() {} f.prototype = parentPrototype; @@ -17,8 +17,26 @@ if (! this['plt']) { this['plt'] = {}; } + // clone: object -> object + // Copies an object. The new object should respond like the old + // object, including to things like instanceof. + var clone = function(obj) { + var C = function() {} + C.prototype = obj; + var c = new C(); + for (property in obj) { + if (obj.hasOwnProperty(property)) { + c[property] = obj[property]; + } + } + return c; + }; + + + baselib.heir = heir; + baselib.clone = clone; })(this['plt']); diff --git a/js-assembler/runtime-src/baselib_exceptions.js b/js-assembler/runtime-src/baselib_exceptions.js index 8dcef5e..ba7fc4d 100644 --- a/js-assembler/runtime-src/baselib_exceptions.js +++ b/js-assembler/runtime-src/baselib_exceptions.js @@ -25,48 +25,30 @@ }; + // (define-struct exn (message continuation-mark-set)) var Exn = plt.baselib.structs.makeStructureType( - 'exn', - false, - 2, - 0, - false, - function(args, name, k) { -// helpers.check(args[0], isString, name, 'string', 1); -// helpers.check(args[1], types.isContinuationMarkSet, -// name, 'continuation mark set', 2); - return k(args); - }); + 'exn', false, 2, 0, false, false); + // (define-struct (exn:break exn) (continuation)) var ExnBreak = plt.baselib.structs.makeStructureType( - 'exn:break', Exn, 1, 0, false, - function(args, name, k) { -// helpers.check(args[2], function(x) { return x instanceof ContinuationClosureValue; }, -// name, 'continuation', 3); - return k(args); - }); + 'exn:break', Exn, 1, 0, false, false); - var ExnFail = - plt.baselib.structs.makeStructureType('exn:fail', - Exn, 0, 0, false, false); - var ExnFailContract = - plt.baselib.structs.makeStructureType('exn:fail:contract', - ExnFail, 0, 0, false, false); + var ExnFail = plt.baselib.structs.makeStructureType( + 'exn:fail', Exn, 0, 0, false, false); - var ExnFailContractArity = - plt.baselib.structs.makeStructureType('exn:fail:contract:arity', - ExnFailContract, 0, 0, false, false); + var ExnFailContract = plt.baselib.structs.makeStructureType( + 'exn:fail:contract', ExnFail, 0, 0, false, false); - var ExnFailContractVariable = - plt.baselib.structs.makeStructureType('exn:fail:contract:variable', - ExnFailContract, 1, 0, false, false); + var ExnFailContractArity = plt.baselib.structs.makeStructureType( + 'exn:fail:contract:arity', ExnFailContract, 0, 0, false, false); - var ExnFailContractDivisionByZero = - plt.baselib.structs.makeStructureType('exn:fail:contract:divide-by-zero', - ExnFailContract, 0, 0, false, false); + var ExnFailContractVariable = plt.baselib.structs.makeStructureType( + 'exn:fail:contract:variable', ExnFailContract, 1, 0, false, false); + var ExnFailContractDivisionByZero = plt.baselib.structs.makeStructureType( + 'exn:fail:contract:divide-by-zero', ExnFailContract, 0, 0, false, false); diff --git a/js-assembler/runtime-src/baselib_readergraph.js b/js-assembler/runtime-src/baselib_readergraph.js index 5d3f9ba..24f6930 100644 --- a/js-assembler/runtime-src/baselib_readergraph.js +++ b/js-assembler/runtime-src/baselib_readergraph.js @@ -39,7 +39,7 @@ } if (types.isStruct(x)) { - var aStruct = helpers.clone(x); + var aStruct = baselib.clone(x); objectHash.put(x, aStruct); for(var i = 0 ;i < x._fields.length; i++) { x._fields[i] = readerGraph(x._fields[i], objectHash, n+1); diff --git a/js-assembler/runtime-src/runtime.js b/js-assembler/runtime-src/runtime.js index 3f3504a..b66073f 100644 --- a/js-assembler/runtime-src/runtime.js +++ b/js-assembler/runtime-src/runtime.js @@ -9,7 +9,6 @@ if(this['plt'] === undefined) { this['plt'] = {}; } var runtime = {}; scope['runtime'] = runtime; - var helpers = plt.helpers; var types = plt.types; @@ -41,7 +40,7 @@ if(this['plt'] === undefined) { this['plt'] = {}; } var makeList = types.list; var makePair = types.pair; - var heir = helpers.heir; + var heir = plt.baselib.heir; var toDomNode = plt.baselib.format.toDomNode; var toWrittenString = plt.baselib.format.toWrittenString; var toDisplayedString = plt.baselib.format.toDisplayedString; diff --git a/js-assembler/runtime-src/types.js b/js-assembler/runtime-src/types.js index 518c81c..b3c503c 100644 --- a/js-assembler/runtime-src/types.js +++ b/js-assembler/runtime-src/types.js @@ -17,8 +17,6 @@ if (! this['plt']) { this['plt'] = {}; } scope['types'] = types; - // helpers refers to plt.helpers. - var helpers = scope['helpers']; var getEqHashCode = plt.baselib.hash.getEqHashCode; diff --git a/tests/more-tests/run-more-tests.rkt b/tests/more-tests/run-more-tests.rkt index 93a6f06..4c0eaff 100644 --- a/tests/more-tests/run-more-tests.rkt +++ b/tests/more-tests/run-more-tests.rkt @@ -10,4 +10,5 @@ (test "conform.rkt") (test "sk-generator.rkt") (test "sk-generator-2.rkt") -(test "simple-structs.rkt") \ No newline at end of file +(test "simple-structs.rkt") +(test "man-vs-boy.rkt") \ No newline at end of file