diff --git a/Source/Slick.Finder.js b/Source/Slick.Finder.js
index b822e5fd..55367a84 100644
--- a/Source/Slick.Finder.js
+++ b/Source/Slick.Finder.js
@@ -980,4 +980,14 @@ Slick.uidOf = function(node){
if (!this.Slick) this.Slick = Slick;
+// AMD
+
+if (typeof define == 'function' && define.amd){
+ define(['./Slick.Parser'], function(parse){
+ Slick.parse = parse;
+ return Slick;
+ });
+}
+
+
}).apply(/**/(typeof exports != 'undefined') ? exports : /**/this);
diff --git a/Source/Slick.Parser.js b/Source/Slick.Parser.js
index e9e78f7a..d5497acb 100644
--- a/Source/Slick.Parser.js
+++ b/Source/Slick.Parser.js
@@ -68,7 +68,7 @@ var escapeRegExp = function(string){// Credit: XRegExp 0.6.1 (c) 2007-2008 Steve
});
};
-var regexp = new RegExp(
+var regexp = RegExp(
/*
#!/usr/bin/env ruby
puts "\t\t" + DATA.read.gsub(/\(\?x\)|\s+#.*$|\s+|\\$|\\n/,'')
@@ -215,7 +215,14 @@ function parser(
return '';
};
-// Slick NS
+// AMD
+
+if (typeof define == 'function' && define.amd){
+ define(function(){return parse});
+ return;
+}
+
+// exports
var Slick = (this.Slick || {});
@@ -227,4 +234,4 @@ Slick.escapeRegExp = escapeRegExp;
if (!this.Slick) this.Slick = Slick;
-}).apply(/**/(typeof exports != 'undefined') ? exports : /**/this);
+}).apply(/**/(typeof exports == 'object') ? exports : /**/this);
diff --git a/attr.amd.js b/attr.amd.js
new file mode 100644
index 00000000..de279cf5
--- /dev/null
+++ b/attr.amd.js
@@ -0,0 +1,10 @@
+/*jshint asi:true, laxbreak:true*/
+define(['./Source/Slick.Finder'], function(Slick){
+ return {
+ has: Slick.hasAttribute,
+ get: Slick.getAttribute,
+
+ define: Slick.defineAttributeGetter,
+ lookup: Slick.lookupAttributeGetter
+ }
+})
diff --git a/finder.amd.js b/finder.amd.js
new file mode 100644
index 00000000..aeaedf0c
--- /dev/null
+++ b/finder.amd.js
@@ -0,0 +1,21 @@
+/*jshint asi:true, laxbreak:true*/
+define(['./Source/Slick.Finder', './attr.amd'], function(Slick, attr){
+ return {
+
+ isXML: Slick.isXML,
+ contains: Slick.contains,
+
+ find: Slick.find,
+ search: Slick.search,
+ match: Slick.match,
+
+ override: Slick.override,
+
+ attr: attr,
+
+ pseudo:{
+ define: Slick.definePseudo,
+ lookup: Slick.lookupPseudo
+ }
+ }
+})
diff --git a/parser.amd.js b/parser.amd.js
new file mode 100644
index 00000000..5dabb638
--- /dev/null
+++ b/parser.amd.js
@@ -0,0 +1,6 @@
+/*jshint asi:true, laxbreak:true*/
+define(['./Source/Slick.Parser'], function(parse){
+ return {
+ parse: parse
+ }
+})
diff --git a/uid.amd.js b/uid.amd.js
new file mode 100644
index 00000000..02f94872
--- /dev/null
+++ b/uid.amd.js
@@ -0,0 +1,6 @@
+/*jshint asi:true, laxbreak:true*/
+define(['./Source/Slick.Finder'], function(Slick){
+ return {
+ uidOf: Slick.uidOf
+ }
+})