Commit graph

371 commits

Author SHA1 Message Date
Jürg Lehni
4b19f99183 Improve user agent matching code in PaperScript.
Fixes #511.
2014-08-20 18:54:00 +02:00
Jürg Lehni
6b4f728a72 Bring back support for paper.setup('id') again, and document it properly.
Closes #510.
2014-08-20 16:53:31 +02:00
Jürg Lehni
9da6325f49 Fix wrong __options comments. 2014-08-16 19:27:25 +02:00
Jürg Lehni
48cb05a181 Replace tabs with 4 white-spaces. 2014-08-16 19:24:54 +02:00
Jürg Lehni
5aa4a8300e Move 'data-paper-scope' attribute handling out of PaperScope into browser related code in PaperScript.
Closes #508
2014-08-16 18:24:45 +02:00
Jürg Lehni
288b8553e7 Support PaperScript code with only one line and no breaks. 2014-08-16 18:22:43 +02:00
Jürg Lehni
06366fb0ed Support prefixed UpdateExpressions and fix a bug in suffixed UpdateExpression when assigning to plain variables.
Related #492
2014-07-26 12:40:00 +02:00
Jürg Lehni
54f0197eba Correctly handle UpdateExpressions (a++, a--) that are directly following AssignmentExpressions.
Closes #492
2014-07-26 12:29:05 +02:00
Jürg Lehni
6e6df750f0 Use names less likely to be used in code for Operator Overloading handlers. 2014-07-26 12:28:00 +02:00
Jürg Lehni
0198f4c45f Reuse PaperScope objects when associating multiple scripts with the same canvas.
Closes #504.
2014-07-26 12:03:34 +02:00
Jürg Lehni
dc375d4c76 Correctly match the use of the unary operator $_ in PaperScript.
Closes #502
2014-07-23 12:17:55 +02:00
Jürg Lehni
9d7ec13724 Update prepro.js to version that can evaluate whole expressions, and fix a newly introduced issue with it. 2014-05-14 15:14:03 +02:00
Jürg Lehni
74d14ecf0c Fix PaperScript support on Node.js
Closes #470.
2014-05-05 20:10:29 +02:00
Jürg Lehni
87e72744ea Fix PaperScript.parse() for use with load.js 2014-04-30 17:08:43 +02:00
Jürg Lehni
735150d165 Minor adjustments in new source map code.
Handle empty code properly.
2014-04-30 17:04:58 +02:00
Jürg Lehni
2d702d0247 Directly expose Acorn parser through PaperScript.parse(), and replace options.inline with options.source. 2014-04-30 16:40:11 +02:00
Jürg Lehni
c36712758b Expose Acorn through PaperScript object. 2014-04-30 16:27:43 +02:00
Jürg Lehni
43f319e762 Remove support for Esprima as Acorn.js does everything we need. 2014-04-30 16:26:04 +02:00
Jürg Lehni
e96ec6a2f1 Remove breakpoint support again in PaperScript as this code is better placed in sketch. 2014-04-30 16:25:38 +02:00
Jürg Lehni
5e6d0377f4 Support adding breakpoints to PaperScript. 2014-04-30 13:37:07 +02:00
Jürg Lehni
9e45d7f5eb Automatically detect PaperScript code inlined on page. 2014-04-30 12:32:08 +02:00
Jürg Lehni
af9b3cd5c6 Simplify source-map support since all browser appear to require the shifting of inlined code. 2014-04-30 11:47:15 +02:00
Jürg Lehni
43bc9f14da Add more comments and clean up code a bit. 2014-04-30 11:39:05 +02:00
Jürg Lehni
d91aac52b4 Check in initial support for source-maps in PaperScript.
Probably needs more testing and work.
2014-04-30 11:34:02 +02:00
Jürg Lehni
8317aacc1b Split Item#hitTest() into separate private function that does need to do arguments reading, for improved performance also when iterating over children. 2014-04-29 20:06:48 +02:00
Jürg Lehni
c5b317600a Support comparing colors with string values in Color#equals(). 2014-04-27 11:16:22 +02:00
Jürg Lehni
6af797bbad Optimize handling of property object in Item constructor.
Only check for values if it is a plain object, and avoid inserting into DOM twice if parent is specified.
2014-04-13 18:12:19 +02:00
Jürg Lehni
dafdd0ae28 Avoid double-insertion of root layer when importing JSON directly into it. 2014-04-13 16:44:00 +02:00
Jürg Lehni
d12607dd44 Use a Base object for PaperScope#settings and update straps.js to version that offers Base#set(). 2014-04-11 13:32:06 +02:00
Jürg Lehni
64aaabbc2e Export PaperScope reference into PaperScript as well, so the global paperalways points to the current scope. 2014-04-07 11:53:32 +02:00
Jürg Lehni
f002c633a7 Remove trailing white spaces and ensure newlines at the end. 2014-04-06 13:48:03 +02:00
Jürg Lehni
4d52867b4a Fix spelling mistakes and white-spaces. 2014-04-02 20:52:13 +02:00
Jürg Lehni
0aa73d90c5 Change the way context dependent font sizes are handled by delegating handling to view.
Closes #425
2014-03-17 16:41:57 +01:00
Jürg Lehni
3c257dcae0 Merge branch 'refs/heads/master' into apply-matrix 2014-03-13 00:54:05 +01:00
Jürg Lehni
56335ae5f5 Implement SVG-style #arcTo() version.
This should fix the arc related part of issue #413.
2014-03-12 23:00:47 +01:00
Jürg Lehni
d594b4264d Define settings.applyMatrix and inherit at Item creation time. 2014-03-04 09:30:04 +01:00
Jürg Lehni
7dbf6ceaff Move Project#options to PaperScope#settings and define reasonable defaults. 2014-03-04 09:29:28 +01:00
Jürg Lehni
dad17ba28e Minor clean-up in the way Base.exports are handled. 2014-03-03 22:53:00 +01:00
Jürg Lehni
2c16bd9eb1 Convert to standard paper.js loop format. 2014-02-26 01:24:00 +01:00
patrickheeney
aa2102ecb9 Fix event handlers for paperjs/paper.js#409 2014-02-25 13:02:53 -07:00
Jürg Lehni
4a95f6e4a6 Some more optimizations for JS minifier and V8. 2014-01-05 21:07:11 +01:00
Jürg Lehni
51eff78919 Minor PaperScript clean-ups. 2014-01-05 20:53:18 +01:00
Jürg Lehni
7291956155 Prevent unnecessary beans from being created. 2014-01-05 20:42:28 +01:00
Jürg Lehni
dd37704f2c Use the same filtering for UpdateExpression and AssignmentExpression. 2014-01-05 20:23:11 +01:00
Jürg Lehni
cd7604952c Filter out loop statements in operator overloading code, to optimize loop execution speed. 2014-01-05 20:15:57 +01:00
Jürg Lehni
132f6df6c8 Prevent overriding of global variables with undefined values during development. 2014-01-05 18:57:36 +01:00
Jürg Lehni
73f857170d Remove unused arguments._read value and rename _index to __index. 2014-01-05 18:34:08 +01:00
Jürg Lehni
706fe2c77d Rearrange Base.read argument sequence.
options are used more often than length.
2014-01-05 18:31:24 +01:00
Jürg Lehni
ea63d4c288 Merge branch 'refs/heads/master' into v8-optimizations
Conflicts:
	src/core/Base.js
	src/style/Color.js
