Updating everything to Aether 0.2.0.

This commit is contained in:
Nick Winter 2014-05-08 11:43:00 -07:00
parent 775a2a87e2
commit 3819778bee
8 changed files with 26 additions and 16 deletions

View file

@ -82,6 +82,10 @@ self.transferableSupported = function transferableSupported() {
var World = self.require('lib/world/world');
var GoalManager = self.require('lib/world/GoalManager');
Aether.addGlobal('Vector', require('lib/world/vector'));
Aether.addGlobal('_', _);
var serializedClasses = {
"Thang": self.require('lib/world/thang'),
"Vector": self.require('lib/world/vector'),
@ -354,7 +358,6 @@ self.debugAbort = function () {
self.postMessage({type: 'debugAbort'});
};
self.runWorld = function runWorld(args) {
self.postedErrors = {};
self.t0 = new Date();
@ -408,11 +411,11 @@ self.onWorldLoaded = function onWorldLoaded() {
};
self.onWorldError = function onWorldError(error) {
if(error instanceof Aether.problems.UserCodeProblem) {
if(!self.postedErrors[error.key]) {
var problem = error.serialize();
self.postMessage({type: 'user-code-problem', problem: problem});
self.postedErrors[error.key] = problem;
if(error.isUserCodeProblem) {
var errorKey = error.userInfo.key;
if(!errorKey || !self.postedErrors[errorKey]) {
self.postMessage({type: 'user-code-problem', problem: error});
self.postedErrors[errorKey] = error;
}
}
else {

View file

@ -113,7 +113,7 @@ module.exports = class God
angelUserCodeProblem: (angel, problem) ->
return if @dead
#console.log "UserCodeProblem:", '"' + problem.message + '"', "for", problem.userInfo.thangID, "-", problem.userInfo.methodName, 'at line', problem.ranges?[0][0][0], 'column', problem.ranges?[0][0][1]
#console.log "UserCodeProblem:", '"' + problem.message + '"', "for", problem.userInfo.thangID, "-", problem.userInfo.methodName, 'at', problem.range?[0]
Backbone.Mediator.publish 'god:user-code-problem', problem: problem
createWorld: (@spells) ->

View file

@ -4,6 +4,9 @@ LevelLoader = require 'lib/LevelLoader'
GoalManager = require 'lib/world/GoalManager'
God = require 'lib/Buddha'
Aether.addGlobal 'Vector', require 'lib/world/vector'
Aether.addGlobal '_', _
module.exports = class Simulator extends CocoClass
constructor: (@options) ->
@ -292,8 +295,8 @@ module.exports = class Simulator extends CocoClass
functionName: methodName
protectAPI: useProtectAPI
includeFlow: false
requiresThis: true
yieldConditionally: false
globals: ['Vector', '_']
problems:
jshint_W040: {level: "ignore"}
jshint_W030: {level: "ignore"} # aether_NoEffect instead

View file

@ -17,9 +17,9 @@ module.exports = class Problem
@removeMarkerRange()
buildAnnotation: ->
return unless @aetherProblem.ranges
return unless @aetherProblem.range
text = @aetherProblem.message.replace /^Line \d+: /, ''
start = @aetherProblem.ranges[0][0]
start = @aetherProblem.range[0]
@annotation =
row: start.row,
column: start.col,
@ -33,8 +33,8 @@ module.exports = class Problem
$(@ace.container).append @alertView.el
buildMarkerRange: ->
return unless @aetherProblem.ranges
[start, end] = @aetherProblem.ranges[0]
return unless @aetherProblem.range
[start, end] = @aetherProblem.range
clazz = "problem-marker-#{@aetherProblem.level}"
@markerRange = new Range start.row, start.col, end.row, end.col
@markerRange.start = @ace.getSession().getDocument().createAnchor @markerRange.start

View file

@ -2,6 +2,9 @@ SpellView = require './spell_view'
SpellListTabEntryView = require './spell_list_tab_entry_view'
{me} = require 'lib/auth'
Aether.addGlobal 'Vector', require 'lib/world/vector'
Aether.addGlobal '_', _
module.exports = class Spell
loaded: false
view: null
@ -106,12 +109,12 @@ module.exports = class Spell
jshint_W091: {level: "ignore"} # eliminates more hoisting problems
jshint_E043: {level: "ignore"} # https://github.com/codecombat/codecombat/issues/813 -- since we can't actually tell JSHint to really ignore things
jshint_Unknown: {level: "ignore"} # E043 also triggers Unknown, so ignore that, too
aether_MissingThis: {level: (if thang.requiresThis then 'error' else 'warning')}
aether_MissingThis: {level: 'error'}
language: aceConfig.language ? 'javascript'
functionName: @name
functionParameters: @parameters
yieldConditionally: thang.plan?
requiresThis: thang.requiresThis
globals: ['Vector', '_']
# TODO: Gridmancer doesn't currently work with protectAPI, so hack it off
protectAPI: not (@skipProtectAPI or window.currentView?.level.get('name').match("Gridmancer")) and @permissions.readwrite.length > 0 # If anyone can write to this method, we must protect it.
includeFlow: not @skipFlow and @canRead()

View file

@ -422,6 +422,7 @@ module.exports = class SpellView extends View
@spellHasChanged = false
onUserCodeProblem: (e) ->
console.log "onUserCodeProblem", e, e.problem.userInfo.methodName is @spell.name, spellThang = _.find @spell.thangs, (spellThang, thangID) -> thangID is e.problem.userInfo.thangID
return @onInfiniteLoop e if e.problem.id is "runtime_InfiniteLoop"
return unless e.problem.userInfo.methodName is @spell.name
return unless spellThang = _.find @spell.thangs, (spellThang, thangID) -> thangID is e.problem.userInfo.thangID

View file

@ -32,7 +32,7 @@
"firepad": "~0.1.2",
"marked": "~0.3.0",
"moment": "~2.5.0",
"aether": "~0.1.18",
"aether": "~0.2.0",
"underscore.string": "~2.3.3",
"firebase": "~1.0.2",
"catiline": "~2.9.3",

View file

@ -65,7 +65,7 @@
"redis": "",
"webworker-threads": "~0.4.11",
"node-gyp": "~0.13.0",
"aether": "~0.1.18",
"aether": "~0.2.0",
"JASON": "~0.1.3"
},
"devDependencies": {