2014-01-05 05:01:13 +01:00
Jürg Lehni
22e62a0527 Only expose globals if they are in use in the PaperScript code. 2014-01-04 22:22:19 +01:00
Jürg Lehni
227d511fc0 Only include the global handlers in the return statement that actually seem to be defined. 2014-01-04 22:10:16 +01:00
Jürg Lehni
4302682c1c Implement a better way of handling exceptions in PaperScript on Firefox and Chrome.
Use dynamically inserted script tag rather than compiled function since Firefox reports correct line numbers there.
2014-01-04 21:57:29 +01:00
Jürg Lehni
42bed58624 Fix scoping issues in PaperScript code. 2014-01-04 19:01:17 +01:00
Jürg Lehni
0dddd897ab Remove internal clamping of color values to facilitate proper mathematical calculations with colors.
Clamp only when producing CSS values. Closes #271.
2014-01-04 18:16:52 +01:00
Jürg Lehni
e22fa3a664 Update copyright notice. 2014-01-04 01:47:16 +01:00
Jürg Lehni
4594b66fd6 Fix comments. 2014-01-03 19:45:00 +01:00
Jürg Lehni
de939ab939 Clean up code and comments. 2014-01-03 18:31:07 +01:00
Jürg Lehni
57f1763abe Merge branch 'refs/heads/paperscript-refactoring'
Conflicts:
	src/core/PaperScope.js
2014-01-03 12:34:07 +01:00
Jürg Lehni
c197f531a4 Implement options.asString for Item#exportJSON() 2013-12-30 23:34:19 +01:00
Jürg Lehni
f97056e4b7 Change the way PaperScripts are executed in Node.js
Requiring a PaperScript returns an initialize method which receives the Canvas argument.
2013-12-29 16:36:23 +01:00
Jürg Lehni
35890383d8 Merge branch 'refs/heads/paperscript-refactoring' into v8-optimizations 2013-12-29 15:54:54 +01:00
Jürg Lehni
8395541298 Clean up docs and fix spelling mistakes. 2013-12-29 15:44:26 +01:00
Jürg Lehni
976b24b34c Execute PaperScript using new Function() rather than eval() and with() {}
This results in some impressive speeding improvements, as modern JS engines are finally able to optimize the resulting code.
2013-12-29 15:32:23 +01:00
Jürg Lehni
5f466bbc7e Move documentation for PaperScope#tools to the right place. 2013-12-28 22:48:50 +01:00
Jürg Lehni
3dbad9c477 Replace delete in favor of setting to undefined to prevent V8 deoptimization. 2013-12-17 23:27:48 +01:00
Jürg Lehni
a59a42376a Clean up coding style a bit. 2013-12-16 21:40:40 +01:00
Jürg Lehni
25d8b1f0d2 Clean up code and comments in various places. 2013-12-11 17:10:09 +01:00
Jürg Lehni
24ce35cc6e Make sure items removed from DOM remove all their events and reinstall them again when reinserted.
Closes #254.
2013-12-08 20:40:30 +01:00
Jürg Lehni
6e5d8939d5 Rename View#draw() -> View#update() and remove checkRedraw argument.
We always check for changes, since change propagation should work reliably.
2013-12-08 19:15:58 +01:00
Jürg Lehni
2cfa329fa6 Completely rework event handling on view and tools.
Fixes multiple issues on iOS:
- mousedown events were sometimes fired twice.,
- the presence of mousedown handlers broke scrolling.
Closes #266.
2013-12-06 21:49:44 +01:00
Jürg Lehni
41fa3b24e7 Only allow the installation of one onEventType handler at a time.
For more, use #attach() / #detach()
2013-12-06 14:04:03 +01:00
Jürg Lehni
1e57031811 Do not set insert: false for the root of the imported JSON. 2013-12-06 03:16:06 +01:00
Jürg Lehni
ee7fd8cdbe Use double underscores to avoid clashes between math operators and 'private' methods.
Path already defines a #_add() method...
2013-12-05 21:11:12 +01:00
Jürg Lehni
88a4c64172 No need for generics in Base. 2013-12-02 14:42:27 +01:00
Jürg Lehni
93d10983ee Update to latest Prepro.js and switch from global options object to __options, to avoid name clashes. 2013-11-29 20:26:38 +01:00
Jürg Lehni
aec19b9494 Make directly setting view.onFrame work again. 2013-11-29 20:03:52 +01:00
Jürg Lehni
79caf66a23 Update to latest Straps.js and remove unnecessary isArray argument in Base.each() 2013-11-29 19:53:48 +01:00
Jürg Lehni
5f7dbfb1ab Fix issue with JSON import. 2013-11-29 12:18:55 +01:00
Jürg Lehni
593e0d8d7f Remove Base.merge() and use a new Straps.js feature instead.
A more clever Base() constructor that allows merging.
2013-11-28 22:20:00 +01:00
Jürg Lehni
57227b9ff6 Fix newly introduce bug in Callback#fire() 2013-11-28 15:48:28 +01:00
Jürg Lehni
ed8de613c4 Improve error handling of PaperScripts on Firefox. 2013-11-27 19:07:02 +01:00
Jürg Lehni
ff538870e0 Fix error lineNumbers in PaperScript code for Firefox and Chrome. 2013-11-27 16:41:39 +01:00
Jürg Lehni
e87bf817de Do not use Base.each() loops where it's not necessary. 2013-11-27 16:02:24 +01:00
Jürg Lehni
ca3993fe8e Solve variable scoping issue differently by using Base.each() to provide a local closure scope. 2013-11-26 23:46:53 +01:00
Jürg Lehni
c18a5e6ffb Remove Node.js specific bug-fix by msand again, since code won't be executed on Node anymore. 2013-11-26 23:41:24 +01:00
Jürg Lehni
f224bb3e86 Merge github.com:msand/paper.js into msand-master 2013-11-26 23:38:40 +01:00
Jürg Lehni
adac126e6c Rename Ast -> AST 2013-11-25 19:34:39 +01:00
Jürg Lehni
da9e1f8de7 Define Project#isEmpty() 2013-11-24 22:53:41 +01:00
msand
22a918190d Fix indent. 2013-11-24 17:36:35 +02:00
msand
3b22f185ce Fix to make sure that attribute methods exists before calling. Check of hidpi attribute in canvas was crashing in Node.js, as the getAttribute method is undefined in node-canvas. 2013-11-24 17:26:09 +02:00
Jürg Lehni
af4410953f Various clean-ups regarding the handling of activeLayer, JSON deserialization, DOM insertion and and layer reusing.
JSON deserialization does no longer insert items into DOM twice now, and should therefore be faster.
2013-11-24 16:25:13 +01:00
msand
900cea3123 Fix async loading of PaperScript to use correct scope. 2013-11-24 17:19:45 +02:00
Jürg Lehni
42ec121c0a Optimize Base#merge() to not use Base#each() 2013-11-24 15:03:51 +01:00
Jürg Lehni
8f4b70a7d3 Minor clean up. 2013-11-14 14:42:28 +01:00
Jürg Lehni
b514d04f58 Export Http so the separate PaperScript scope can reach it. 2013-11-06 02:22:24 +01:00
Jürg Lehni
056dcceacc Implement #importSVG() from external URL. 2013-11-02 21:17:11 +01:00
Jürg Lehni
df80eb2f23 Define PaperScope#paper as a reference to the local scope.
And use it to fix Raster JSON example.
2013-11-01 11:46:31 +01:00
Jürg Lehni
c76dae5b06 Implement a new strategy for importing JSON, where it is imported into the item itself, not its children list, if the class match. 2013-11-01 11:26:11 +01:00
Jürg Lehni
49a8ea24af No need for Object.getPrototypeOf().
Simply point _filtering directly at the original object.
2013-10-19 12:08:04 +02:00
Jürg Lehni
d59ed6d7c0 Implement a way to use fast _filtered inheritance trick and still use #hasOwnProperty() checks in Base#_set() 2013-10-19 12:05:53 +02:00